I’ve been asked a few times to describe how I’m getting legends of yore on to different platforms. The important part to me is to keep one java code base for the game. One set of feature development and one set of bugs. If something goes wrong it should go wrong everywhere - and the fix apply everywhere. It’s working out ok in this regard.
So, here’s a quick run down. I have a single simple API which the game (and my other recent projects conform to). It’s quite limited and thats intentional to cut down on the complexity when moving to different platforms. The javadoc for this API is here:
http://www.legendsofyore.com/doc
The API is implemented in a bunch of different technologies as shown below. The use of these compilers and SDKs, and the packaging of the applications is all wrapped up in a set of ant scripts. When I build a version I run a command like:
ant clean applet application android android-paid ios ios-paid gwt flex
And the distributions pop out in the target directory ready for upload to various appstores. Where possible I’ve automated the upload process too.
http://dl.dropbox.com/u/1668516/shots/TouchQuest/touchapi-small.png
Not sure what else to say about the implementations. I’m open to questions of course.
Status
- Application/Applet/Android/iOS are working and have been released and selling ok ™
- HTML5 version is up and selling, also available from Kongregate as of yesterday
- WebOS version is built and I’m just sorting out the finer details of integration with the TouchPad (that HP sent me for free! :))
- Flash version is in progress but I’m having some reasonably bad rendering issues
Limitations
- Performance - it’s massively variable across the different platforms and techs. I’m only focussing on turn based or puzzle games, so it doesn’t worry me
- Limited SDK - You can only use a limited Java SDK without implementing parts of the different platforms. I manage just fine and you can imagine legends of yore isn’t completely simple or small inside
- Debugging - it’s hard to debug across all the platforms. Once it’s right, you only have to debug on one but getting there can be tricky
- Platform Features - each platform has different features which are complicated what you support where. I’ve not limited myself but it might have been sensible to cut down the features to a core set
- Costs - Commercially using the flash conversion stuff costs $99 a year. Android and iOS markets have their costs also.
Technologies
- GWT - http://code.google.com/webtoolkit/
- XMLVM - http://www.xmlvm.org
- GWT4Flex - http://www.emitrom.com/
- Android SDK - http://developer.android.com/sdk/index.html
Links
The main game is available in several forms at http://www.legendsofyore.com
The HTML 5 version is live at http://www.legendsofyore.com/js
The in progress Flash version (don’t expect too much yet) is available at http://www.legendsofyore.com/flex
If anyone is interested in any more information, just let me know.
Cheers,
Kev