<?xml version="1.0"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
		<channel><title>[OpenFeint Developer Support Center] Recently Changed Articles</title><link>http://www.openfeint.com/ofdeveloper/index.php/rss/kb/recent_changes</link><description></description><item><title>Social Notifications</title><description>&lt;div&gt;&lt;b&gt;Overview&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;OpenFeint social notifications allow you to announce to a
player&amp;#8217;s friends what he is doing in your game. Social
Notifications have the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sent to a player&amp;#8217;s Facebook and/or Twitter Stream.&lt;/li&gt;
&lt;li&gt;Must be no greater than 125 characters in length.&lt;/li&gt;
&lt;li&gt;Are always prefixed with I or My Name.&lt;/li&gt;
&lt;li&gt;Have an optional pre-uploaded image associated with it&lt;/li&gt;
&lt;li&gt;Are automatically sent out when a player unlocks an
achievement.&lt;/li&gt;
&lt;li&gt;Always request permission from the player before sending.&lt;/li&gt;

&lt;li&gt;Are referred to as &amp;#8220;Published Game Events&amp;#8221; in the
OpenFeint Dashboard screens.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Quick Start&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Simply send a notification from your application through either of the following APIs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[OFSocialNotificationApi sendWithText:@"just gained a level", nil];  // high level api
&lt;li&gt;[OFSocialNotificationService sendWithText:@"just gained a level"];  // low level api
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Header Files&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OFSocialNotificationApi.h (high level api, preferred)&lt;/li&gt;
&lt;li&gt;OFSocialNotificationService.h (low level api)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;These notifications keep popping up during gameplay and
interrupting the player! What gives?&lt;/b&gt;&lt;br&gt;

Since we automatically prompt the user to post a notification after
an achievement is unlocked this is often the case. We are actively
working on a solution to this issue (which will probably end up
similar to the OFNotificationDelegate which handles the small
pop-up notifications).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Sending a Text and Image Notification&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload an image to the Facebook Notification Images section the
Developer Portal.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;In your application, send the notification with
[OFSocialNotificationService sendWithText:@"shared the space ship
with the world" imageNamed:@"ImageIdentifierName"];&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;What exactly will a notification say?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;All social notifications are prefixed with a proper noun
referring to the player. Here are some example notification texts
and their final appearance on social networks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Submitted Text: just gained a level&lt;/li&gt;

&lt;li&gt;On Facebook: Jason just gained a level&lt;/li&gt;
&lt;li&gt;On Twitter: I Just gained a level&lt;/li&gt;
&lt;li&gt;Submitted Text: wandered into an open forest.&lt;/li&gt;
&lt;li&gt;On Facebook: Jason wandered into an open forest.&lt;/li&gt;
&lt;li&gt;On Twitter: I wandered into an open forest.&lt;/li&gt;
&lt;li&gt;Submitted Text: saved the forest ten times today.&lt;/li&gt;
&lt;li&gt;On Facebook: Jason saved the forest ten times today.&lt;/li&gt;
&lt;li&gt;On Twitter: I saved the forest ten times today.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Social Notifications and Privacy&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Depending upon the social network, OpenFeint uses a one or
two-stage authentication process before sending a social
notification on behalf of a player.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Requests extended permissions if necessary. This may require a
user enter their social network username and password
again.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Display the notification to the user and ask for permission to
publish the notification. Users may opt to remember their
selection. By default, remember is OFF.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;App Approval Required For Testing&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Currently OpenFeint requires that an application has requested
approval and been approved before posting to social networks. See
the big green "Prepare for Submission" button on the OF dev dashboard.
We do this so that you don't accidentally broadcast that you are adding
OpenFeint to your game before you're ready.&lt;/p&gt;&lt;/div&gt;
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/34</link><pubDate>Thu, 02 Sep 2010 22:47:06 GMT</pubDate><guid isPermaLink="false">49db8a4404d571668fbe3ae5bee3a70c</guid></item><item><title>OpenFeint 2.5 - RESTful API Settings</title><description>&lt;big&gt;&lt;span
 style="font-weight: bold;"&gt;OpenFeint RESTful API
Settings&lt;/span&gt;&lt;/big&gt;&lt;br&gt;
&lt;br&gt;
OpenFeint's new RESTful API gives you open access to your game data
such as your leaderboards, achievements, and challenges. Our API data
is available in XML or JSON formats to allow for easy integration.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Authentication&lt;br&gt;
&lt;/span&gt;
&lt;p&gt;
Authentication is required when accessing the OF REST API.  
There 3 alternative ways of providing authentication:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;OF dev session key (a cookie kept with your browser when accessing the OF dev dashboard)&lt;/li&gt;
&lt;li&gt;Remote host domain when accessing our server from your server (app status on the OF dev dashboard must show as "Approved")&lt;/li&gt;
&lt;li&gt;Basic HTTP Authentication with product key and secret&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
To test these methods, consider the following example where "AppId"
and "LeaderboardId" are replaced with your own Client Application ID
and chosen leaderboard ID from your OF dev dashboard account:
&lt;/p&gt;
&lt;code&gt;
https://api.openfeint.com/api/games/AppId/leaderboards/LeaderboardId/highscores.xml
&lt;/code&gt;
&lt;p&gt;
The first authentication method can be tested by entering the URL described above
in address bar of a web browser while another tab of the same browser is logged
in with the OF dev dashboard.
&lt;/p&gt;&lt;p&gt;
The second authentication method can be tested by entering the URL described above
in address bar of a web browser while another tab of the same browser is not logged
in with the OF dev dashboard.  This will only succeed if the OF dev dashboard shows
the app status as "Approved" and the remote host domain has been configured.
&lt;/p&gt;&lt;p&gt;
The third method encodes Basic HTTP authentication right into the URL via CGI parameters.
Append the following URL encoded CGI parameters to the URL described above replacing "ProductKey" and "ProductSecret"
with your own key and secret values:
&lt;/p&gt;
&lt;code&gt;
?client_id=ProductKey&amp;client_secret=ProductSecret
&lt;/code&gt;
&lt;p&gt;
Alternatively, you could test Basic HTTP authentication with user
and password CGI parameters using your account email address for
the user parameter, and your account password for the password parameter.
&lt;/p&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Making
API Requests&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;By accessing our API
directly, you have full access to our API data. Our API is RESTful and
is currently available in JSON and XML formats.&amp;nbsp; To retrieve
the API data in a particular format, simply add the appropriate format
type to the end of the request URL. All request routes are relative to
the api.openfeint.com domain and must use the HTTPS protocol.&lt;br&gt;
&lt;br&gt;
All requests will require your Client Application ID.&lt;br&gt;
&lt;br&gt;
In the following request formats, simply swap out the
:client_application_id format placeholder with your Client Application
ID. For example, if you wanted to get your game profile in an XML
format and your Client Application ID is 123456789, this is what your
request would look like:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;https://api.openfeint.com/api/games/123456789.xml&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
&lt;big&gt;&lt;span
 style="font-weight: bold;"&gt;How to get your Game
profile&lt;/span&gt;&lt;/big&gt;&lt;br&gt;
&lt;br&gt;
Your game profile contains a lot of basic information concerning your
game.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Request
format:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
/api/games/:client_application_id(.:format)&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
http://api.openfeint.com/api/games/943342882.xml&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;What
is returned:&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;id: the Game ID or the
Client Application ID of the game.&lt;/li&gt;
  &lt;li&gt;name: the name of the game.&lt;/li&gt;
  &lt;li&gt;bundle_id: the current
bundle ID of the game.&lt;/li&gt;
  &lt;li&gt;developer_name: the name of
the developer who owns this game.&lt;/li&gt;
  &lt;li&gt;price: the price currently
listed in OpenFeint. This might differ from the App Store price.&lt;/li&gt;
  &lt;li&gt;description_brief: a small
one sentence description of the game. Edited on iPurchase page.&lt;/li&gt;
  &lt;li&gt;description_extended: the
long description of the game. Edited on the iPurchase page.&lt;/li&gt;
  &lt;li&gt;youtube_url: the url to a
youtube video associated with the game.&lt;/li&gt;
  &lt;li&gt;itunes_id: the itunes id of
the game&lt;/li&gt;
  &lt;li&gt;release_date: the actual
release data of the game into the iTunes store.&lt;/li&gt;
  &lt;li&gt;current_version: the current
version of the game.&lt;/li&gt;
  &lt;li&gt;category: the selected game
category&lt;/li&gt;
  &lt;li&gt;icon_url: url to the game
icon used in the OpenFeint catalog and elsewhere&lt;/li&gt;
  &lt;li&gt;achievements_url: url to the
achievements data&lt;/li&gt;
  &lt;li&gt;leaderboards_url: url to the
leaderboards data&lt;/li&gt;
  &lt;li&gt;challenges_url: url to the
challenges data&lt;/li&gt;
&lt;/ul&gt;
&lt;big&gt;&lt;span
 style="font-weight: bold;"&gt;How to get a list of
Leaderboards&lt;/span&gt;&lt;/big&gt;&lt;br&gt;
&lt;br&gt;
Grab your current list of leaderboards, and their associated data. To
get the highscores on the leaderboards requires a separate request (see
How to get a list of Highscores).&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Request
format:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
/api/games/:client_application_id/leaderboards(.:format)&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
http://api.openfeint.com/api/games/943342882/leaderboards.xml&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;What
is returned:&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;name: the name of the
leaderboard.&lt;/li&gt;
  &lt;li&gt;id: the unique ID of the
leaderboard. You will need this to make a highscores request.&lt;/li&gt;
  &lt;li&gt;size: the approximate size
of the leaderboard.&lt;/li&gt;
  &lt;li&gt;highscores_url: the url to
the highscores of the leaderboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;big&gt;&lt;span
 style="font-weight: bold;"&gt;How to get a list of High
Scores&lt;/span&gt;&lt;/big&gt;&lt;br&gt;
&lt;br&gt;
Use this request to get the actual highscores associated with a
leaderboard. You will need aleaderboard_id in order to make this
request. You can get the leaderboard_id by getting the list of
leaderboards (see How to get a list of Leaderboards). The response of a
highscores request is paginated, meaning that only a limited number of
results are shown at a time. By default, 30 entries are shown at a
time. In order to see more results, you must pass in a page parameter
into the request. If you want to see more results per page, you can
pass in a per_page parameter to set the number of results returned per
page.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Request
format:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
/api/games/:client_application_id/leaderboards/:leaderboard_id/highscores(.:format)&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
http://api.openfeint.com/api/games/943342882/leaderboards/746115022/highscores.xml&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;What
is returned:&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;score: the actual score
recorded.&lt;/li&gt;
  &lt;li&gt;created_at: when the
highscore was first created.&lt;/li&gt;
  &lt;li&gt;updated_at: when the
highscore was updated.&lt;/li&gt;
  &lt;li&gt;display_text: any custom
display text associated with the highscore.&lt;/li&gt;
  &lt;li&gt;user: the following is the
user data associated with the highscore&lt;/li&gt;
  &lt;ul&gt;
    &lt;li&gt;name: name of the user who
got the score.&lt;/li&gt;
    &lt;li&gt;profile_picture_url: the
url of the profile picture associated with the user.&lt;/li&gt;
    &lt;li&gt;open_feint_gamer_score:
the openfeint score associated with the user&lt;/li&gt;
  &lt;/ul&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;big&gt;&lt;span
 style="font-weight: bold;"&gt;How to get a list of
Achievements&lt;/span&gt;&lt;/big&gt;&lt;br&gt;
&lt;br&gt;
Use this request to get a list of Achievements that a player can earn
in your game.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Request
format:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
/api/games/:client_application_id/achievements(.:format)&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
http://api.openfeint.com/api/games/943342882/achievements.xml&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;What
is returned:&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;title: the title of the
achievement&lt;/li&gt;
  &lt;li&gt;description: a description
of the achievement.&lt;/li&gt;
  &lt;li&gt;gamerscore: the number of
OpenFeint points players will receive when they earn this achievement. &lt;/li&gt;
  &lt;li&gt;is_secret: a true or false
value determining if the achievement is hidden from users.&lt;/li&gt;
&lt;/ul&gt;
&lt;big&gt;&lt;span
 style="font-weight: bold;"&gt;How to get a list of
Challenge Definitions&lt;/span&gt;&lt;/big&gt;&lt;br&gt;
&lt;br&gt;
Use this request to get the list of Challenge Definitions and how many
users issued that Challenge. We currently do not offer a list of the
actual challenges issued and by whom it was issued.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Request
format:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
/api/games/:client_application_id/challenges(.:format)&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
http://api.openfeint.com/api/games/943342882/challenges.xml&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;What
is returned:&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;name: the name of the
challenge definition.&lt;/li&gt;
  &lt;li&gt;image_url: the url of the
image associated with the challenge definition.&lt;/li&gt;
  &lt;li&gt;size: the number of
challenges that have been issued by players using this challenge
definition.&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/75</link><pubDate>Wed, 01 Sep 2010 00:13:44 GMT</pubDate><guid isPermaLink="false">135409e384f9c5ea33461116916115d0</guid></item><item><title>Test Users</title><description>&lt;div&gt;&lt;b&gt;Overview&lt;/b&gt;

&lt;p&gt;The OpenFeint Developer Dashboard now contains a "Test Users"
section. "Test Users" is a development tool that lets you reset a
users achievements and high scores from within the developer
dashboard. You can also unlink a user's facebook/twitter account,
or remove a user from a device.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Quick Start&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;You can make an existing OpenFeint user a test user by going to
the test users tab and entering the email address &amp;amp; password
associated with that account (test users must have been 'secured').
Developer accounts may not be turned into test users for safety
reasons.&lt;/p&gt;
&lt;p&gt;Once you've added a test user you can reset the user's
achievements and leaderboards by clicking on the game name, then
selecting an individual high score or unlocked achievement to
delete, or clicking "delete all" to delete them all.&lt;/p&gt;
&lt;p&gt;You can also unlink a user's facebook/twitter account, or remove
a user from a device. To remove a user from a device, find the
device by it's Apple UDID in the credentials list, and click
delete. Then, remove the application from your device and reinstall
it. When you launch the application again, you will be presented
with the initial OpenFeint welcome/approval screen. Note that if
you don't remove the application from the device and simply close
and relaunch the app, a new user will automatically be created, but
you won't see the welcome/approval screen.&lt;/p&gt;
&lt;p&gt;You may find a free service such as spamgourmet.com useful
for generating additional email identities to uniquely secure each
test user account.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Known Issues&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Removing test user data from the server via the OF dev dashboard
 will not remove corresponding data from the client side offline data
cache.  To purge all client side data and prevent it from being resynchronized
with the server it is necessary to remove the app itself from the device or simulator.&lt;/p&gt;
&lt;p&gt;Developer accounts may not be turned into test users. When you
enter a developer e-mail and attempt to turn the user into a test
user, the message may incorrectly report that it succeeded.&lt;/p&gt;&lt;/div&gt;
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/38</link><pubDate>Mon, 30 Aug 2010 23:42:07 GMT</pubDate><guid isPermaLink="false">df12ede535a2b5941ef4f36ac7122810</guid></item><item><title>Achievements</title><description>&lt;div&gt;&lt;p&gt;&lt;b&gt;Overview&lt;/b&gt;&lt;br&gt;

OpenFeint Achievements allow you to provide incentive to your
players for completing alternative goals. For example, in a Hockey
game, you might have an achievement for making a hat trick or
winning a fight without taking any hits. When designing
achievements for your title, think about what alternative
objectives a player could have that require skill or effort.
Achievements in OpenFeint have the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An achievement is initially locked but can be unlocked one time
by each player.&lt;/li&gt;
&lt;li&gt;Each achievement awards a player with a set number of Feint
points.&lt;/li&gt;
&lt;li&gt;Each player has a Feint Score. It&amp;#8217;s the sum of all her
unlocked achievements.&lt;/li&gt;
&lt;li&gt;A player&amp;#8217;s Feint score is prominently displayed on her
profile.&lt;/li&gt;
&lt;li&gt;You can optionally customize the icon, name, description and
score for every achievement in your game. We also provide a default
icon for your achievements. Customized icons should be of size
50 x 50 pixels.&lt;/li&gt;
&lt;li&gt;An achievement can be marked as &amp;#8220;secret.&amp;#8221; A secret
achievement&amp;#8217;s description and icon will be hidden from a
player until he unlocks it.&lt;/li&gt;

&lt;li&gt;Each title can have up to 100 achievements worth up to 1000
Feint score.&lt;/li&gt;
&lt;li&gt;Achievements can be unlocked even when a player is
offline.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Quick Start&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create an achievement in the &lt;a href=
"https://api.openfeint.com/"&gt;Developer Dashboard&lt;/a&gt;.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Note its Unique Identifier.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;In your application, unlock the achievement using
[OFAchievementService unlockAchievement:];&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Note: that you may call this unlock function more than once.
It will only have an affect the first time it is unlocked for a
player.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Header Files&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OFAchievementService.h&lt;/li&gt;
&lt;li&gt;OFAchievement.h&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;p&gt;
&lt;b&gt;Achievements Policy&lt;/b&gt;
&lt;p&gt;Developers cannot create applications designed solely for the purpose of generating achievement points. OpenFeint reserves the right to disable achievements for applications that fall under this category.  For additional information or clarification please contact developer support.&lt;/p&gt;</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/26</link><pubDate>Wed, 25 Aug 2010 20:59:37 GMT</pubDate><guid isPermaLink="false">4a4c06a791e8b79b834cc20028774c51</guid></item><item><title>OpenFeint Art Assets and Branding Guidelines</title><description>  &lt;div&gt;&lt;b&gt;I. Introduction&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;As the premier social network for iPhone games, it&amp;rsquo;s
important that players have a consistent experience using OpenFeint
across games. This document lays out our preferred presentation of
how OpenFeint is made accessible and presented to players within
games. We&amp;rsquo;ve thought long and hard about these guidelines and
know you&amp;rsquo;ll get the most out of OpenFeint by following
them.&lt;/p&gt;
&lt;p&gt;We have provided a complete asset pack in the appendix of this
document with our logos for you to use. Be sure to download it and
take a look.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;II. Attribution&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;This is pretty simple, your app must conspicuously display a
graphic that indicates you have services provided by OpenFeint.
This can be a splash screen at the launch of the app, a small
notification, or our pre-made &amp;ldquo;OpenFeint Enabled&amp;rdquo;
graphic.&lt;/p&gt;

&lt;p&gt;
&lt;p&gt;&lt;b&gt;III. Branding&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;There are a few places which we need you to display the
inclusion of OpenFeint in your game. Properly displaying our brand
will help ensure that your customers are exposed to the social
opportunities that await them.&lt;/p&gt;
&lt;p&gt;App Store Branding:&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The logo may be displayed as a watermark on the application
icon. We highly encourage this!&lt;/li&gt;
&lt;li style="list-style: none"&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;The following text must be displayed in your app description on
the iTunes app store, &amp;ldquo;[App Name] is OpenFeint
Enabled.&amp;rdquo; Oh, and please be sure to change [App Name] to the
name of your app.&lt;/li&gt;

&lt;/ul&gt;
&lt;p&gt;In-App Branding:&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The logo may be displayed on the application
&amp;ldquo;default&amp;rdquo; screen.&lt;/li&gt;
&lt;li style="list-style: none"&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;If your game has a main menu, the OpenFeint logo must be
displayed and look like a button. The OpenFeint dashboard must be
accessible by touching it.&lt;/li&gt;
&lt;li style="list-style: none"&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;While someone is using your app, OpenFeint must be accessible
at any time, even in the middle of a game session, this may be from
a pause screen.&lt;/li&gt;
&lt;li style="list-style: none"&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;If your game has a pause screen, the OpenFeint leaf button must
be visible on it.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;IV. Don&amp;rsquo;ts&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve provided a library of acceptable OpenFeint logos,
which can be found in the Appendix. You may not alter the colors of
these graphics in any way. Any graphics which are provided on a
transparent background may be placed on a background of your
choosing, although the logo must be clearly visible (i.e. do not
use the white logo on a white background).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;V. Appendix&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We have provided pre-made image files for your use, which you
can find &lt;a href=
"http://www.openfeint.com/developers/support/images/DeveloperAssets.zip"&gt;here.&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/32</link><pubDate>Thu, 19 Aug 2010 20:48:01 GMT</pubDate><guid isPermaLink="false">8d884a918c78fd4873c09828ba3f618a</guid></item><item><title>Work-Around for trouble with OF+Unity+iOS4</title><description>If you are having issues with OpenFeint, Unity, and iOS4 we have a workaround for the most common issue.  Please refer to this thread in the developer support forums for more information:&lt;p&gt;

&lt;a href=http://openfeint.com/developers/forum/showthread.php?1284-unable-to-compile-with-OS4&gt;Unable to compile with iOS4&lt;/a&gt;</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/83</link><pubDate>Thu, 08 Jul 2010 01:26:29 GMT</pubDate><guid isPermaLink="false">3f3edbeb036006f2d6aa38126d42e43c</guid></item><item><title>OpenFeint Unity-iPhone Support</title><description>Note, for developers experiencing issues with Unity and iOS4, please refer to this forum thread:
&lt;br&gt;
&lt;a href="http://openfeint.com/developers/forum/showthread.php?1284-unable-to-compile-with-OS4"&gt;OpenFeint Developer Support Forum - Unity &amp; iOS4&lt;/a&gt;
&lt;P&gt;
OpenFeint Unity support&lt;br&gt;
version 2.0&lt;br&gt;
build 1.15.2010&lt;br&gt;
&lt;br&gt;
Release Notes&lt;br&gt;
Copyright (c) 2009-2010 Aurora Feint Inc. All Rights Reserved.&lt;br&gt;
&lt;br&gt;
What's new? 1.15.2010 version 2.0 - Completely rewritten Unity plugin
for much easier integration and more features&lt;br&gt;
&lt;br&gt;
This document explains how to integrate the OpenFeint-UnityiPhone
package.&lt;br&gt;
&lt;br&gt;
Below is a step by step explanation for the integration process.&lt;br&gt;
&lt;br&gt;
1. If this is a new Unity project, make sure to set up your Player
settings first (Edit-&amp;gt;Project Settings-&amp;gt;Player). This is
required for the automation process to work properly.&lt;br&gt;
2. In Unity, go to "Assets-&amp;gt;Import Package..." and import the
attached Unity package.&lt;br&gt;
3. Note the new "OpenFeint" menu item in the menu bar. Click on this
and go to "Set Application Initialization Settings...". In this dialog,
set up all of the OpenFeint initialization settings and click Apply.
This step only needs to be done once for each application. It is
recommended that you turn "Allow Notifications" on.&lt;br&gt;
4. If desired, copy your "openfeint_offline_config.xml" into the
"Editor/OpenFeint/Offline Config File Goes Here" folder. You will need
to do this every time you make a change to achievements or leaderboards
through the developer dashboard.&lt;br&gt;
6. For your first build with OF support (and anytime you need to do
anything other than an "Append" build in Unity), make sure that the
Xcode project isn't open as it causes problems. We're looking for a
solution for this.&lt;br&gt;
7. Go to Unity "Build Settings" (File-&amp;gt;Build Settings...) and
"Build" the project (not "Build &amp;amp; Run" for the first build;
subsequent builds of the project can use Build &amp;amp; Run though).&lt;br&gt;
8. Follow the instructions in the OpenFeint readme.txt file. These are
steps for adding OpenFeint to your xcode project. You only need to do
this once.&lt;br&gt;
9. Hit "Build &amp;amp; Run". Your application will launch on your
iPhone and the OpenFeint welcome screen will appear on your first run.&lt;br&gt;
10. Use the handy methods, events, and properties located in
"Plugins/OpenFeint.cs" to hook up achievements, leaderboards etc.&lt;br&gt;
&lt;br&gt;
NOTE: If you want to build for an iPhone OS prior to 3.0 it is
important that you follow the instructions in the OpenFeint readme.txt
file for weak linking your libraries.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Changelog&lt;br&gt;
&lt;br&gt;
--- 10.28.2009 - version 1.0 Improved documentation and official release&lt;br&gt;
&lt;br&gt;
--- 9.14.2009 - version 0.9 (pre-release) Added support for achievement
delegate events&lt;br&gt;
&lt;br&gt;
--- 9.04.2009 - version 0.8 (pre-release) Initial support for showing
the dashboard, submitting high scores, and unlocking achievements&lt;br&gt;
&lt;br&gt;
The files&lt;br&gt;
&lt;br&gt;
OpenFeint-Unity-README.txt&lt;br&gt;
&lt;br&gt;
OpenFeint-UnityiPhone.unityPackage
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/25</link><pubDate>Thu, 08 Jul 2010 01:23:31 GMT</pubDate><guid isPermaLink="false">02563eb1c88127244d1210143da6cc3e</guid></item><item><title>OpenFeint 2.5 - Introduction</title><description>&lt;span style="font-weight: bold;"&gt;What&amp;rsquo;s
New&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
OpenFeint 2.5 adds a new, easier to use API for most of
OpenFeint&amp;rsquo;s features.&amp;nbsp; The old API is still there
too making it easy to upgrade without having to change how existing
apps use OpenFeint. Check out some examples of cool things you can do &lt;a href="http://www.openfeint.com/developers/openfeint25"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Basic
Integration&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;The basic steps to integrate
and initialize OpenFeint are unchanged.&amp;nbsp; For a quick start,
refer to the &amp;ldquo;ReadMe.txt&amp;rdquo; file included in the SDK
download package.&amp;nbsp; More information is also available in the
OpenFeint online knowledge-base.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Getting
A Feel For The New API&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
One way to get a feel for the new API is to walk through a tutorial
that makes use of one basic feature.&amp;nbsp; The following tutorial
shows how to unlock an achievement in a game using the new API:&lt;br&gt;
&lt;br&gt;
&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000073"&gt;Unlock
Achievement&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Another great way to get familiar with the API is to build the sample
app that comes with the OpenFeint SDK, look at its source code, trace
it in the debugger, experiment with your own changes, and cut and paste
the sample code into your own game.&amp;nbsp; Note that to build the
sample app you will have to paste your own product key into the sample
code
and add your own offline config file from your developer dashboard
account.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Feature
Categories&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
OpenFeint 2.5 is divided into six categories of improved
API&amp;rsquo;s and two categories of entirely new features:&lt;br&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000076"&gt;User
&amp;amp; App Info&lt;/a&gt; -- provides
the means for developers to get basic information about the current
user, other known users, who their friends are, the last games
they&amp;rsquo;ve played, and information about featured games
associated with the current app.&lt;/li&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000077"&gt;Communicating
With Users&lt;/a&gt; -- provides the means
for sending social notifications, retrieving announcements addressed to
users, and giving users an easy way to invite their friends to try a
game.&lt;/li&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000078"&gt;Achievements&lt;/a&gt;
-- provides the means to unlock achievements and query information
about specific achievements associated with the current app.&lt;/li&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000079"&gt;Leaderboards&lt;/a&gt;
-- provides the means to submit high scores to leaderboards and query
information about leaderboards associated with the current app.&lt;/li&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000080"&gt;Challenges&lt;/a&gt;
-- provides the means for a player to challenge a friend to a game and
compare their performances.&lt;/li&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000081"&gt;Cloud
Storage&lt;/a&gt; -- provides the means to
store arbitrary &amp;ldquo;save game&amp;rdquo; data on OpenFeint
servers on behalf of the current user and game.&lt;/li&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000074"&gt;New
Multiplayer Support&lt;/a&gt; -- provides
match-up and turn based multi-player support.&lt;/li&gt;
  &lt;li&gt;&lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000075"&gt;New
RESTful Web Services&lt;/a&gt; -- provides
developers with the means to post leaderboard data on their own web
sites outside of the game.&lt;/li&gt;
&lt;/ol&gt;
Click on each category for more details.&amp;nbsp; Each category of
features is implemented by one or more code modules corresponding to
individual header files.&amp;nbsp; Class methods and properties are
further documented in the header files.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/82</link><pubDate>Tue, 06 Jul 2010 23:31:38 GMT</pubDate><guid isPermaLink="false">cdd47be52aacfab851246644cc0d6b3f</guid></item><item><title>Creating a "Favorite This Game" link</title><description>OpenFeint 2.5 introduces new high level API&amp;rsquo;s to make it
easier for developers to take advantage of OpenFeint&amp;rsquo;s broad
array of features.&amp;nbsp; All of the old API&amp;rsquo;s are still
there too.&amp;nbsp; The new API&amp;rsquo;s just wrap them to simplify
the typical use cases.&lt;br&gt;
&lt;br&gt;
Let&amp;rsquo;s take a look at an example from the new OFCurrentUser
API.&amp;nbsp; Notice that &amp;ldquo;OFCurrentUser.h&amp;rdquo; lives
in a new &amp;ldquo;include&amp;rdquo; directory inside the OpenFeint
2.5 SDK.&amp;nbsp; The header files of this directory make up the new
API and document its features.&amp;nbsp; OFCurrentUser contains the
class method &amp;ldquo;favoriteCurrentGame&amp;rdquo; that you can
easily rig up to a button in your UI to make it more convenient for
your users to recommend your game to others.&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+ (void)favoriteCurrentGame:(NSString*)reviewText;&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
If you provide users with a game summary message when they finish a
level, you might want to include a button that lets them conveniently
mark the game as one of their favorites and include their own review
text.&amp;nbsp; Users can can always get to this feature from the
OpenFeint dashboard but if the option appears in your own UI at just
the right time they are more likely to make use of it.&amp;nbsp; You
could even conditionally include this button only when the end of game
stats are reporting on a particularly successful round where the user
is more likely to be interested in offering a positive
review.&amp;nbsp; The button could also be hidden after the user has
already marked the game as a favorite.&lt;br&gt;
&lt;br&gt;
All of the new API&amp;rsquo;s follow a pattern that treat the module,
such as OFCurrentUser, as a class wrapping a singleton that keeps track
of context and reduces the number of parameters for you to keep track
of in each method.&amp;nbsp; Methods that start an asynchronous request
handle replies through protocol defined methods of a delegate class
that you provide.&amp;nbsp; This won&amp;rsquo;t seem as complex as it
sounds once we&amp;rsquo;ve finished working through our
&amp;ldquo;favoriteCurrentGame&amp;rdquo; example below.&lt;br&gt;
&lt;br&gt;
Let&amp;rsquo;s say that your end of game summary screen is handled by
your own view controller class called GameSummaryController declared
something like this:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
@interface GameSummaryController : UIViewController
&amp;lt;OFCurrentUserDelegate&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
You inform the OFCurrentUser singleton that your GameSummaryController
class is the current delegate to handle these callbacks with a
&amp;ldquo;setDelegate&amp;rdquo; method.&amp;nbsp; A view controller
like GameSummaryController can enable and disable this delegation like
so:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
- (void)viewWillDisappear:(BOOL)animated&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
[OFCurrentUser setDelegate:nil];&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [super
viewWillDisappear:animated];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - (void)viewDidAppear:(BOOL)animated&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; [OFCurrentUser
setDelegate:self];&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [super
viewDidAppear:animated];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
GameSummaryController will include the following methods of the
OFCurrentUserDelegate protocol:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
- (void)didFavoriteCurrentGame;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - (void)didFailFavoriteCurrentGame;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
These methods let you know whether the server was able to confirm your
submission of the following asynchronous request when the user presses
your button to mark the game as a favorite:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
[ OFCurrentUser favoriteCurrentGame: reviewText];&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
And there you have it.&amp;nbsp; The one line above submits a request
to mark a game as favorite.&amp;nbsp; Most of the context is provided
by the OFCurrentUser singleton so you don&amp;rsquo;t have to think
about it.&amp;nbsp; Callbacks for completion of asynchronous requests
for all features of this API module are handled through a protocol you
delegate to one class of your own.&amp;nbsp; This simple pattern is
applied throughout the OpenFeint API to make it easier for developers
to take advantage of OpenFeint features.

</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/72</link><pubDate>Tue, 06 Jul 2010 23:23:47 GMT</pubDate><guid isPermaLink="false">9b035cdf5165fb3646ccc9f2d4f5baae</guid></item><item><title>OpenFeint 2.5 - Cloud Storage</title><description>Cloud Storage&lt;br&gt;
&lt;br&gt;
The OFCloudStorage module allows you to store arbitrary game data on
OpenFeint servers.&amp;nbsp; It is primarily intended for stored saved
games.&amp;nbsp; The module is represented by the &amp;ldquo;include /
OFCloudStorage.h&amp;rdquo; header file and provides the following
features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Upload data with a key value
  &lt;/li&gt;
  &lt;li&gt;Download data with a key
value&lt;/li&gt;
  &lt;li&gt;Get all key values for a
particular user&lt;/li&gt;
&lt;/ul&gt;
Note that the "key value" could be something like "SAVED_GAME" in
code.&amp;nbsp; Key values are fetched with in the context of
applicationId/userId/keyvalue.&amp;nbsp; If the same key value
"SAVED_GAME" is used for different users in different games this
context assures that the correct context specific value is returned.&lt;br&gt;
&lt;br&gt;
Please refer to the corresponding header files for proper usage.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/81</link><pubDate>Tue, 06 Jul 2010 23:16:24 GMT</pubDate><guid isPermaLink="false">6cd003f39eb7b020c86318fb95091cd1</guid></item><item><title>OpenFeint 2.5 - Challenges</title><description>&lt;span style="font-weight: bold;"&gt;Challenges&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
The user and app info features cover three modules represented by the
following header files:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Include / OFChallenge.h&lt;/li&gt;
  &lt;li&gt;Include /
OFChallengeDefinition.h&lt;/li&gt;
  &lt;li&gt;Include / OFChallengeToUser.h&lt;/li&gt;
&lt;/ul&gt;
The OFChallenge module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Create a challenge from a
challenge definition&lt;/li&gt;
  &lt;li&gt;Use the OpenFeint UI to send
a challenge and to fill out the challenge after it is created and send
it from a customized UI.&lt;/li&gt;
  &lt;li&gt;Download challenge data for
a particular challenge&lt;/li&gt;
  &lt;li&gt;See the challenge definition
that created this challenge&lt;/li&gt;
  &lt;li&gt;See the challenger&lt;/li&gt;
  &lt;li&gt;See the challengeDescription&lt;/li&gt;
  &lt;li&gt;See the user message on the
challenge&lt;/li&gt;
  &lt;li&gt;Read/write "hidden text"
(purely a field for the developer to put extra text - this is unused by
all systems in openfeint). &lt;/li&gt;
&lt;/ul&gt;
The OFChallengeDefinition module provides the following features
referring to challenge definitions created in the OpenFeint developer
dashboard:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Download all challenge
definitions for this app&lt;/li&gt;
  &lt;li&gt;Get a challenge definition
by id&lt;/li&gt;
  &lt;li&gt;Get icon for a challenge&lt;/li&gt;
  &lt;li&gt;Get the title of the
challenge&lt;/li&gt;
  &lt;li&gt;See whether this challenge
is a multi-attempt challenge.&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
The OFChallengeToUser module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Read/write to a file&lt;/li&gt;
  &lt;li&gt;Send completion result
either through the Openfeint ui or through a custom ui&lt;/li&gt;
  &lt;li&gt;Reject a challenge&lt;/li&gt;
  &lt;li&gt;See the Challenge object
that another user created and sent to you&lt;/li&gt;
  &lt;li&gt;See the result of this
challenge&lt;/li&gt;
  &lt;li&gt;See the result description&lt;/li&gt;
  &lt;li&gt;See whether this has been
viewed by the receiving user&lt;/li&gt;
  &lt;li&gt;See the number of attempts
taken at this challenge by the current user&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
Please refer to the corresponding header files for proper usage.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/80</link><pubDate>Tue, 06 Jul 2010 23:15:28 GMT</pubDate><guid isPermaLink="false">b0584a1c7c92ff447cdb270118311665</guid></item><item><title>OpenFeint 2.5 - Leaderboards</title><description>&lt;span style="font-weight: bold;"&gt;Leaderboards&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
The leaderboard features cover modules represented by the following
header files:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Include / OFHighScore.h&lt;/li&gt;
  &lt;li&gt;Include / OFLeaderboard.h&lt;/li&gt;
  &lt;li&gt;Include / OFScoreEnumerator.h&lt;/li&gt;
  &lt;li&gt;Include /
OFAbridgedHighScore.h&lt;/li&gt;
  &lt;li&gt;Include /
OFDistributedScoreEnumerator.h&lt;/li&gt;
&lt;/ul&gt;
Note that most games not implementing sophisticated customized
leaderboard displays will find all of the leaderboard functionality
that they need in just the OFHighScore and OFLeaderboard modules.&lt;br&gt;
&lt;br&gt;
The OFHighScore module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Create a high score and
submit it to a leaderboard.&lt;/li&gt;
  &lt;li&gt;Download the high scores
"blob" information (data uploaded by the developer when submitting the
high score)&lt;/li&gt;
  &lt;li&gt;Get the score&lt;/li&gt;
  &lt;li&gt;Get the display text&lt;/li&gt;
  &lt;li&gt;Get the rank attached to
this score&lt;/li&gt;
  &lt;li&gt;Get which user this score is
for&lt;/li&gt;
&lt;/ul&gt;
The OFLeaderboard module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Get the leaderboards for
this app&lt;/li&gt;
  &lt;li&gt;Get a leaderboard by the
leaderboard Id&lt;/li&gt;
  &lt;li&gt;Get the High score for the
current user on any leaderboard&lt;/li&gt;
  &lt;li&gt;Get the scores for all local
users on the device on any leaderboard&lt;/li&gt;
  &lt;li&gt;Get Friends scores, or
everyones scores for a given leaderboard&lt;/li&gt;
  &lt;li&gt;Get the name of the
leaderboard&lt;/li&gt;
  &lt;li&gt;Get the leaderboard id&lt;/li&gt;
  &lt;li&gt;Get the current users score
on a leaderboard&lt;/li&gt;
  &lt;li&gt;Get "descending order" (YES
then the highest score value is ranked #1, if NO then the lowest score
value is ranked #1.)&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
The OFScoreEnumerator module provides the following features:&lt;br&gt;
Create a score enumerator, which allows an app to download a set of
scores at a time (i.e. give me 25 scores now.... now give me the next
25..... now give me the next 25).&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Get the next set of scores&lt;/li&gt;
  &lt;li&gt;Get the previous set of
scores&lt;/li&gt;
  &lt;li&gt;Get the page of scores that
contains the current user&lt;/li&gt;
  &lt;li&gt;Jump to a page index of
scores&lt;/li&gt;
  &lt;li&gt;Get the page size&lt;/li&gt;
  &lt;li&gt;Get the current page&lt;/li&gt;
  &lt;li&gt;Get the total number of pages&lt;/li&gt;
  &lt;li&gt;Get the scores on the
current page&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
OFAbridgedHighScore is a lightweight version of OFHighScore that
provides the following features for use with
OFDistributedScoreEnumerator:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Get the score&lt;/li&gt;
  &lt;li&gt;Get the display text&lt;/li&gt;
  &lt;li&gt;Get which user this score is
for&lt;/li&gt;
&lt;/ul&gt;
The OFDistributedScoreEnumerator module provides the following features:&lt;br&gt;
Create a distributed score enumerator, which allows an app to download
scores at a set interval of score values (i.e. get me 100 scores with
an ideal interval of 1000pts gives scores 100 scores between 1000 and
100.000, page 2 gives 100 scores between 100.000 and 200.000)&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Get the next set of abridged
scores&lt;/li&gt;
  &lt;li&gt;Get the previous set of
abridged scores&lt;/li&gt;
  &lt;li&gt;Jump to a page index&lt;/li&gt;
  &lt;li&gt;Get the page size&lt;/li&gt;
  &lt;li&gt;Get the current page&lt;/li&gt;
  &lt;li&gt;Get the abridged scores on
the current page.&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
Please refer to the corresponding header files for proper usage.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/79</link><pubDate>Tue, 06 Jul 2010 23:14:52 GMT</pubDate><guid isPermaLink="false">6934c207de52b9021126dfa3d55e5e21</guid></item><item><title>OpenFeint 2.5 - Achievements</title><description>&lt;span style="font-weight: bold;"&gt;Achievements&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
The OFAchievement module is represented by the &amp;ldquo;include /
OFAchievement.h&amp;rdquo; header file and provides the following
features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Get the achievements for
this game&lt;/li&gt;
  &lt;li&gt;Get an achievement by its id&lt;/li&gt;
  &lt;li&gt;Unlock an achievement&lt;/li&gt;
  &lt;li&gt;Unlock an achievement, but
defer the server call (used when multiple achievements are unlocked at
once)&lt;/li&gt;
  &lt;li&gt;Submit the defered
achievements.&lt;/li&gt;
  &lt;li&gt;Get the icon for an
achievement&lt;/li&gt;
  &lt;li&gt;Get the name of the
achievement&lt;/li&gt;
  &lt;li&gt;Get the description of the
achievement&lt;/li&gt;
  &lt;li&gt;Get the gamer score attached
to this achievement&lt;/li&gt;
  &lt;li&gt;Get whether or not this
achievement is "secret"&lt;/li&gt;
  &lt;li&gt;Get whether or not this
achievement is unlocked by the current user&lt;/li&gt;
  &lt;li&gt;Get the date this
achievement was unlocked by the current user.&lt;/li&gt;
  &lt;li&gt;Optionally you can set a
custom url to be posted with this achievement to social networks if the
user decides to post to social networks.&lt;/li&gt;
&lt;/ul&gt;
Please refer to the corresponding header files for proper usage.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/78</link><pubDate>Tue, 06 Jul 2010 23:14:12 GMT</pubDate><guid isPermaLink="false">67b0efc3cbf23dd4dbe18ffe228c3ead</guid></item><item><title>OpenFeint 2.5 - Communicating with Users</title><description>&lt;span style="font-weight: bold;"&gt;Communicating
With Users&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
User communication features cover modules represented by the following
header files:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;include /
OFSocialNotificationApi.h&lt;/li&gt;
  &lt;li&gt;include / OFAnnouncement.h&lt;/li&gt;
  &lt;li&gt;include /
OFInviteDefinition.h&lt;/li&gt;
  &lt;li&gt;include / OFInvite.h&lt;/li&gt;
&lt;/ul&gt;
The OFSocialNotificationApi module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Send a social notification
with text and an image&lt;/li&gt;
  &lt;li&gt;Optionally you can also set
a link on the social notification&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
  &lt;li&gt;The OFAnnouncement module
provides the following features:&lt;/li&gt;
  &lt;li&gt;Get the announcements for
the running app&lt;/li&gt;
  &lt;li&gt;Get the posts for a certain
announcement&lt;/li&gt;
  &lt;li&gt;Get the body of an
announcement&lt;/li&gt;
&lt;/ul&gt;
Invite definitions are created on the OpenFeint developer
dashboard.&amp;nbsp; The OFInviteDefinition module provides the
following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Get the primary invite
definition (there is always a primary invite definition defined on the
dev dashboard unless there are no invite definitions at all)&lt;/li&gt;
  &lt;li&gt;Get the invite definition by
id (incase there are multiple invite definitions)&lt;/li&gt;
  &lt;li&gt;Get invite icons&lt;/li&gt;
  &lt;li&gt;Get the name of the
application associated with an invite&lt;/li&gt;
  &lt;li&gt;Get the application id for
an invite&lt;/li&gt;
  &lt;li&gt;Get the invite identifier
(put in by the developer in the dev
dashboard)&lt;/li&gt;
  &lt;li&gt;Get the developer-message
(uneditable string sent with the invite)&lt;/li&gt;
  &lt;li&gt;Get the suggested-message
(the default message the developer will put in when inviting
someone.&amp;nbsp; The user can edit this if the developer uses our
invite ui)&lt;/li&gt;
&lt;/ul&gt;
An OFInvite object is effectively an instance of created from an The
OFInvite module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Invites (The object that is
created when an invite is actually made.&amp;nbsp; This is an
"instance" of a definition):&lt;/li&gt;
  &lt;li&gt;Able to create an invite
from an invite definition&lt;/li&gt;
  &lt;li&gt;You can decide to use
OpenFeints UI to send the invite after it is created, or you can fill
out the information for the invite yourself through a custom api and
send it to a list of users.&lt;/li&gt;
  &lt;li&gt;Set the user message on the
invite&lt;/li&gt;
&lt;/ul&gt;
Please refer to the corresponding header files for proper usage.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/77</link><pubDate>Tue, 06 Jul 2010 23:13:45 GMT</pubDate><guid isPermaLink="false">09cc61145ab58d33bf35797c7a557883</guid></item><item><title>OpenFeint 2.5 - User and Application Info</title><description>&lt;span style="font-weight: bold;"&gt;User
&amp;amp; App Info&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
The user and app info features cover three modules represented by the
following header files:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;include / OFUser.h&lt;/li&gt;
  &lt;li&gt;include / OFCurrentUser.h&lt;/li&gt;
  &lt;li&gt;include / OFPlayedGame.h&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
The OFUser module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;You can get a User by their
ID&lt;/li&gt;
  &lt;li&gt;You can get the friends of
any user&lt;/li&gt;
  &lt;li&gt;You can get the friends that
own running application of any user&lt;/li&gt;
  &lt;li&gt;You can get any users
profile picture&lt;/li&gt;
  &lt;li&gt;Get the users name&lt;/li&gt;
  &lt;li&gt;Get the users last played
game id&lt;/li&gt;
  &lt;li&gt;Get the users last played
game name&lt;/li&gt;
  &lt;li&gt;Get the users gamerscore&lt;/li&gt;
  &lt;li&gt;Get whether the user follows
the current user&lt;/li&gt;
  &lt;li&gt;Get whether the user is
followed by the current user&lt;/li&gt;
  &lt;li&gt;Get whether the user is
online&lt;/li&gt;
  &lt;li&gt;Get the users user id&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
The OFCurrentUser module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;You can do all the stuff you
can do to a user (listed above) but additionally you can:&lt;/li&gt;
  &lt;li&gt;Get the current user&lt;/li&gt;
  &lt;li&gt;Favorite the running
application for the current user&lt;/li&gt;
  &lt;li&gt;Send a friend request from
the current user to another user&lt;/li&gt;
  &lt;li&gt;Unfriend a user from the
current users friends&lt;/li&gt;
  &lt;li&gt;Query if the current user
has any friends&lt;/li&gt;
  &lt;li&gt;Query the current users
unview challenge count&lt;/li&gt;
  &lt;li&gt;Query if the current user
allows social notifications&lt;/li&gt;
  &lt;li&gt;Query if the current user
"has any open feint badges". (Unseen stuff in OpenFeint which is
pending friends + unviewed challenges + new inbox items).&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
The OFPlayedGame module provides the following features:&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Get a list of featured games
by the current application&lt;/li&gt;
  &lt;li&gt;Get the name of all featured
games&lt;/li&gt;
  &lt;li&gt;Get the client application
Id for all featured games&lt;/li&gt;
  &lt;li&gt;Get the iTunes url to by a
featured application&lt;/li&gt;
  &lt;li&gt;Get the icon for a featured
application&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
Please refer to the corresponding header files for proper usage.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/76</link><pubDate>Tue, 06 Jul 2010 23:13:13 GMT</pubDate><guid isPermaLink="false">31e5bfe307f4359f168df602864be803</guid></item><item><title>OpenFeint 2.5 - Turn-Based Multiplayer Implementation Guide</title><description>&lt;span style="font-weight: bold;"&gt;OpenFeint
Turn-Based Multiplayer Game Implementation Guide&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
The OpenFeint Turn-Based Multiplayer System is designed to make
multiplayer game making easier. &lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Use OpenFeint's server
expertise, instead of having to administrate your own&lt;/li&gt;
  &lt;li&gt;Simple event-driven
interface for move receipt&lt;/li&gt;
  &lt;li&gt;Multislot lobby allows the
player to be in several games at once&lt;/li&gt;
  &lt;li&gt;Matchmaking&lt;/li&gt;
  &lt;li&gt;Push notifications keep the
player involved even when offline&lt;/li&gt;
  &lt;li&gt;Handles issue of player
dropouts&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-weight: bold;"&gt;Limitations&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;A game can consist of up to
65535 moves.&lt;/li&gt;
  &lt;li&gt;A move can contain up to 16K
of data that can contain any information you wish&lt;/li&gt;
  &lt;li&gt;At the moment, only 2 player
games are supported, future plans will increase that number&lt;/li&gt;
  &lt;li&gt;In order to make use of the
offline capabilities, the game engine must be written to be completely
deterministic.&amp;nbsp;&amp;nbsp; The configuration, creation options,
a random seed and a list of moves must be sufficient to allow the
current game state to be built.&amp;nbsp;&amp;nbsp; A random seed will
be generated by the server when a game is created, either use that with
the built-in random number generator (a simple Linear Congruential) or
use it to seed your own.&amp;nbsp;&amp;nbsp; When a player returns to a
given game, the moves will be returned in server order.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-weight: bold;"&gt;Definitions&lt;/span&gt;&lt;br&gt;
Anomaly -a special move type that is requested by a player other than
the current player.&amp;nbsp; Used to handle player drop-outs
mostly.&amp;nbsp;&amp;nbsp; Anomalies require a reason that the server
should accept them.&lt;br&gt;
Game - an interaction between different players with a state defined by
an initial state consisting of a configuration string, game options and
a generated seed and a series of moves.&lt;br&gt;
Lobby - a list of slots that contains current game
information.&amp;nbsp; This allows the player to be offline in several
games at once, if that is desired.&lt;br&gt;
Move - a change of state requested by a client.&amp;nbsp;&amp;nbsp;
Moves can contain arbitrary data, signal end of turn, end of game, or a
player's resignation.&amp;nbsp;&amp;nbsp; Moves can be generated by a
player if the current game state allows them to enter moves or you can
request the server enter a move using anomalies.&lt;br&gt;
Slot - represents a single potential or actual game to the lobby. &lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Type
of games &lt;/span&gt;&lt;br&gt;
The system can support several different types of multiplayer game&lt;br&gt;
1) &lt;span style="font-style: italic;"&gt;Sequential
turn&lt;/span&gt; - Example
Chess.&amp;nbsp;&amp;nbsp; In this version, only one player is making
moves at any given time and only one player is allowed to make moves at
any time.&amp;nbsp;&amp;nbsp; This is the easiest to program as the
order of moves is strictly determined.&lt;br&gt;
&lt;br&gt;
2) &lt;span style="font-style: italic;"&gt;Simultaneous
Turn - Gated&lt;/span&gt;.&amp;nbsp;&amp;nbsp;
Example Roshambo (rock-paper-scissors).&amp;nbsp;&amp;nbsp; In this
game mode, the players are allowed to make moves at the same time, when
all players have made moves the game state is
updated..&amp;nbsp;&amp;nbsp; This requires some work on the part of
the game logic so that move order does not affect the game state and no
one is allowed to make more moves than is valid.&amp;nbsp;&amp;nbsp;
For Battleship, each player is allowed to make all the moves in their
salvo.&amp;nbsp; The game logic does not allow the player to shoot more
times than allowed by salvo, and since the player shots are all
evaulated at once, there isn't a problem where turn order is a
difficultly.&lt;br&gt;
&lt;br&gt;
3) &lt;span style="font-style: italic;"&gt;Simultaneous
Turn - Interruptable.&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Example Magic: The Gathering.&amp;nbsp;&amp;nbsp;&amp;nbsp; In this
version, the players can actually affect each other's play.&amp;nbsp;
This is by far the hardest type to program, because interactions
between the player moves can be difficult to
reconcile.&amp;nbsp;&amp;nbsp; For instance, suppose a game allows you
to attack a piece in range.&amp;nbsp; You make that move, on your
client it appears you are attacking the piece.&amp;nbsp;&amp;nbsp;
Unfortunately, the other player is online and has moved out of
range.&amp;nbsp;&amp;nbsp; Thus on their machine, it does not register
as a strike.&amp;nbsp; To help avoid this, you can specify that a move
is given with delay.&amp;nbsp;&amp;nbsp; This move should not be
applied to the game state until the server echoes it back as a regular
move.&amp;nbsp; That way, it will be in the order sent to all the
clients.&amp;nbsp;&amp;nbsp; For the shot, when the player triggers the
shot, nothing happens until the server returns a message at which point
the logic can determine if there's a hit.&amp;nbsp; The other client
will have to display the shot attempt at the time of receipt, so there
will be a slight visual difference.&lt;br&gt;
&lt;br&gt;
It may be tempting to try to create a pseudo-realtime game using this
system, but that is not recommended.&amp;nbsp;&amp;nbsp; It's
recommended for things like in head-to-head games where achieving a
certain result causes an effect on the opponent (like clearing blocks
in Tetris hurting the opponent)&lt;br&gt;
&lt;br&gt;
4) &lt;span style="font-style: italic;"&gt;Free-for-all.&amp;nbsp;&lt;/span&gt;&amp;nbsp;
Example Super Puzzle Fighter.&amp;nbsp; The game state is not
completely controlled by the server.&amp;nbsp; In this game type, the
offline capabilities cannot be used.&amp;nbsp;&amp;nbsp; The game moves
instead are used to send snapshots of the current state back and
forth.&amp;nbsp;&amp;nbsp; There is no direct interaction between the
players, although sending a move can send a message that affects that
player's state.&amp;nbsp;&amp;nbsp; In this case, the victory goes to
the first player who claims it.&amp;nbsp; To do something like Super
Puzzle Fighter, when an attack is made, that move will trigger the
cascade when it is received.&amp;nbsp;&amp;nbsp; The system can also
send updates back and forth.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Samples&lt;/span&gt;&lt;br&gt;
The samples are shipped as folders with the specific classes for that
sample.&amp;nbsp; These must be added to a standard OpenFeint project
of at least version 2.4.7.&amp;nbsp;&amp;nbsp; The OpenFeintMultiplayer
folder should also exist at the top level.&amp;nbsp;&amp;nbsp; The
application Key and Secret can be found by registering at the regular
OpenFeint developer site.&amp;nbsp;&amp;nbsp;
http://www.openfeint.com/developers.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-style: italic;"&gt;Battleship&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
The Battleship GameManager can be used as an example of writing a
multiplayer engine.&amp;nbsp;&amp;nbsp; It can be considered a
Controller, with the internal GameGrid containing the
Model.&amp;nbsp;&amp;nbsp; The work of changing the user input into
moves is handled in the BattleShipGameViewController.&amp;nbsp; These
moves are send to the GameManager along with moves received from the
network.&amp;nbsp;&amp;nbsp; The manager handles the question of what
is a valid move in the current state and tests for game completion.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-style: italic;"&gt;MPSampleApp&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
This sample shows the use of several of the more advanced
systems.&amp;nbsp;&amp;nbsp; From a multiple slot lobby, you can enter
up to 6 games at once.&amp;nbsp; When a slot is selected, you can enter
that game, make some moves (press U,D,L,R).&amp;nbsp;&amp;nbsp; In
addition, this sample shows how to challenge a friend, allow rematches,
and handle push notifications.&amp;nbsp; Moves to the right are sent
using the move with delay.&amp;nbsp; Note that this is an older sample
and reflects an earlier version of the API, but it remains here to show
those particular features.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/74</link><pubDate>Tue, 06 Jul 2010 23:11:53 GMT</pubDate><guid isPermaLink="false">c7977eb0a7a6bc48bcc2d13b0df4a1bd</guid></item><item><title>OpenFeint 2.5 - Unlock an Achievement</title><description>OpenFeint 2.5 introduces new high level API&amp;rsquo;s to make it
easier for developers to take advantage of OpenFeint&amp;rsquo;s broad
array of features.&amp;nbsp; All of the old API&amp;rsquo;s are still
there too.&amp;nbsp; The new API&amp;rsquo;s just wrap them to simplify
the typical use cases.&lt;br&gt;
&lt;br&gt;
Let&amp;rsquo;s take a look at an example from the new OFAchievement
API where we unlock an achievement that the player has
earned.&amp;nbsp; This simple example introduces a pattern used
throughout the new high level API&amp;rsquo;s:&lt;br&gt;
&lt;ol&gt;
  &lt;li&gt;OpenFeint must be properly
integrated and initialized.&lt;/li&gt;
  &lt;li&gt;A delegate class must handle
OFAchievement callbacks.&lt;/li&gt;
  &lt;li&gt;Obtain a reference pointer
to the achievement to be unlocked.&lt;/li&gt;
  &lt;li&gt;Send the
&amp;ldquo;unlock&amp;rdquo; message to the achievement.&lt;/li&gt;
  &lt;li&gt;Check callbacks for a server
response.&lt;br&gt;
  &lt;/li&gt;
&lt;/ol&gt;
Unlocking an achievement is one of the simplest OpenFeint features to
add to a game.&amp;nbsp; It was not difficult to do with the old API
but with the new API it follows a pattern that, once learned, applies
to many different features.&amp;nbsp; In general, the new API stores
more contextual information in singletons managed through class methods
so that features require fewer parameters to use.&amp;nbsp; With fewer
parameters to think about and a common calling pattern there is less to
learn and remember when making use of more OpenFeint features in your
game.&lt;br&gt;
&lt;br&gt;
In step 1, we integrate and initialize OpenFeint.&amp;nbsp; This step
has not changed from the previous API and is still covered in the
&amp;ldquo;ReadMe.txt&amp;rdquo; file that comes with the SDK and the
&amp;ldquo;Getting Started&amp;rdquo; of our online developer support
center and knowledge-base.&lt;br&gt;
&lt;br&gt;
In step 2, we supply a delegate class to handle OFAchievement
callbacks.&amp;nbsp; We do this by adding the OFAchievementDelegate
protocol declared in OFAchievement.h to a class of our own and telling
the OFAchievement class when our delegate is ready to handle any of the
callbacks required in the protocol.&amp;nbsp; The following line
informs the OFAchiement class singleton that our delegate is ready to
be used:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
[OFAchievement setDelegate: instanceOfMyDelegateClass]&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
This same call with a nil parameter will tell the OFAchievement class
that the delegate will no longer be answering callbacks defined for the
OFAchievementDelegate protocol.&lt;br&gt;
&lt;br&gt;
In step 3 we obtain a reference pointer to the achievement to be
unlocked.&amp;nbsp; The only parameter required is an ID from the
developer dashboard to distinguish which achievement we are interested
in:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
OFAchievement *myAchievement = [OFAchievement
achievement:(NSString*)achievementId];&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
In step 4, we send the &amp;ldquo;unlock&amp;rdquo; message to the
achievement.&amp;nbsp; Note that the return value supplies a request
handle that is only needed if you might want to cancel a server request
before it has completed:&lt;br&gt;
&lt;br&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;
&amp;nbsp;OFRequestHandle *myRequestHandle = [myAchievement unlock];&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
In step 5, the callback methods of the currently assigned delegate will
be called to provide an asynchronous response to a server
request.&amp;nbsp; Use these to handle the success or failure of the
request as suits your application.&lt;br&gt;
&lt;br&gt;
And there you have it; everything needed to unlock an achievement using
the new OpenFeint API.&amp;nbsp; Note that the OFAchievement.h header
file documents the all the features of the API module relating to
achievements.&amp;nbsp; It lives in a new &amp;ldquo;include&amp;rdquo;
directory that contains all the other header files describing the
features of all the modules of the new API.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/73</link><pubDate>Tue, 06 Jul 2010 23:11:07 GMT</pubDate><guid isPermaLink="false">ef9125dd16aa11dae8897da282655575</guid></item><item><title>Free to Paid App Promotion With OpenFeint</title><description>&lt;div&gt;
  As discussed in a &lt;a href=http://www.openfeint.com/ofdeveloper/index.php/kb/article/000052 id=bq6s title="previous article"&gt;previous article&lt;/a&gt;,
  there are a variety of techniques for promoting up-sell from free to paid apps. &amp;nbsp;
  This article focuses on one of the most common techniques in which the developer separately lists both free and paid versions of their app in the app store. &amp;nbsp;
&lt;/div&gt;

&lt;br&gt;

&lt;div&gt;
  As far as OpenFeint's servers are concerned your app is distinguished by its OpenFeint product key and app version number. &amp;nbsp;
  Ordinarily, each separate app will have it's own product identity in the OpenFeint developer dashboard which is associated with one product key. &amp;nbsp;
  In the case of a free app created to showcase a subset of features in a corresponding paid version, it is often desirable to use the same OpenFeint
  product key in both the free and paid versions of the app. &amp;nbsp;One benefit of sharing a product key in this way is that users of both versions can
  see the same set of leaderboards even though the code in the free version may restrict the user to only be able to play and submit high scores for
  one trial level leaderboard.
&lt;/div&gt;

&lt;br&gt;

&lt;div&gt;
  One limitation of sharing one product key in both the free and paid versions of your app is that there is only one product identity associated with
  that product key as defined in the OpenFeint developer dashboard. &amp;nbsp;To get around this limitation, we recommend:
  &lt;br&gt;
  &lt;ol&gt;
  	&lt;li&gt;
  	Developers create a product identity for each version of the app in the OpenFeint developer dashboard
  	even though both apps only use the product key associated with the paid version.
  	&lt;/li&gt;
  	&lt;li&gt;
  	The product key and all of the developer dashboard pages associated with the free app are ignored except
  	for the app name, the version code, and the iPurchase page.
  	&lt;/li&gt;
  	&lt;li&gt;
  	In the dashboard pages for both the free and paid apps, the bundle identifier should be set to "1" instead of the actual bundle ID. &amp;nbsp;
  	This will cause OpenFeint to ignore the bundle ID.
  	&lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;

&lt;br&gt;

&lt;hr&gt;
&lt;img src="http://www.openfeint.com/developers/support/images/Hc-AppName.png"/&gt;
&lt;hr&gt;
&lt;img src="http://www.openfeint.com/developers/support/images/Hc-Versions.png"/&gt;
&lt;hr&gt;
&lt;img src="http://www.openfeint.com/developers/support/images/Hc-iPurchase.png"/&gt;</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/71</link><pubDate>Tue, 01 Jun 2010 22:23:34 GMT</pubDate><guid isPermaLink="false">442a932777e3a0a5c19a7957e4b272c2</guid></item><item><title>OpenFeint Developer FAQ</title><description> &lt;b&gt;Q:
How much does it cost to use OpenFeint?&lt;/b&gt;&lt;br&gt;
A: All of OpenFeint&amp;rsquo;s core features, Leaderboards,
Achievements, Challenges, and Social Notifications, are free to use.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: Where can I read the
OpenFeint License Agreement?&lt;/b&gt;&lt;br&gt;
A: The license agreement appears when you submit a game for approval
and is also available in the help center &lt;a href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000070"&gt;here&lt;/a&gt;.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: When should I submit my game
for OpenFeint approval?&amp;nbsp; How
long does it take?&lt;/b&gt;&lt;br&gt;
A: As soon as you are ready to submit your game for Apple approval or
have completed OpenFeint integration.&amp;nbsp; Approvals generally
take 2-3 days.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: Where can I download art
assets?&lt;/b&gt;&lt;br&gt;
A: OpenFeint icons and art assets are located within the Developer
Dashboard under &amp;ldquo;OF Icon&amp;rdquo; along the left hand
navigation.&amp;nbsp; Scroll to the bottom of the page to download the
.zip file.&amp;nbsp; Also be sure to check out our branding guidelines.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: Is it possible to access the
leaderboards and display them on our
web site?&lt;/b&gt;&lt;br&gt;
A: Leaderboards are not accessible via the web right now. We are in the
process of planning how we're going to expose our APIs for use via
other web pages.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: How do I change the name of my company in the developer dashboard?&lt;/b&gt;&lt;br&gt;
A: We're adding this into an update of the developer dashboard, but in the meantime email us at devsupport@openfeint.com and we can take care of it for you.&lt;/br&gt;
&amp;nbsp;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Integration Questions:&lt;/b&gt;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: Is there a forum where I
can discuss integration issues?&lt;/b&gt;&lt;br&gt;
A: YES!&amp;nbsp; Please visit the &lt;a
 href="http://openfeint.com/developers/forum/"&gt;OpenFeint
Developer Forum&lt;/a&gt;.&amp;nbsp;
Note that for the fastest response, it&amp;rsquo;s best to contact us
via the form located at the top of this page.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: Can I have my free game
and paid game share a leaderboard?&lt;/b&gt;&lt;br&gt;
A: Yes, you can.&amp;nbsp; Check out this article: &lt;a
 href="http://openfeint.com/ofdeveloper/index.php/kb/article/000052"&gt;Using
OpenFeint to
upsell from free to paid&lt;/a&gt;.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: I&amp;rsquo;m having trouble
decompressing the Unity support package.&lt;/b&gt;&lt;br&gt;
A: We&amp;rsquo;re aware of an issue with developers still using the
Leopard OS.&amp;nbsp; Download a Leopard-friendly version of the
package &lt;a
 href="http://openfeint.com/UnitySupport-RecompressedForCompatibility.zip"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q: How do I get notifications
to come from the top of the screen?&lt;/b&gt;&lt;br&gt;
A: Set OpenFeintSettingInvertNotifications to true when initializing
OpenFeint to show notifications from top. &lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: I&amp;rsquo;m running into a
lot of build errors.&amp;nbsp;
What&amp;rsquo;s wrong?&lt;/b&gt;&lt;br&gt;
A: Check out the &lt;a
 href="http://www.openfeint.com/ofdeveloper/index.php/kb/article/000069"&gt;Build
Error FAQ&lt;/a&gt; for some possible
solutions to common
build errors.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: Is there an API call I can
use to tell if the user has opted-in or
out from using OpenFeint?&lt;/b&gt;&lt;br&gt;
A: [OpenFeint hasUserApprovedFeint]&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q: Is there a notification for when the OpenFeint dashboard closes so
that I know when to stop running animations and when to start?&lt;/b&gt;&lt;br&gt;
A: You'll want to have a look in OpenFeintDelegate.h. When you
initialize OpenFeint you should be providing a delegate which adopts
this protocol.&lt;br&gt;
You should stop the animations in this delegate method:&lt;br&gt;
(void)dashboardWillAppear;&lt;br&gt;
for cocoa games you should resume then in:&lt;br&gt;
and for OpenGL games you should resume them in:&lt;br&gt;
(void)dashboardDidDisappear;&lt;br&gt;
You are free to create your own notification and post it within these
delegate methods if you need to get these events passed along to other
objects.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: What happens to a high score
when a player is offline?&lt;/b&gt;&lt;br&gt;
A: As of OpenFeint 2.1 high scores are queued for submission when the
player is offline and submitted when next he's online again.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q: Does OpenFeint use
encryption?&lt;/b&gt;&lt;br&gt;
A: OpenFeint uses HTTPS for all communication between the client and
our servers.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Promotions:&lt;/b&gt;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: I&amp;rsquo;m approved and
my game is available in the App Store,
why isn&amp;rsquo;t it showing up in the game catalog?&lt;/b&gt;&lt;br&gt;
A: The OpenFeint game catalog usually updates within 3 days.&amp;nbsp;
If it&amp;rsquo;s been longer than 7 please contact us so that we can
investigate.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;b&gt;Q: What is the criteria for
becoming an OpenFeint Gold Game?&amp;nbsp;
How can I apply?&lt;/b&gt;&lt;br&gt;
A:&amp;nbsp; OpenFeint Gold requirements are outlined in &lt;a
 href="http://openfeint.com/ofdeveloper/index.php/kb/article/000058"&gt;this
support
article&lt;/a&gt;.&amp;nbsp; To apply for
Gold, or any of our other promotional
opportunities, please check out the OpenFeint Gold section of the
developer dashboard.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q: How do I apply for Free Game
Of The Day?&lt;/b&gt;&lt;br&gt;
A:&amp;nbsp; Apply for Free Game Of The Day here:&amp;nbsp; &lt;a
 href="http://www.freegameoftheday.com/faq"&gt;Free Game
Of The Day FAQ&lt;/a&gt;
&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/23</link><pubDate>Fri, 28 May 2010 23:35:25 GMT</pubDate><guid isPermaLink="false">aac4abbf55240d60de3d196e2d3259de</guid></item><item><title>OpenFeint Developer License Agreement</title><description>Aurora Feint, Inc.&lt;br&gt;
Developer License Agreement&lt;br&gt;
&lt;br&gt;
IMPORTANT &amp;ndash; PLEASE READ THE TERMS OF THIS DEVELOPER LICENSE
AGREEMENT (THIS &amp;ldquo;AGREEMENT&amp;rdquo;) CAREFULLY. BY CLICKING
ON THE &amp;ldquo;I AGREE&amp;rdquo; BUTTON, (1) YOU ACKNOWLEDGE THAT
YOU HAVE READ, UNDERSTAND, AND AGREE TO BE BOUND BY THIS AGREEMENT, (2)
YOU REPRESENT THAT YOU HAVE THE AUTHORITY TO ENTER INTO THIS AGREEMENT,
PERSONALLY OR ON BEHALF OF THE COMPANY YOU HAVE NAMED AS THE DEVELOPER
(THE &amp;ldquo;DEVELOPER&amp;rdquo;), AND TO BIND THE DEVELOPER TO THE
TERMS OF THIS AGREEMENT, AND (3) YOU REPRESENT THAT YOU ARE NOT A
COMPETITOR OF AURORA FEINT. IF YOU DO NOT AGREE TO ALL THE TERMS AND
CONDITIONS OF THIS AGREEMENT, OR IF YOU DO NOT HAVE SUCH AUTHORITY, OR
IF YOU ARE A COMPETITOR OF AURORA FEINT, YOU SHOULD CLICK ON THE
&amp;ldquo;CANCEL&amp;rdquo; BUTTON TO DISCONTINUE THE DOWNLOAD OF THE
SOFTWARE.&lt;br&gt;
&lt;br&gt;
This Agreement is a legal agreement between Developer and Aurora Feint,
Inc. (&amp;ldquo;Aurora Feint&amp;rdquo;) for the accompanying Aurora
Feint software (the &amp;ldquo;Software&amp;rdquo;) and associated
&amp;ldquo;online&amp;rdquo; or electronic documentation (the
&amp;ldquo;Documentation&amp;rdquo;).&lt;br&gt;
1.&lt;br&gt;
Licenses&lt;br&gt;
1.1&lt;br&gt;
Development License. Subject to the terms and conditions of this
Agreement, Aurora Feint grants to Developer a nonexclusive, worldwide,
nontransferable (except in accordance with Section 15), royalty-free,
fully paid, revocable (in accordance with Section 12),
nonsublicenseable license to permit those employees or consultants of
Developer authorized by Developer (&amp;ldquo;Authorized
Users&amp;rdquo;) to internally (a) use, perform, display, reproduce,
modify, and create derivative works of, the sample source code included
in the Software for the sole purpose of creating executable object code
for incorporation in Developer Products to permit such Developer
Products to run on the OpenFeint Platform (as defined herein) in
compliance with the Platform Requirements (as defined in Section 6);
(b) compile such sample source code or derivatives thereof into
executable object code for incorporation in Developer Products to
permit such Developer Products to run on the OpenFeint Platform in
compliance with the Platform Requirements; and (c) reproduce and use, a
reasonable number of copies of, the Documentation in support of the
exercise of the licenses granted in clauses (a) and (b) herein.
&amp;ldquo;Developer Products&amp;rdquo; means software applications
developed by or on behalf of Developer and branded with Developer
brands, logos, trade marks, and/or trade name. &amp;ldquo;OpenFeint
Platform&amp;rdquo; means Aurora Feint&amp;rsquo;s OpenFeint software
platform provided on a hosted basis by or on behalf of Aurora Feint, as
such platform may be modified or enhanced from time to time by Aurora
Feint.&lt;br&gt;
1.2&lt;br&gt;
Distribution License. Subject to the terms and conditions of this
Agreement, Aurora Feint grants to Developer a nonexclusive, worldwide,
nontransferable (except in accordance with Section 15), royalty-free,
fully paid, revocable (in accordance with Section 12), license to
reproduce and distribute (solely in accordance with Section 4) the
sample source code included in the Software or derivatives thereof
solely as compiled into executable object code incorporated in
Developer Products that (a) comply with the Platform Requirements, (b)
are approved by Aurora Feint to run on the OpenFeint Platform as
described in Section 7, and (c) comply with the branding requirements
specified in Section 3.&lt;br&gt;
2. Restrictions. Developer acknowledges that the Software (including,
all sample source code) and Documentation and all elements thereof, and
their structure and organization, constitute Aurora Feint&amp;rsquo;s
confidential information. Accordingly, Developer agrees to, and
Developer shall cause each Authorized User to agree in an enforceable
writing to, treat all such Software and Documentation as confidential
material in a manner no less protective than Developer uses to protect
its own similar assets, but in no event less than reasonable care.
Except as expressly permitted in this Agreement, if at all, Developer
shall not, and Developer shall cause each Authorized User not to, (a)
license, sell, rent, lease, transfer, assign, distribute, display,
host, outsource, disclose or otherwise commercially exploit or make the
Software or Documentation available to any third party; (b) modify,
make derivative works of, disassemble, reverse compile or reverse
engineer any part of the Software; (c) access the Software in order to
build a similar or competitive product or service; or (d) reproduce,
distribute, republish, download, display, post, or transmit, in any
form or by any means, including electronic, mechanical, photocopying,
recording, or other means any part of the Documentation. Any future
release, update, or other addition to the functionality of the
Software, if any, provided by Aurora Feint shall be subject to the
terms of this Agreement. Neither Aurora Feint nor any of its suppliers
is obligated to provide any services, updates or upgrades to the
Software. Developer shall, and Developer shall cause each Authorized
User to, preserve all copyright and other proprietary rights notices in
the Software and Documentation and all copies of the Software and
Documentation.&lt;br&gt;
3. Branding. Developer will brand Developer Products with its own
brands, logos, trade marks, and/or trade name; provided, however, that
Developer shall include the Aurora Feint Marks (as defined herein) on
or within the Developer Product in accordance with the OpenFeint
Branding Guidelines (as defined herein) and the other provisions of
this Section. Subject to the terms and conditions of this Agreement,
Aurora Feint grants to Developer a non-exclusive, worldwide,
nontransferable (except as permitted under Section 15), revocable (in
accordance with Section 12), royalty-free and fully-paid,
non-sublicenseable license to use and reproduce the Aurora Feint Marks
in accordance with the OpenFeint Branding Guidelines and solely in
connection with marketing the OpenFeint Platform and distributing the
Software as incorporated in the Developer Product. Developer agrees to
state in appropriate places on all materials using the Aurora Feint
Marks that the Aurora Feint Marks are trademarks of Aurora Feint and to
include the symbol &amp;trade; or &amp;reg; as appropriate. Aurora
Feint grants no rights in the Aurora Feint Marks other than those
expressly granted in this Section 3. Developer acknowledges Aurora
Feint&amp;rsquo;s exclusive ownership of the Aurora Feint Marks.
Developer agrees not to take any action inconsistent with such
ownership and to cooperate, at Aurora Feint&amp;rsquo;s request and
expense, in any action (including the conduct of legal proceedings)
which Aurora Feint deems necessary or desirable to establish or
preserve Aurora Feint&amp;rsquo;s exclusive rights in and to the Aurora
Feint Marks. Developer will not adopt, use, or attempt to register any
trademarks or trade names that are confusingly similar to the Aurora
Feint Marks or in such a way as to create combination marks with the
Aurora Feint Marks. Developer will provide Aurora Feint with samples of
all products and materials that contain the Aurora Feint Marks prior to
their public use, distribution, or display for Aurora Feint&amp;rsquo;s
quality assurance purposes and will obtain Aurora Feint&amp;rsquo;s
written approval before such use, distribution, or display. At Aurora
Feint&amp;rsquo;s request, Developer will modify or discontinue any use
of the Aurora Feint Marks. &amp;ldquo;Aurora Feint Marks&amp;rdquo;
means the Aurora Feint brands, logos, trade marks, and/or trade name
listed in the OpenFeint Branding Guidelines, as such brands, logos,
trade marks, and/or trade name may be updated from time to time by
Aurora Feint by updating such list in the OpenFeint Branding
Guidelines. The &amp;ldquo;OpenFeint Branding Guidelines&amp;rdquo;
means Aurora Feint&amp;rsquo;s then-current trademark guidelines for
products using the OpenFeint Platform as such guidelines may be amended
by Aurora Feint from time to time and posted at
www.openfeint.com/developers/support/index.php/kb/article/000032.&lt;br&gt;
4. Distribution. Before distributing any Developer Product that
incorporates any Software to any subdistributor or end user, Developer
must require the subdistributor or end user, as applicable, to agree in
an enforceable writing that: (a) title to and ownership of the Software
remains with Aurora Feint, (b) it shall not alter or modify the
Software, (d) it/he/she shall not reverse engineer, decompile,
disassemble, or attempt to derive the source code of the Software, (c)
it/he/she shall reproduce all copyright and other proprietary rights
notices on any copies of the Software made by it/him/her, (d) it/he/she
shall comply with all applicable laws, including export and re-export
laws, with respect to the Software, (e) all express and implied
warranties regarding the Software are disclaimed by Aurora Feint, and
(f) all direct, consequential, special, and indirect damages arising
from or related to the Software are disclaimed by Aurora Feint.
Developer will enforce each such agreement with at least the same
degree of diligence that Developer uses to enforce similar agreements
for its own products, but in no event less than reasonable efforts.
Developer will immediately notify Aurora Feint if Developer becomes
aware of any material breach of any such agreement relating to the
Software.&lt;br&gt;
5. Ownership. All right, title, and interest, including all
intellectual property rights, in and to the Software, Documentation,
including any and all copies of the Software and Documentation, and the
OpenFeint Platform (collectively, &amp;ldquo;Aurora Feint
Property&amp;rdquo;) shall be owned and retained by Aurora Feint and
its licensors. Developer acknowledges that it acquires no ownership
interest in any Aurora Feint Property. All right, title, and interest,
including all intellectual property rights, in and to the Developer
Products (excluding any Aurora Feint Property incorporated therein)
(the &amp;ldquo;Developer Property&amp;rdquo;) shall be owned and
retained by Developer and its licensors. Aurora Feint acknowledges that
it acquires no ownership interest in any Developer Property. Any rights
not expressly granted in this Agreement are reserved by the parties.
There are no implied licenses in this Agreement.&lt;br&gt;
6. Platform Requirements. Any Developer Product that incorporates any
Software must comply with Apple, Inc.&amp;rsquo;s content standards
located at http://developer.apple.com. In addition, Developer
represents, warrants, and covenants that:&lt;br&gt;
(a)&lt;br&gt;
Developer Product shall not access or use the OpenFeint Platform except
in the manner prescribed by Aurora Feint;&lt;br&gt;
(b)&lt;br&gt;
Developer Product shall not use any robot, spider, site search, or
other retrieval application or device to scrape, retrieve, or index
services provided by Aurora Feint or its licensors, or to collect
information about users for any unauthorized purpose;&lt;br&gt;
(c)&lt;br&gt;
Developer Product shall not disable, override, or otherwise interfere
with any Aurora Feint implemented system alerts, warnings, display
panels, consent panels and the like intended to notify the user that
the user's location data is being collected, transmitted, maintained,
processed, or used, or intended to obtain consent for such use;&lt;br&gt;
(d)&lt;br&gt;
Developer Product shall not contain any viruses, Trojan horses, worms,
time bombs, cancelbots, easter eggs or other computer programming
routines that may damage, detrimentally interfere with, surreptitiously
intercept or expropriate any system, network, services, data, or
personal information;&lt;br&gt;
(e)&lt;br&gt;
Developer shall ensure that any open source software used in the
development of the Developer Product does not subject any portion of
the Software or OpenFeint Platform proprietary to Aurora Feint to
become subject to any open source obligation or condition.&lt;br&gt;
(f)&lt;br&gt;
Developer Product shall not infringe any third party's copyright,
patent, trademark, trade secret or other proprietary rights or rights
of publicity or privacy;&lt;br&gt;
(g)&lt;br&gt;
Developer Product shall not violate any law, statute, ordinance or
regulation (including those governing export control, consumer
protection, unfair competition, antidiscrimination or false
advertising);&lt;br&gt;
(h)&lt;br&gt;
Developer Product shall not contain content that is defamatory, trade
libelous, unlawfully threatening or unlawfully harassing;&lt;br&gt;
(i)&lt;br&gt;
Developer Product shall not contain obscene content or child
pornography;&lt;br&gt;
(j)&lt;br&gt;
Developer Product shall not collect or attempt to collect personally
identifiable information of any person, except with their prior written
consent and of which consent Developer shall maintain a written record
for a period of three (3) years after any termination of this Agreement;&lt;br&gt;
(k)&lt;br&gt;
Developer Product shall not be harmful or potentially harmful to the
OpenFeint Platform or the systems and server structure, security
mechanisms, services used by Aurora Feint to provide and support the
OpenFeint Platform as determined in Aurora Feint&amp;rsquo;s sole
discretion; and&lt;br&gt;
(l)&lt;br&gt;
Developer Product shall not create liability for Aurora Feint. The
requirements specified in this Section, as such requirements may be
modified by Aurora Feint from time to time by posting the revised
requirements on the OpenFeint website located at
www.openfeint.com/developers (&amp;ldquo;OpenFeint Website&amp;rdquo;),
are referred to as the &amp;ldquo;Platform Requirements.&amp;rdquo;
Developer agrees to indemnify and hold Aurora Feint and its affiliates,
officers, employees, agents, suppliers, and OpenFeint Platform users,
harmless from and against any and all claims, suits, actions, losses,
costs (including attorneys&amp;rsquo; fees), liabilities, damages, and
expenses arising from or relating to any claim or demand made by any
third party arising out of or related to Developer&amp;rsquo;s
violation of the Platform Requirements.&lt;br&gt;
7.&lt;br&gt;
Approval. Before distributing any Developer Product that incorporates
any Software, Developer shall submit such Developer Product (including
its config file) to Aurora Feint for testing and evaluation purposes.
With the assistance and cooperation of Developer, Aurora Feint will use
reasonable commercial efforts to test and evaluate the Developer
Product for compatibility with the OpenFeint Platform and for
compliance with the other requirements of this Agreement. Aurora Feint
may accept or reject the Developer Product in its sole discretion. If
Aurora Feint rejects the Developer Product, it may provide Developer
with details of any problems or issues found in the Developer Product
whereupon Developer may correct those problems and issues and resubmit
the Developer Product for further evaluation by Aurora Feint in
accordance with this Section. If Developer does not receive any written
notice of approval or rejection of the Developer Product within thirty
(30) days following Developer&amp;rsquo;s submission thereof, Aurora
Feint will be deemed to have rejected the Developer Product. Developer
shall not distribute any Developer Product that has not been approved
in writing by Aurora Feint. Aurora Feint&amp;rsquo;s approval of any
Developer Product under this Section shall not constitute a waiver of
any of Aurora Feint&amp;rsquo;s rights or Developer&amp;rsquo;s
obligations under this Agreement and Developer shall remain responsible
and liable for any breach of the other Sections of this Agreement,
including the Platform Requirements, notwithstanding any approval by
Aurora Feint of the applicable Developer Product. Developer hereby
grants us a worldwide, non-exclusive, transferable, sublicenseable,
fully paid and royalty-free license, under Developer&amp;rsquo;s
intellectual property rights in and to the Developer Product, to
execute and use the Developer Product for the purposes of testing and
evaluating the Developer Product.&lt;br&gt;
8.&lt;br&gt;
Feedback. Any and all suggestions, ideas, recommendations, and feedback
provided to Aurora Feint by Developer regarding the functioning,
features, and other characteristics of the Software, Documentation, or
OpenFeint Platform (collectively, &amp;ldquo;Feedback&amp;rdquo;) is
hereby licensed by Developer to Aurora Feint on a worldwide, perpetual,
irrevocable, non-exclusive, transferable, sublicenseable, fully-paid
and royalty-free basis, for Aurora Feint to use and exploit the
Feedback in any manner and for any purpose.&lt;br&gt;
9.&lt;br&gt;
DISCLAIMER OF WARRANTIES. THE SOFTWARE, DOCUMENTATION, AND OPENFEINT
PLATFORM ARE PROVIDED ON AN &amp;ldquo;AS-IS&amp;rdquo; BASIS. AURORA
FEINT PROVIDES NO TECHNICAL SUPPORT, WARRANTIES, OR REMEDIES FOR THE
SOFTWARE OR OPENFEINT PLATFORM. AURORA FEINT AND ITS SUPPLIERS DISCLAIM
ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES RELATING TO THE SOFTWARE,
DOCUMENTATION, AND OPENFEINT PLATFORM INCLUDING MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. AURORA
FEINT DOES NOT WARRANT THAT USE OF THE SOFTWARE OR OPENFEINT PLATFORM
WILL BE UNINTERRUPTED OR ERROR-FREE, THAT DEFECTS WILL BE CORRECTED, OR
THAT THE SOFTWARE OR OPENFEINT PLATFORM IS FREE OF VIRUSES OR OTHER
HARMFUL COMPONENTS. IF APPLICABLE LAW REQUIRES ANY WARRANTIES WITH
RESPECT TO THE SOFTWARE, ALL SUCH WARRANTIES ARE LIMITED IN DURATION TO
NINETY (90) DAYS FROM THE DATE OF DOWNLOAD.&lt;br&gt;
10.&lt;br&gt;
LIMITATION OF LIABILITY. NEITHER AURORA FEINT NOR ITS SUPPLIERS SHALL
BE RESPONSIBLE OR LIABLE WITH RESPECT TO THIS AGREEMENT, OR THE
SOFTWARE, DOCUMENTATION, OR OPENFEINT PLATFORM UNDER ANY CONTRACT,
NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY
OF DATA OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES, OR
TECHNOLOGY, OR (B) FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL,
SPECIAL, OR EXEMPLARY DAMAGES INCLUDING, LOSS OF REVENUES AND LOSS OF
PROFITS. AURORA FEINT&amp;rsquo;S AGGREGATE CUMULATIVE LIABILITY
HEREUNDER SHALL NOT EXCEED THE GREATER OF FIFTY U.S. DOLLARS (50.00
USD) OR THE AMOUNT PAID BY DEVELOPER FOR THE SOFTWARE THAT CAUSED SUCH
DAMAGE. CERTAIN STATES AND/OR JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OF IMPLIED WARRANTIES OR LIMITATION OF LIABILITY FOR INCIDENTAL OR
CONSEQUENTIAL DAMAGES, SO THE EXCLUSIONS SET FORTH ABOVE MAY NOT APPLY
TO DEVELOPER.&lt;br&gt;
11.&lt;br&gt;
Basis of Bargain. The warranty disclaimer and limitation of liability
set forth above are fundamental elements of the basis of the agreement
between Aurora Feint and Developer. Aurora Feint would not be able to
provide the Software or OpenFeint Platform on an economic basis without
such limitations. The warranty disclaimer and limitation of liability
inure to the benefit of Aurora Feint&amp;rsquo;s suppliers.&lt;br&gt;
12.&lt;br&gt;
Term and Termination. This Agreement and the licenses granted hereunder
are effective on the date Developer accepts the terms of this Agreement
and shall continue unless this Agreement is terminated by either party
pursuant to this Section. Aurora Feint may terminate this Agreement
immediately upon written notice to Developer in the event that
Developer materially breaches any of the terms hereof. Developer may
terminate this Agreement at any time upon written notice to Aurora
Feint, with or without cause. Developer may terminate this Agreement by
sending either an email to contact@openfeint.com with
Developer&amp;rsquo;s name and the subject &amp;ldquo;TERMINATION OF
DEVELOPER LICENSE&amp;rdquo; or a letter by United States mail to:
Aurora Feint, Inc., License Administration, 330 Primrose Road, Suite
515, Burlingame, CA 94010 or to such other address as Aurora Feint may
specify in writing by posting the new address on the Aurora Feint
website. Upon any termination, the licenses granted hereunder shall
immediately terminate and Developer shall immediately destroy any
copies of the Software in its possession and shall cease, and shall
cause its subdistributors to cease, distribution of any Developer
Products that incorporate any portion of the Software. However, any
sublicenses granted to end users by Developer for any Developer
Products distributed in accordance with this Agreement shall survive in
accordance with their terms. The following terms shall survive any
termination of this Agreement: Sections 2 (Restrictions), 5
(Ownership), 6 (Platform Requirements), 8 (Feedback), 9 (Disclaimer),
10 (Limitation of Liability), 11 (Basis of Bargain), 12 (Term and
Termination), 14 (Export), and 16 (Miscellaneous).&lt;br&gt;
13.&lt;br&gt;
Modifications. Aurora Feint reserves the right to change the terms and
conditions of this Agreement or its policies relating to the Software
and/or Documentation. If we make any material change to this Agreement,
we will notify Developer by prominently posting notice of the change on
the OpenFeint Website or sending Developer an e-mail to the address
that Developer provided us. Developer&amp;rsquo;s continued use or
distribution of the Software or Documentation after notice of any such
change has been provided in accordance with this Section shall
constitute Developer&amp;rsquo;s consent to such change. Aurora Feint
reserves the right to change, modify, and otherwise convert the
technology (including the Software) used to provide the OpenFeint
Platform; provided that the basic functionality in any given version of
the Software itself will not be changed for at least six (6) months
following the general release of that version of the Software.&lt;br&gt;
14.&lt;br&gt;
Export. The Software and related technology are subject to U.S. export
control laws and may be subject to export or import regulations in
other countries. Developer agrees to strictly comply with all such laws
and regulations and acknowledges that it has the responsibility to
obtain authorization to export, re-export, or import the Software and
related technology, as may be required. Developer will indemnify and
hold Aurora Feint and its affiliates, officers, employees, agents, and
suppliers harmless from any and all claims, suits, actions, losses,
costs (including attorneys&amp;rsquo; fees), liabilities, damages,
expenses, fines, and penalties arising from or relating to any breach
by Developer of its obligations under this Section.&lt;br&gt;
15.&lt;br&gt;
Assignment. Neither any right nor any obligation arising under this
Agreement is assignable by Developer without Aurora Feint&amp;rsquo;s
prior written consent, and any attempted assignment or transfer by
Developer in violation of the foregoing shall be void and without
effect. A change of control of Developer is deemed to be an
&amp;ldquo;assignment&amp;rdquo; for the purposes of this Section.
Aurora Feint may assign this Agreement without restriction.&lt;br&gt;
16.&lt;br&gt;
Miscellaneous. This Agreement shall be governed by and construed in
accordance with the laws of the State of California and the United
States without regard to any conflict of laws principles therein that
would require application of the laws of another State or country. Any
action under or relating to this Agreement shall be brought solely in
the state and federal courts located in California, with sole venue in
the courts located in Santa Clara County and each party hereby submits
to the personal jurisdiction of such courts, except that Aurora Feint
may seek relief in any court of competent jurisdiction to protect or
enforce its intellectual property and proprietary rights. The United
Nations Convention on Contracts for the International Sale of Goods
shall not apply to this Agreement. In the event that any provision of
this Agreement is found to be contrary to law, then such provision
shall be construed as nearly as possible to reflect the intention of
the parties, with the other provisions remaining in full force and
effect. Any notice to Developer may be provided by email. This
Agreement constitutes the entire agreement between the parties
pertaining to the subject matter hereof, and any and all written or
oral agreements previously existing between the parties are expressly
canceled. Except as otherwise provided in Sections 3 (Branding), 6
(Platform Requirements), and 13 (Modifications), any modifications of
this Agreement must be in writing and agreed to by both parties. As
used in this Agreement, the word &amp;ldquo;including&amp;rdquo; means
&amp;ldquo;including but not limited to.&amp;rdquo; Notwithstanding
anything to the contrary in this Agreement, if Developer has executed a
print version/signed agreement with Aurora Feint regarding the Software
or Documentation, that print version/ signed agreement will control.&lt;br&gt;
&lt;br&gt;
QUESTIONS OR ADDITIONAL INFORMATION. If Developer has any questions
regarding this Agreement, or wish to obtain additional information,
please send an e-mail to contact@openfeint.com.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/70</link><pubDate>Fri, 28 May 2010 23:27:55 GMT</pubDate><guid isPermaLink="false">9deae5335099ae7da854ac11d2681a58</guid></item><item><title>Build Error FAQ</title><description>&lt;b&gt;Q-001:&amp;nbsp; I want to see a
working OpenFeint sample app and experiment with it's features ASAP.&lt;/b&gt;&lt;br&gt;
A-001:&amp;nbsp; 5 Steps:&lt;br&gt;
Log In to the OpenFeint Developer Dashboard at api.openfeint.com.&lt;br&gt;
Create a new app identity (green plus sign in upper left) or select an
existing one and locate it's product key (first tab in developer
dashboard).&lt;br&gt;
Download the SDK and open the enclosed sample app in XCode.&lt;br&gt;
Locate the call to "initializeWithProductKey" and paste in a product
key and secret from the developer dashboard.&lt;br&gt;
Build and run the app to experiment with OpenFeint features and trace
through working code.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q-002: I'd like to dive in and add OpenFeint to my own app ASAP. I am
an experienced iPhone developer who does not need a lot of hand holding.&lt;/b&gt;&lt;br&gt;
A-002: The integration steps listed in the Readme.txt file of the
OpenFeint SDK give the essentials without sugar coating.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q-003: Why is everything going haywire since I upgraded to the latest
beta version of the iPhone SDK?&lt;/b&gt;&lt;br&gt;
A-003: OpenFeint only supports release versions of Apple's SDKs and
tools.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q-004: Why is everything going haywire since I upgraded my app from one
version of OpenFeint to another?&lt;/b&gt;&lt;br&gt;
A-004: XCode's file dependency relationships can get messed up when you
switch source files for an existing project. It is often necessary to
delete the existing app from the device or simulator in addition to
performing a "clean build" to correct these problems. [Resource data
sitting in a previously created app bundle dependent on xib files is
particularly susceptible to getting their dependencies out of sync when
their source files are updated but have a time stamp older than the
last created binaries. Updating an SDK can easily trigger this
situation.]&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q-005: My build process failed with OpenFeint and reported undefined
symbols.&lt;/b&gt;&lt;br&gt;
A-005:&amp;nbsp; Here are some typical cases:&lt;br&gt;
Some required framework is missing.&lt;br&gt;
For example, "_uncompress" indicates zlib may be missing.&lt;br&gt;
Something beginning with "OF" is missing&lt;br&gt;
Revisit the Readme.txt step for including the precompiled header file
"OpenFeintPrefix.pch".&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q-006: There are hundreds of compiler errors and I don't know where to
begin.&lt;/b&gt;&lt;br&gt;
A-006: Revisit the Readme.txt step for configuring build settings. One
error here may look like hundreds of errors during build. It is also
possible that your build dependencies are messed up and should be
cleared as described in A-004.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q-007: I've got a bunch of build errors of the form "ISO C++ forbids
declaration of 'identifier' with no type" where 'identifier' is
substituted with some other name.&lt;/b&gt;&lt;br&gt;
A-007: This is one common symptom of messed up build dependencies and
should be cleared as described in A-004.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Q-008: I am trying to build for iPhone OS 2.2.1 to maximize the number
of devices my app supports.&amp;nbsp; Unfortunately, the MapKit
framework cannot be found.&lt;/b&gt;&lt;br&gt;
A-008: We recommend that you set the deployment target in your build
settings as far back as iPhone OS 2.2.1 if you want to reach a large
installed based with your app.&amp;nbsp; However, the MapKit framework
was not introduced until iPhone SDK 3.0.&amp;nbsp; The solution is to
set the active build target to the most recent iPhone SDK available, at
least version 3.0 even though the deployment target in your build
settings allows compatibility with older devices.&amp;nbsp; Note the
the active build target can be set via the pull down menu in the upper
left corner of the XCode project window.
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/69</link><pubDate>Fri, 28 May 2010 23:21:34 GMT</pubDate><guid isPermaLink="false">6da3258041363b9d39e6b9ced66bb5c7</guid></item><item><title>OpenFeint Basics</title><description>&lt;div&gt;
&lt;b&gt;Initializing OpenFeint&lt;/b&gt;&lt;br&gt;
OpenFeint is initialized with one function call:&lt;br&gt;
&lt;code&gt;[OpenFeint
initializeWithProductKey:andSecret:andDisplayName:andSettings:andDelegates:];&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ProductKey and Secret are strings obtained by registering your
application at &lt;a href=
"https://api.openfeint.com"&gt;https://api.openfeint.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DisplayName is the string name we will use to refer to your
application throughout OpenFeint.&lt;/li&gt;
&lt;li&gt;Settings is dictionary of settings (detailed below) that allow
you to customize OpenFeint.&lt;/li&gt;
&lt;li&gt;Delegates is a container object that allows you to provide
desired delegate objects pertaining to specific OpenFeint
features.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Shutting down OpenFeint&lt;/b&gt;&lt;br&gt;
OpenFeint shutdown is accomplished with one function call:&lt;br&gt;
&lt;code&gt;[OpenFeint shutdown];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Additional required functions&lt;/b&gt;&lt;br&gt;
Developers are required to notify OpenFeint of device lock / unlock
events in order to reduce processing and save battery.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[OpenFeint applicationDidBecomeActive];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This method should be invoked from the UIApplicationDelegate
object's applicationDidBecomeActive: method.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[OpenFeint applicationWillResignActive];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This method should be invoked from the UIApplicationDelegate
object's applicationWillResignActive: method.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;OpenFeint configuration settings&lt;/b&gt;&lt;br&gt;
Settings are provided to OpenFeint as an NSDictionary. Here is an
example of creating a settings dictionary for use with the
initialize method:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;NSDictionary* settings = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft], OpenFeintSettingDashboardOrientation,
    @"ShortName", OpenFeintSettingShortDisplayName, 
    NSNumber numberWithBool:YES], OpenFeintSettingEnablePushNotifications,
    [NSNumber numberWithBool:NO], OpenFeintSettingDisableChat,
    nil
];&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;More detail for each of these settings can be found below. These
settings are also described in OpenFeintSettings.h.&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenFeintSettingRequireAuthorization - &lt;em&gt;deprecated&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;OpenFeintSettingDashboardOrientation - Specifies which
orientation the OpenFeint dashboard will appear in&lt;/li&gt;
&lt;li&gt;OpenFeintSettingShortDisplayName - In certain areas where the
application display name can be too long we will use this more
compact version of your application's display name. One example is
for the title of the current game tab in the OpenFeint
dashboard.&lt;/li&gt;

&lt;li&gt;OpenFeintSettingEnablePushNotifications - This controls whether
or not your application will be enabling Push Notifications (for
Social Challenges, currently)&lt;/li&gt;
&lt;li&gt;OpenFeintSettingDisableChat - Allows a developer to disable
chat for their entire application.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;What is OFDelegatesContainer? Where is
OpenFeintDelegate?&lt;/b&gt;&lt;br&gt;
OFDelegatesContainer is new as of version 2.1 and provides
developers a way to specify all of the various delegates that
OpenFeint features may require.&lt;/p&gt;
&lt;p&gt;If you are only using an OpenFeintDelegate then you may use the
simple convenience constructor:&lt;br&gt;
&lt;code&gt;[OFDelegatesContainer
containerWithOpenFeintDelegate:];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What is OpenFeintDelegate for?&lt;/b&gt;&lt;br&gt;
This is the bread-and-butter OpenFeint delegate.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;- (void)dashboardWillAppear;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This method is invoked whenever the dashboard is about to
appear. We suggest that application developers use this opportunity
to pause any logic / drawing while OpenFeint is displaying.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;- (void)dashboardDidAppear;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This method is invoked when the dashboard has finished it's
animated transition and is now fully visible.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;- (void)dashboardWillDisappear;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This method is invoked when the dashboard is about to animate
off the screen. We suggest that applications that do not use OpenGL
resume drawing in this method.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;- (void)dashboardDidDisappear;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This method is invoked when the dashboard is completed off the
screen. We suggest that OpenGL applications resume drawing here,
and all applications resume any paused logic / gameplay here.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;- (void)userLoggedIn:(NSString*)userId;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This method is invoked whenever an application successfully
connects to OpenFeint with a logged in user. The single parameter
is the OpenFeint user id of the logged in user.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;- (BOOL)showCustomOpenFeintApprovalScreen;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This method is invoked when OpenFeint is about to show the
welcome / approval screen that asks a user if they would like to
use OpenFeint. You can learn more about &lt;a href=
"http://help.openfeint.com/faqs/guides-2/approval-screen"&gt;customizing
the approval screen here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;OFNotificationDelegate&lt;/b&gt;&lt;br&gt;
This delegate deals with the in-game notification pop-ups that
OpenFeint displays in response to certain events including high
score submission, achievement unlocks, and social challenges. You
can find more details by referencing the &lt;a href=
"http://help.openfeint.com/faqs/api-features/notification-pop-ups"&gt;API
feature article on notification pop-ups&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;OFChallengeDelegate&lt;/b&gt;&lt;br&gt;
This delegate deals with the Social Challenges API feature. You can
find more details by referencing the &lt;a href=
"http://www.openfeint.com/ofdeveloper/index.php/kb/article/000027"&gt;Social
Challenges feature article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Launching the OpenFeint dashboard&lt;/b&gt;&lt;br&gt;
The most basic launch of the OpenFeint dashboard is accomplished
with a single function call:&lt;br&gt;
&lt;code&gt;[OpenFeint launchDashboard];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can also launch the dashboard with a specific
OpenFeintDelegate for use only during this launch using:&lt;br&gt;
&lt;code&gt;[OpenFeint launchDashboardWithDelegate:];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In addition, OpenFeint provides a suite of methods for launching
the dashboard to a pre-defined tab or page. These are documented in
the header file OpenFeint+Dashboard.h.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+
(void)launchDashboardWithListLeaderboardsPage;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Invoke this method to launch the OpenFeint dashboard to the
leaderboard list page for your application.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+
(void)launchDashboardWithHighscorePage:(NSString*)leaderboardId;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Invoke this method to launch the OpenFeint dashboard to a
specific leaderboard page. You must pass in a string representing
the unique ID of the leaderboard you wish to view which can be
obtained from the Developer Dashboard.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+ (void)launchDashboardWithAchievementsPage;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Invoke this method to launch the OpenFeint dashboard to the
achievements list page for your application.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+ (void)launchDashboardWithChallengesPage;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Invoke this method to launch the OpenFeint dashboard to the
challenge list page for your application.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+ (void)launchDashboardWithFindFriendsPage;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Invoke this method to launch the OpenFeint dashboard to the
'find friends' page, which prompts the user to use twitter,
facebook, or a username search to locate friends in OpenFeint.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+ (void)launchDashboardWithWhosPlayingPage;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Invoke this method to launch the OpenFeint dashboard to a page
which lists OpenFeint friends who are also playing your
application.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Orientation and View Controller information&lt;/b&gt;&lt;br&gt;
The OpenFeint dashboard supports being displayed in &lt;em&gt;any&lt;/em&gt;
orientation you desire. It &lt;em&gt;will not&lt;/em&gt;, however, change
orientations while it is being displayed.&lt;/p&gt;
&lt;p&gt;Developers use the OpenFeintSettingDashboardOrientation to
control the initial orientation. If you wish to change the
orientation over the course of the application you may invoke:&lt;br&gt;
&lt;code&gt;[OpenFeint setDashboardOrientation:];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Generally this is done by applications which want to support
multiple orientations in the UIViewController method
didRotateFromInterfaceOrientation:.&lt;/p&gt;
&lt;p&gt;If your application is using a view controller with a
non-portrait layout then you are required to invoke and return the
following method in your UIViewController's
shouldAutorotateToInterfaceOrientation method.&lt;br&gt;

&lt;code&gt;[OpenFeint
shouldAutorotateToInterfaceOrientation:withSupportedOrientations:andCount:];&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here is an example implementation of
shouldAutorotateToInterfaceOrientation:&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    const unsigned int numOrientations = 4;
    UIInterfaceOrientation myOrientations[numOrientations] = 
    { 
        UIInterfaceOrientationPortrait, UIInterfaceOrientationLandscapeLeft, 
        UIInterfaceOrientationLandscapeRight, UIInterfaceOrientationPortraitUpsideDown
    };

    return [OpenFeint 
        shouldAutorotateToInterfaceOrientation:interfaceOrientation 
        withSupportedOrientations:myOrientations 
        andCount:numOrientations];
}&lt;/code&gt;
&lt;/pre&gt;&lt;/div&gt;</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/22</link><pubDate>Wed, 28 Apr 2010 21:55:21 GMT</pubDate><guid isPermaLink="false">0247bb311e08b7dd56fc7bebf6045b67</guid></item><item><title>Disabling Chat</title><description>
Some developers wish to disable access to chat features within their app.  There is a settings key that can be used during initialization of OpenFeint to control access to chat features.
&lt;p&gt;
"OpenFeintSettingDisableUserGeneratedContent" settings key
&lt;p&gt;
To disable chat, add the "OpenFeintSettingDisableUserGeneratedContent" settings key with a boolean true value in the settings dictionary that you pass in to the initialization method.  For example:
&lt;p&gt;
&lt;code&gt;
        NSDictionary* settings = [NSDictionary dictionaryWithObjectsAndKeys:
&lt;br&gt;
            [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight], OpenFeintSettingDashboardOrientation,
&lt;br&gt;
            [NSNumber numberWithBool:YES], OpenFeintSettingDisableUserGeneratedContent,
            nil];
&lt;/code&gt;</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/68</link><pubDate>Wed, 14 Apr 2010 00:35:41 GMT</pubDate><guid isPermaLink="false">3fd717dfbd0eb53f3956f261fb274c0e</guid></item><item><title>Game Center Support</title><description>You can be 100% assured that we will continue to invest in the OpenFeint platform so that players and developers enjoy a flawless experience with Game Center.  
&lt;p&gt;
We are currently developing code that will allow you to integrate OpenFeint leaderboards with Game Center and it will be available when Apple's platform launches later this year.
&lt;p&gt;
As the platform matures and we have additional information we will post updates here for all developers.  If you have additional questions or feedback please use the Contact Us form.</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/67</link><pubDate>Fri, 09 Apr 2010 01:01:28 GMT</pubDate><guid isPermaLink="false">a6693a1810df33db624b8c7e78f3f1fa</guid></item><item><title>Integrating the OpenFeint SDK</title><description>  &lt;div&gt;&lt;p&gt;&lt;b&gt;OpenFeint is written in Objective-C++! This means that
&lt;em&gt;any&lt;/em&gt; and &lt;em&gt;all&lt;/em&gt; files which invoke OpenFeint methods
&lt;em&gt;must&lt;/em&gt; be compiled with Objective-C++. The simplest way to
compile with Objective-C++ is to change your file extension to
.mm&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Compiling and Linking the OpenFeint SDK&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make sure you have the current version of OpenFeint. Unzip the
file.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;If you have previously used OpenFeint, delete the existing
group reference from your project&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Drag and drop the unzipped folder titled OpenFeint onto your
project in XCode. Make sure it&amp;#8217;s included as a group and not
a folder reference.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;If your game is landscape only or portrait only, remove the
Resources/Landscape or Resources/Portrait folder from your project,
whichever you don't need. This is not a necessary step but helps
cut down the application size. You need to do this every time you
download a new OpenFeint project.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Right click on your project icon in the Groups &amp;amp; Files
pane. Select Get Info.&lt;br&gt;
&lt;ul&gt;

&lt;li&gt;Select the Build tab. Make sure you have Configuration set to
All Configurations&lt;/li&gt;
&lt;li&gt;Add to Other Linker Flags the value -ObjC&lt;/li&gt;
&lt;li&gt;Ensure 'Call C++ Default Ctors/Dtors in Objective-C' is checked
under the 'GCC 4.2 - Code Generation' section&lt;/li&gt;
&lt;li&gt;NOTE: Older Xcode projects may have to add this as a user
defined setting GCC_OBJC_CALL_CXX_CDTORS set to YES&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Ensure the following frameworks are included in your link
step:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Foundation&lt;/li&gt;
&lt;li&gt;UIKit&lt;/li&gt;

&lt;li&gt;CoreGraphics&lt;/li&gt;
&lt;li&gt;QuartzCore&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;SystemConfiguration&lt;/li&gt;
&lt;li&gt;libsql3.0.dylib&lt;/li&gt;
&lt;li&gt;libz.1.2.3.dylib (unless using OF_EXCLUDE_ZLIB as described below)&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;&lt;/li&gt;
&lt;li&gt;You must have a prefix header. It must have the following line:
#import &amp;#8220;OpenFeintPrefix.pch&amp;#8221;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;Cool, it compiles now but I get a lot of build output spam
related to XIB files&lt;/b&gt;&lt;br&gt;

We are working to reduce and eliminate these notices. They annoy us
too! You can disable these notices from appearing if you find that
you are missing valid warnings and errors among the spam by
following these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the Project Settings in Xcode and go to the Build
tab.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Look for the 'Show Notices' setting under the heading
'Interface Builder Compiler'&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Make sure this setting is disabled / unchecked.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note: If you are unable to find the 'Show Notices' setting you
may add a User-Defined Setting named 'IBC_NOTICES' and set it to
'NO'.&lt;/p&gt;
&lt;p&gt;
Changes from 2.4 to 2.4.5 are listed below:
&lt;ul&gt;
&lt;li&gt;High Score blobs use zlib for compression. &lt;/li&gt;
  &lt;ul&gt;
  &lt;li&gt;If you don't want to include the zlib framework then add OF_EXCLUDE_ZLIB to your preprocessor definitions. This will disable compression&lt;/li&gt;
  &lt;li&gt;If you want to use compression then include the libz.1.2.3.dylib framework&lt;/li&gt;
  &lt;/ul&gt;
&lt;li&gt;There is now a setHighScore function in OFHighScoreService that takes in a NSData* parameter for the blob&lt;/li&gt;
&lt;li&gt;There is a new setting called OpenFeintSettingDisableCloudStorageCompression. Set it to true to disable compression. This is global for all high score blobs.&lt;/li&gt;
&lt;li&gt;There is a new setting called OpenFeintSettingOutputCloudStorageCompressionRatio. When set to true it will print the compression ratio to the console whenever compressing a blob.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;For information about basic OpenFeint usage, settings, and
initialization continue to &lt;a href=
"http://www.openfeint.com/developers/support/index.php/kb/article/000022"&gt;OpenFeint
Basics&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;
</description><link>http://www.openfeint.com/ofdeveloper/index.php/kb/article/55</link><pubDate>Wed, 07 Apr 2010 21:40:15 GMT</pubDate><guid isPermaLink="false">b6756396344d8ef1010289f6b384498d</guid></item></channel></rss>
