Saturday, 6 February 2016

libGDX jam is over!

The libGDX jam is over! Well it actually has been over since three weeks but I didn't get around to posting anything here. The voting period also has concluded and my game made the 58th rank (out of 83 submissions)! I am pretty content with this result - my first game jam and the game even had some unfinished stuff and other rough edges in it! Goal for next year: rank 57!

You can find it here:
tiny GIANT planets on
Source on GitHub

A few things I learned:
  • libGDX is awesome. If you know Java (or other JVM langauges like Kotlin or Scala) and want to create a cross-platform game for Win/Linux/Mac and Android/Ios (HTML5 is also possible but it's pretty limited which libraries you can use) give it a shot. Of course some Java pitfalls apply, so be a bit wary about performance and garbage collection. Also when developing a game that should run on a phone with very limited RAM and CPU power you cannot apply all the "usual" Java best practices like immutable classes or use the Java collection framework (you get high performance collections from libGDX). But besides that I love working with this framework.
  • Entity-Component-Systems are awesome for making games. They make the code way cleaner than a object oriented approuch usually would and make adding/altering behaviour pretty easy. I used Ashley which was created for libGDX but is not tied to it - you could use it in any Java project. I wrote a post on how I transformed my object-oriented code to Ashley in my dev-log.
    • One small note regarding Ashley: Using a pooled engine instead of the "normal" one may not always result in performance increase. For me it even reduced the perfomance by a few FPS on PC. Here my commit where I refactored the code to use the pooled engine and here I undo it a few days later.
  • Podium Free is a nice free DAW. It is not as user friendly as e.g. FL-Studio and not as feature rich but if you don't want to spend hunders of Euros to get a program you can create music with it will do (I like it more that LMMS, at least on Windows). I created all the music you can find in the game with Podium and with free VST instruments/plugins.
  • Inkscape is great for creating programmer art. And it's also free. A guy named Cris Hildenbrand runs an awesome blog with tutorials on how to create decent looking game art with it. Also not having a retro-inspired pixelart look can be a unique selling point for indie games nowadays.
  • How to use Lombok in libGDX. Project Lombok is an awesome tool/framework/addon/whatever that lets you replace dumb boilerplate-code like constructors, getters, setters with annotations. I created a tutorial how to get it to work for desktop and android.
  • How to use Java 8 lambda expressions with android. I created a tutorial here.
  • ScreenToGif is an awesome, simple tool for recording your desktop/application and outputting a gif.
  • I totally suck at time management. Also it's sometimes really hard to motivate myself to work on the project. I already knew that (at least I should have, looking back at my time at school or during university) but I got some proof for it again. Welp.
My plan for the game is to develop it fruther in a private repository, add way more content, more / nicer assets and release it commercially on PC and Android later this year. The jam version will still be available free of charge on my page.

No comments:

Post a Comment