I guess I'm back. Now let's move on to more useful and less obvious stuff!=) In the last year or so my focus has moved away from XRhodes [as a product] and I have got acquainted with the Marmalade SDK (As an aside, I'm still working on XR and am using it for my own projects, but it has been moved to a Marmalade codebase, removing redundant and adding more relevant stuff).
Marmalade is by no means the only solution for cross platform, mobile games development, but it is a pretty good one, and I love it - it's helped me a lot, and it's challenged me a lot. Perfect.
The rest of the post is for those already using Marmalade and wondering why the s3eFlurry plugin (which helps interfacing with the Flurry Analytics service) wasn't working correctly on Android. Hope it's going to save you some time.
Flurry requires the session to be terminated for the generated event data to be sent to the server, however the extension does not call
s3eFlurry.3eFlurryEnd() (which in turn calls
FlurryAgent.onEndSession()). This has been fixed by Roolez.
As can be tested with the s3eFlurry Example (this comes with the original plugin), the fix works if you terminate your app by some in-app exit mechanism (
s3eDeviceRequestQuit()) - which is not recommended practice, as on most mobile platforms there's a Home button to get you out of the app; your users will be more used to using that anyway.
I have made a modification to the s3eFlurry plugin (download), exposing the
s3eFlurryEnd() function, allowing the user to manually end the session. Registering a handler for
S3E_DEVICE_EXIT that calls it doesn't solve the problem though, as on Android, this event only seems to be generated by
s3eDeviceRequestQuit(), but not if the user or the OS kills the app.
A closer look at Flurry's documentation reveals that sessions can be continued if the same
FlurryAgent.onSessionStart() within 10 seconds of a
FlurryAgent.onSessionEnd(). This maps nicely to a pair of
S3E_DEVICE_UNPAUSE handlers (
s3eFlurryStart()at the earliest convenience in your app (
s3eFlurryStart()again in a
Job done. (Also on Marmalade Questions)
For those technically inclined, this is a C++ reimplementation of the original Flash version (which was programmed by the very same Duncan Saunders whom I've teamed up with to create Super Snake Blox). The Flash version will be available at the same time as the iOS.
Another game that I've been involved will follow shortly, this time for the Vita; stay tuned!
It was high time for an update, as a lot of things have changed in the one year since I've last posted.
Most importantly, I've got a placement year with the London based studio, Playerthree. The first title that I've worked on should be out soon for PSP Minis, with another one for PS Vita to follow it in a close consecution. I've learnt some very useful lessons in working with 3rd party code and team projects.
I've also rewritten XRhodes, next to from scratch. Only this time around I'm no longer gearing it towards a public release - I could, but it takes a lot of effort, which I'd rather be spending on actual games, and ones that I'm passionate about.
The most important change is connected to this: I've learnt to let go of perfection. I no longer feel the urge to write crystal clear code, and I'm willing to make sacrifices to just make things work. What having been aspiring to pick up good practices and to write crystal clear code helped me is to learn what can actually be sacrificed, and what will come back to bite me in the ass.
Global Game Jam 2012 has just finished. I've been looking forward to the event very much - from a suprise team-up with Duncan Saunders and Jade Konechy, Super Snake Blox was born. It's quite fun. Go and play it. There are flaws (it's a 48 hour game), but I'll tidy them up as soon as I can bear to look at it again.
The plan now is to work on short and sweet prototypes that I can fit in my schedule easier, to do the next Ludum Dare - which I now know I can -, and to provide more updates. We'll see how it goes.;)
Tower Offense has been updated, just to round off some rough edges. You can download it from Mediafire.
Also, its code has been made public domain in form of a Mercurial repository. It is probably not the tidiest code ever, but if you are new to games development and/or XRhodes, you might find it helpful. (If you are also new to Mercurial, a great tutorial can be found here.)
To work your magic from the command line:
Please note that actually building it will require XRhodes v0.86. Just a couple more days...
|<< <||> >>|