Now that my book is published it's time to move on to my next project. Given the original purpose of this site, with a two year distraction, I think it's high time that I get around to actually creating and publishing a game! I intend to share as much of the development process, code, assets, etc… as I go, including having the WIP game playable here!
What I have in my head is a science fiction business simulation game. Trust me, the actual game is a hell of a lot more exciting than that title indicates, I will flesh out the details in further blog posts. If you played old school BBS games, or many of the recent Kairosoft or Tycoon style games, you should have an inkling of the type of game I am considering. I actually tend to find these styles of turn based games are the best fit for mobile games, especially in the world of play 5 minutes here, 5 minutes there.
One of the biggest requirements in creating a game is being able to post about it here. I want to share as much of the development experience as possible, and hopefully be as interesting to as large an audience as possible. Ultimately I do intend to sell the game on at least iOS and Android, but I would also like to give it away here. I would also like to make all of the source, and eventually ( once I've hopefully sold a few copies ) the assets available as I go.
So here are my current requirements:
- Turn based game
- May require modest 3D support, otherwise sprite based
- Excellent UI support ( UI heavy game )
- Available on Android, iOS and on GameFromScratch.com at a minimum
- In a language of interest or known to a large number of developers
- Tools at low or no cost, so maximum number of readers can follow along
- Reasonably quick development time
- Good library support, little desire to re-invent the wheel
For the last week I've been mulling these requirements around in my head and I think I've settled on my technology of choice. First I will go through my list of considered but discounted technologies and the reasons why.
LoomScript I recently finished evaluating Loom and I was rather impressed. There is CSS style markup and tweening support for making a solid UI relatively easily, it targets all the desired platforms, except the web ( MacOS and Windows builds might offset this lacking to a degree ). That said though, at the end of the day, it's just not that popular yet, so I would be writing about a technology a very small minority of you are interested in.
Unity is an obvious choice. It would handle the 3d portions better than any other engine i've considered and it is certainly popular, so would probably be relevant for a lot of you. At the end of the day though, it's a 3D engine, not a 2D one. Of course, you can accomplish a great deal using 3rd party libraries, for an additional cost. At the end of the day, that was the biggest mark against Unity, the cost factor. Although I own a 3.x license from the give away, and could ultimately buy a 4.x license when ready to ship, I don't want to go that route if I don't really need the majority of the features it buys me. The UI support too is also remarkably sparse.
Scaleform was another one I considered. On the UI side of the fence, it may be the strongest option. It's basically a game optimized version of Flash and is used in hundreds of games to provide the UI functionality. That said, it's pretty niche in the indie world at this point and the amount of supporting materials is pretty light right now.
C++, very little gain. Would love to take a closer look at the GamePlay3D engine, but it's overkill for this game project.
Flash/AIR is another option. In all my years, I somehow completely avoided doing any Flash development. Keep in mind, I am not talking about browser based Flash, I am talking Flash as a development environment. I haven't completely disregarded Flash as an option, but puzzling out the eco-system was rather confusing. Not really sure what level of commitment would be need to be made to work with Flash. I do really wish FlashDevelop was available on MacOS… Not ruled out Flash yet, but probably not.
The LUAs. I really like all of the Lua based game engines but none are a particularly good fit. I don't believe any of them support web deployment right now, Corona and Gideros both have a price tag attached and Moai is a poor fit… I am not writing a high performance game, so there aren't enough wins to make it worth while, as I'd have to roll my own UI system, etc.
LibGDX/PlayN Both support a good number of platforms, both are libraries of interest to me. In the case of PlayN, I just found the entire build process ( MAVEN!!! ) so tedious and prone to breakage, plus I would be pretty much rolling my own UI. LibGDX is on my todo to look into further and hasn't been discounted completely, but UI support is there.
HaXe + NME Still looking into this one, it's a maybe.
At the end of the day, that leaves an obvious choice and two maybes.
HTML5 It's popular, library support is staggering, UI support is a no brainer ( I can use a few thousand existing HTML libraries ), hosting it on this website is also a no brainer, I can easily port to Windows 8 and Chrome app stores and frankly, I want to see what the HTML5 developer experience is like on a full game. There is one possible achilles heel to this decision though… native support. I want to deploy as a native app at the end of the day, and there are options for this ( XDK, CocoonJS, PhoneGap ), but there are also problems. WebGL support is I believe only available on Cocoon and it's "coming soon". The game in my mind isn't performance intensive, but I don't know if native WebView is fast enough, probably rendering PhoneGap a non-starter… I need to (very very very soon) try the various native deployment options and see how it goes.
That said, if HTML5 doesn't work out, I've got two runners up picked out. HaXe and libGDX.
Is there any mainstream language you would prefer I do this project in? Anyways… wish me luck, first steps and all of that...