2010-07-12 3 views
0

J'ai décidé d'intégrer OpenFeint dans mon nouveau jeu pour avoir des succès et des classements. Le jeu est dynamique et je voudrais que l'utilisateur soit récompensé immédiatement pour quelques résultats réussis, mais comme il me semble, les accomplissements d'OpenFeint sont un peu lents et il montre la notification visuelle seulement quand il reçoit la confirmation du serveur.Performances des réalisations OpenFeint

Est-il possible de modifier quelque chose dans les paramètres ou de le pirater un peu pour afficher une notification immédiatement dès qu'il ne vérifie que la base de données locale si la réalisation n'a pas été déverrouillée?

Répondre

1

Il y a plusieurs choses que vous pouvez faire pour contrôler plus étroitement le timing de ces notifications. Je vais vous expliquer une approche et vous pouvez l'utiliser comme point de départ pour explorer plus loin par vous-même. Ces suggestions s'appliquent spécifiquement aux applications iOS. Une mise en garde est que ces suggestions se réfèrent à des API internes dans OFSDK 2.8 pour iOS et ne sont généralement pas recommandées pour une utilisation de haut niveau et sujettes à des changements dans les futures versions.

La première chose que je recommande est que vous construisiez l'exemple d'application avec votre propre clé de produit. Utilisez l'exemple d'application standard pour expérimenter avant d'appliquer le résultat à votre propre code.

Vous obtiendrez la réponse la plus rapide en séparant l'interface utilisateur de la fenêtre de notification du processus de soumission de la réussite. De cette façon, vous n'avez pas à vous soucier d'être enveloppé dans la logique pour décider si la soumission va juste à la base de données locale ou fait la confirmation complète sur une transaction réseau asynchrone.

Voir la déclaration de "showAchievementNotice" dans "OFNotification.h". En effectuant une recherche dans l'exemple d'application, vous verrez qu'il s'agit de l'API interne utilisée pour afficher la fenêtre contextuelle de réussite lorsqu'une réussite est obtenue. Il ne soumet pas réellement la réalisation. Vous pouvez appeler cette méthode directement comme elle est appelée depuis "OFAchievementService.mm" pour contrôler directement quand le message apparaît. Vous pouvez ensuite utiliser l'article suivant pour désactiver la fenêtre contextuelle d'être appelée lorsque la soumission réelle se produit:

http://support.openfeint.com/dev/notification-pop-ups-in-ios/ 

Cela vous donne une totale liberté d'appeler la soumission à une date ultérieure à condition de garder une trace de la nécessité de fais-le. Par exemple, vous pouvez sérialiser localement un drapeau pour prendre en charge la soumission réelle, soit après que le niveau est terminé ou au prochain démarrage de l'application. Ne pas oublier que l'utilisateur peut quitter une partie sans terminer proprement un niveau.

2

Vous ne savez pas si cela se rapporte à la version Android du SDK (qui semble encore plus lent), mais nous ne pouvions pas comprendre comment le rendre plus rapide. Il était tellement inacceptable que nous avons commencé à élaborer notre propre cadre qui corrige la plupart des lacunes de la feinte ouverte, puis certaines. Découvrez Swarm, il pourrait mieux répondre à vos besoins.