0

I currently try to implement achievement system for my game, but can't find a better way to realize some complex ones like: the player has collected x coins, complete level with time least than x seconds, Kill over x enemies etc... Could you share your experiences please?

Secondly, Why don't we just implement achievement system as local only instead of using server like Scoreloop or OpenFeint? Or put it in another way, What are the advantages of using server for managing player's achievement?

wanting252
  • 1,139
  • 2
  • 16
  • 22

1 Answers1

1

To answer your second question first, advantages for using server would be sharing the information with others so they can "compete" or "praise" the other leaders. You may also have a website and community to build a following and the leaderboard (kind of like this site with points) helps drive more activity and stickiness/loyalty.

The first question, you might look at the Set structure or Ordered Set structure in a fast storage solution like Redis. Check out these articles for examples:

The question you'll need to ask yourself is whether you want to do it all on the device, or client/server and that will determine your solution. You could have a list of "events" that occur and every event has a "type" (i.e. collected coin, completed level quickly, killed enemy) and this could be on server or device. You could then have rules to test "rules" and tally up those events to unlock more levels, features, or perhaps only then post some recognition for that user on your server (saving network bandwidth only when matters).

Community
  • 1
  • 1
Mike S.
  • 4,806
  • 1
  • 33
  • 35
  • Thank you very much! Is there a way to avoid hard-code rules? For example, Can I define them just in a json, no java needed? What is your opinion about Lua option? Is it easy to implement? – wanting252 Jul 15 '12 at 16:13
  • 1
    what do you mean about hard-code rules and no java needed? Lua is fairly new to Redis and I haven't used it's syntax so couldn't help you there. I think you need to decide whether you want the stats stored on server or local first, then decide how flexible you need to be for rules (and frequency of changing). Anticipate you'll get user feedback on your game and publish new updates, so don't get too hung up on designing the infinitely-flexible rules model. Best to ship, listen to users, refine, repeat but I'd store leaderboard on server and use Redis for write speed. – Mike S. Jul 15 '12 at 16:25
  • OK Let's do some trial and error:D.(In fact, Redis is also new for me- this is the first time I hear about). – wanting252 Jul 16 '12 at 01:54