Today, after an incredible New Year's Eve (went to bed at 06:30 after a great party and a very awesome "night", got up at 11:30 and finally got home around 3pm), I'm heading towards releasing V1.1.1 of Traces of Illumination.
The Awards for Tutorials and Single-Player are implemented and seem to work quite alright. What's still missing is that you actually see in the game when you have earned any new awards. So, at the moment, when you play, the awards will be given to you - but you only see that when you check the Awards page on www.ramtiga.com
. What I'm working on right now is that the game checks for new awards every couple of seconds (currently every 60 seconds but I'll probably take that down to maybe 15 seconds), and when you have earned new awards shows them. The actual logic for "you earned Award XY" resides on the server for obvious reasons.
I'm not perfectly happy with the implementation right now because I used some database table originally intended for anonymous usage / performance tracking and added the player_id to that table which makes it no longer anonymous (at least not when you are logged in). So that area will need some refactoring later on. Also, I might have to do some changes on how receiving awards works because having a 15 seconds delay might kind of steal away some of the feeling of having achieved something. More instant feedback might be necessary.
However, I may also decide to only do that for the multiplayer part of the game. There, the server can send a message to any given client instantly. In the non-multiplayer part of the game, the client has to poll the server for new awards, and I don't want to build a DDoS-attack against my own site into my Web players just so everyone can get instant feedback on their in game achievements ;-) ... I might, however, put some part of the logic for checking whether a player has received a new award into the client. The server would still be authoritative but the client could still do a similar kind of calculation and show an award immediately when it is earned (even though whether or not it is really earned is decided on the server). The problem with that approach is that it makes things terribly complex with lots of half-duplicate code. So ... it won't happen until I see there's a real need for that. So ... if you feel you really need it, speak up - or stay forever silent (on this particular issue ;-) ).
Speaking of multiplayer: I might release V1.1.1 with multiplayer disabled as I'm not sure I will be able to properly test this area properly in the short time to make sure it really works, and I know there are some bugs lurking in that area. Well, step by step ... now I'll move on to writing stuff that actually implements functionality ;-)