Having been a web developer for about 15 years, and finding myself able to re-invent my professional life safely from the hiatus of being a stay/work at home mom… I know that game development is in my future. I just have to merge my two loves of games and programming. Heaven! But, this adventure into learning game development is complex, exciting and a bit intimidating. Here is a brain-dump of the thought process I’ve had over the last year, and where I’m heading now.
I have currently published 2 games as Silver Key Games. I’m a programmer not a designer, so my games are mostly retro, text based things light on graphics. The first game is Roboid a browser based text MMO RPG. It is written in PHP and represents the natural game dev results of my existing PHP, Javascript skillset. But, let’s face facts. Browser text games of this type are a dying breed, hard to monetize, and hard to attract players. Roboid is nice, but it’s not what I want to focus on.
I have my sights set on educational, language-learning, and text adventure games. So, my first thought was, how do I take my web dev skills and apply that to games? That’s when PhoneGap appeared on my radar. My second game, is a small proof of concept – a children’s game for playing ‘pretend’. It is an html/JS game wrapped in PhoneGap. Check out Mega Mission Computer.
I struggled and struggled to get PhoneGap working. I could not get the build tools to work on my Ubuntu Linux dev laptop, so I had to resort to PhoneGap’s cloud Build service. But, it worked. However there are several problems with PhoneGap. It’s clunky, you don’t get native performance, can’t easily build to non-mobile platforms, and most alarming, anyone can unzip your PhoneGap apk file and see all your source file HTML, JS, etc.
I realized that I was seeing all problems through the lens of my PHP glasses. I wanted an easy way to translate my extensive PHP skills and library of code to my game development future. I only have one hammer: The PHP-Javascript-HTML-CSS stack. I need some new tools in my belt if I want to take a true leap into indie game development. I have not used non-web programming tools since university. Things like IDEs, compilers, command-line tools etc are alien to me. My current process is lean and mean: a fancy text editor, an FTP program, TortoiseHG for source control, and Gimp for image editing. That is it. That’s basically all I’ve used for all my development for a decade. Wowzers. It’s a bit embarrassing to admit, but my programmer-badge is pretty out of date.
Enter: Game Development Engines
I know for sure that I want to target multiple platforms, and while Android is my personal fav and will be my initial focus, developing natively in Java for Android is a pretty tight trap to fall into. Multi-platform engines are the clear way to go.
Everyone uses Unity. Unity is… the boss. Everyone tells me to use Unity. I even went through some hoops to install it and get it working under Linux. I started the first tutorial. It’s cool.
However, a few initial impressions turn me off of Unity. First, I am lightyears away from doing anything 3D. I’m not an artist. And this is way too big-league for me. Unity seems artist-focused and even the editor is very visual.
I also don’t want to create games that take years to finish. I have kids, a company, and other hobbies… so waiting ages and investing heavy amounts of time to see if an idea is going to work or pay-off is too much risk. Again I think Unity is a bit overkill for the modest types of games I want to make.
I’ve never played a Unity game that didn’t feel slow. Granted these are mostly on Android and maybe Unity hasn’t quite optimized their Android builds yet… but even non-animated actions seem to lag. The games themselves, even simple ones have huge download sizes. Again with the overkill.
I know that Unity pros will chastise me for these concerns. These are only impressions from a very limited perspective. I bet that with time I could make something awesome with Unity. Its assetstore alone is a goldmine. But, I’m looking for something lighter. Maybe it will end up being a stepping stone to Unity in the future- and that’s ok.
So, we are up to the present. This week I took a look at Defold. I found it when comparing cross-platform 2D game engines. It is new, under active development, and free. It is easily installed (see my blog post on Getting Started With Defold) and uses the Lua scripting language. You can dev on Windows, Mac and Linux. And one-click build to iOS, Android, HTML5, OS X, Windows & Linux. The documentation is clear and straight-forward. It literally checks off so many of my ideal engine requirements it’s surprising.
The game I want to build with it will be a simple language learning app which functions kind of like a chat or text messaging interface. We’ll see how it goes with building this and learning Lua. I will be blogging more about game dev and Defold in the future!