You can find it here:
tiny GIANT planets on itch.io
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.