Januari 2013 blog archive

This page contains all the blog posts from januari 2013. To read the most recent blog posts, click here.

27/01 - And the winner is...

After a fair bit of tests with Unity and Java, i've decided to use Java (with libgdx) over Unity for my next large project and to provide both standalone and android versions of future flash games. This doesn't means that there's something wrong with Unity, but Java+libgdx has several advantages for my workflow specifically :

  • The general workflow/structure of my games can be more easily recreated in Java compared to Unity.
  • Rendering 2D stuff is far easier achieved in Java and on top of that, the syntax of the code required to do so is very similar to how it's done in Flash, making it easier to port games over.
  • Writing code and debugging for Java using Eclipse works faster and smoother compared to developing in Monodevelop for Unity.
  • Deployment and installation of finished Java applications is simpler - generally the entire game is contained in a single file and no installation is needed, only the presence of the JRE (Java Runtime Environment) on the system is needed.
  • There's no cost involved to create Java apps (Unity pro is 1500$, Android development requires a 400$ upgrade). Since i'm releasing games for free, the cost to make these games is an important factor.
  • It's possible to develop Java apps on Linux.

The next large project i'll be attempting is going to be a turn-based RPG, set in a huge explorable gameworld (i.e. Xyth). It'll be a while before i actually get started on this one. For now, i'm working on a level editor that can eventually be used to create maps for this rpg, but at the same time this editor can be configured so it can be used for other (smaller) games.
One of the first things this editor will support is the follow-up to Technospire. The editor itself will remain Java only, but Technospire II is going to be Flash and Java and the plan is to look into an Android version as well. Eventually, the editor will be available as well, so players can create and share their own levels for Technospire II.

20/01 - Java

Next to continued Unity tests, i've also started doing some tests in Java (using the Libgdx game development framework). The programming language is not too different from Actionscript 3 (used for Flash games) or C# (used in Unity and also for the server-side multiplayer code). The general program structure of a Java application is different from both Flash and Unity, but it's much closer to Flash, which made learning the Java/Libgdx basics much faster compared to Unity.

It's too soon to say which of the two i'll start using alongside Flash for game development, so i'll continue doing tests with both.

Right now i'm looking at this from the point of view of an existing Flash game that needs to be transfered to either Java or Unity. For general mechanics, this is a matter of copy/pasting code over and making changes specific to the target language (the amount of work here is pretty much the same when going from AS3 to Java compared to going from AS3 to C#).
Code that deals with input, rendering, sound and file management needs more work, as each framework has its own implementation. Rendering code is generally the most complex of these and thus requires the most work porting it over. This is where Java/Libgdx has a big advantage over Unity as it provides a spritebatch system that makes rendering 2D extremely simple (just as simple as Flash and XNA). While there exist 3rd party tools to make 2D rendering code much simpler/shorter in Unity, if i stick with unity i'd have to write my own spritebatch setup - without it, drawing sprites on the screen takes a fair bit more code compared to Flash/XNA/Libgdx.

13/01 - FB & RH

I'm close to finishing my 'RH' game. It has some similarties to the classic battleships boardgame, but i've added several additional tactical options and the entire thing is of course set in the Xyth galaxy. In RH, Rivi'i and Humans play a central role.

After the 9+ months of work on a single project (HD Xyth), it's refreshing to be able to start and finish two smaller games in matter of 5-6 weeks. I don't know yet what i'll do after RH is finished, code-wise, but there's plenty of other stuff to do.
Now that HD Xyth has gone through several pvp balancing patches, the game appears stable enough to contine uploading it to various websites. Flash games tend to spread by themselves as people download them from one site and place them on another, but for a multiplayer game this can be problematic as you often have no control over this process and it can result in those versions no longer being compatible with the most recent updates. The bulk of the duels (some 98%) are single player, so i don't expect too much trouble. On top of that, most of the pvp changes have been stored on a server-side document, which can be read by the game.
Next to the planned experiments with Unity, i'll also be looking into Monogame and Java for standalone versions of my games. All 3 options offer multiplatform builds, including mobile, so it'll come down to which language & workflow combination i feel the most comfortable with.

06/01 - Starting new games

Over the years i've come up with tons of ideas for games i'd like to make - only a fraction of those have been realized thus far. Whenever i finish a game, i go through the list of ideas and select what i'd like to try next (which is possibly one of the hardest things about making games for me). Once i've decided on a game, i start detailing the concept, check what different screens are needed and make sketches. When all of this is more or less complete, the actual coding can start.
In general, this entire start-up process goes relatively slow since it's the least exciting part of creating games. Once i get to the part where i can start coding actual game mechanics, things start to get fun and that's when i generally spend 8 to 10 hours (or more) a day coding.

Recently, i started on another small game. The plan is to create several such small games and keep them in stock. They'll be released gradually, allowing me to tackle a larger project that might take months to complete. That way NULLL Games doesn't fall off the radar and i won't have to interrupt the large project to create a small game somewhere down the road. What this large project will be, hasn't been decided yet - there are two genres i really want to try my hand at : tower defense and classic, turn-based rpg.