Now that the Blender series is finally complete ( phew, that sucker got long! ) it’s onwards and upwards to a new project. This will be a closer look at LibGDX, which I suppose will be a tutorial series of sorts. I say of sorts because I really don’t know enough about LibGDX to claim any kind of mastery. In fact, I’ve barely even used Java in the last decade, so I’ve been recently polishing up my Java skills.
As a direct result, you aren’t going to see best practices by any means. Sometimes though, this is ideal, as I will have gone through exactly what you are about to go through if you are starting out learning LibGDX. There are a number of tutorials out there on LibGDX right now but I see a common complaint or comment when it comes to LibGDX… “it’s too complicated”. This isn’t really fair, but I can completely understand where this perception comes from.
On the one hand, LibGDX is somewhat complicated simply based on what it does. Supporting a number of platforms at once is bound to be complicated. On top of that, it is built over tools that are exceedingly complicated ( I’m look at you Google! ). Fortunately, the LibGDX team do a wonderful job of taking care of that stuff for you, so don’t let that turn you off. Another problem with LibGDX is, it provides multiple abstractions to work with. This means you can work as high or low level as you want. This is great but can make things a bit confusing. Want a camera? Great! LibGDX has one. Don’t want to use it? Great! You don’t have to! This kind of stuff though isn’t clear on first approach.
Another problem, and I am not sure if this is Java or Java programmers, but there is a tendency to engineer everything, some could say over-engineer everything. Proper delegation of behaviour, good OO design, etc… When it comes to tutorials, especially beginner oriented tutorials, this is a mistake. A tutorial should be as clear and concise as possible, even if it isn’t pretty. Having users dig across a dozen classes to grok a simple concept certainly isn’t conducive to learning.
So, that is what I intend to accomplish. To create a beginner friendly, thorough but comprehensive tutorial series covering LibGDX. Just be aware up front, some of my code may be ugly and some of my LibGDX usage may be less than ideal. I am not writing it to be pretty or fast, I am writing it to be clear. At the end of the trip though, I hope what I create is truly useful and makes LibGDX a more approachable library for game developers out there, as it truly is a great one.
Oh, I am also working on a game project too, very possibly using LibGDX. Hopefully I can share details of that project as it gets further along.
If there is anything specific in this series you want to see covered, let me know!