A thing that sticks out to me when perusing the big bad Internet is the potential for creativity. Aside from a few rotten apples like toxic gaming communities, baby boomers sharing pictures of Minions, and spam accounts trying to follow you on Twitter, I believe that the Internet truly is an amazing platform to exchange, build, and share.
When I explore the newest or best engines, I love to come across one that promises and highlights these aspects, and LibGDX is no stranger to them. With LibGDX, the name of the game is free, easy, and creative gaming projects.
While that is fine, is LibGDX worth your time? Is it easy to use? What are the pros and cons? Look no further, game developers, because I have the answers you seek.
Released in April 2014, and with its most recent stable release in November 2018, LibGDX was developed to help creators make games primarily for web browsers and mobile platforms. Like most inventions, it was born out of the idea of making something easier to use.
The creator, Mario Zechner thought that the way that the process and development of Android games were too much of a hassle for rapid development. He tweaked the existing software to make it more fluid to do so, and LibGDX, more or less, was born.
LibGDX uses the great Apache 2 License, which—much like LibGDX itself—is open and free. That means no royalties owed to whatever project you work on. It reminds me of a lot of the famous MIT license that other free game engines such as Godot use.
A thing I kept coming back to in my mind was that LibGDX is the equivalent to a blank canvas. Although intimidating to creators, the blank canvas represents unlimited opportunity and creativity, and LibGDX gives off that vibe.
According to the trailer on their site, you can write your code in:
- Java
- Scala
- Clojure
- Kotlin
- Groovy
It goes on to say that you can use your favorite tools:
- Intellijidea
- Eclipse
- NetBeans
- Jenkins
- Gradle
And finally, upload your work to several different platforms:
- Windows
- Linux
- Android
- iOS
- Mac OS X
The showcase that follows is pretty impressive. My personal favorite is a game called Delver—a dungeon crawler in a great looking 16-bit romp that gives me an idea of what Stardew Valley would look like when you are descending into the depths of the mines, fighting all names of horrors trying to get the best crafting materials.
Another promising title is Halfway, which looks like an insane mixture of X-COM, Doom, Hotline Miami.
Pricing & Donating to the Developers
Like other Internet favorites, LibGDX is free. No pricey packages for different developers, no mountain of DLC, and plugins that will clean out your savings account; just the engine as it is, ready for your project to begin.
Indie game developer Lance Craner says that he uses LibGDX:
“My games are targeted at a niche strategy wargame market that I know well as a consumer and now as a software developer. I use LibGDX and develop using Android Studio. By using LibGDX I can produce games in Java that run on PC, Android, and iOS with very little additional work needed between the three of them.”
Craner released multiple games over 3 years using LibGDX and shows us multiple graphs where he breaks down his financial return. One thing he doesn’t have to worry about is paying for the engine and the license.
Imagine if Craner had to shell out the license fee and costly texture packs? Sometimes, this could make a huge difference, especially for new developers.
Although it is free, I do like to put in an addendum: if possible, you should donate whatever you can to the developers.
The engine is free, but these people work to the bone to make sure you can explore your creativity and create great little games for multiple platforms.
I think this is a compromise that feels better than outright paying for it. Not only does it help them keep the lights on and gives them the motivation and money to keep updating and adding features to the new builds of the engine, but it also connects the user to the developer and builds a better community.
Pros:
So far, you can suss out the obvious benefits to your gaming and development experiences right off of the bat, but do they outweigh the possible cons?
- FREE! (Sorry, I just really like free stuff)
- Seamless performance, especially on different devices. This is probably one of the biggest pros. If you’re making a game like Temple Run, you would want it to run the same on both iOS and Android. This engine ensures that both experiences will have no differences.
- Open Source Code. This is another great pro. With the open-source, users have so much more potential to make great games, as well as having access to many different assets that will stoke your imagination and scratch that creative itch.
- Both 3D and 2D. This is another great aspect that is becoming somewhat of the norm with newer game engines. Of course, you have standards like Unreal and Unity that allow for a slew of options, but LibGDX offers both seamless 3D and 2D interface development. You don’t have to learn a brand-new way of coding or get into a hassle when creating, as the engine makes it simple to integrate both types of perspectives into your game.
- Community and Builds. As you will see in a little bit, the community is a valuable resource for anything on the internet.
Cons:
- Learning curve. Although the services provided by the engine are great and numerous, some have complained that the learning curve may be a little too steep for first-time users. LibGDX does market itself as a user-friendly engine, one that first-time game developers can jump right into, so it’s a bit disappointing that it isn’t a tad easier to just jump right in.
- Documentation. People have complained about the lack of documentation, i.e. tutorials and official PDFs, etc. This could be a problem further down the road if you get deep into development and get majorly stuck on aspects of using the engine. However, the community, as you’ll see, is very active, so not all is lost regarding this.
Tutorial: The Introduction Series & Gradle Build
Chances are that the company itself releases some of the stronger tutorials, or at least has a great support staff that can answer your needs. Enter the introduction series, where everything from the basic requirements for the engine as well as the basics, (toolbars, icons, etc.), are explained in detail.
They show you how to start your project and provide you with some starting code, and the code necessary to post your creation to the different platforms available.
LibGDX uses a build tool called Gradle. Gradle boasts a client list of companies like Netflix, Android, Adobe, and LinkedIn, as well as 7+ million downloads and a spot on the Top 20 open source projects. On that list, they rank at #17 with well-known builds like Linux, Git, and MySQL topping the list.
Hey, if the senior software engineer at Netflix heavily endorses Gradle, there has to be something to it. Gradle lives by three main tenets: Build anything, automate everything, and deliver faster.
Tutorial: The Community: Discord, Forums, etc.
For a more organic and sometimes more educational crash course through the engine, the community surrounding these engines can be an illuminating aspect of the build.
As with a lot of vibrant communities these days, LibGDX has a very active Discord server for real-time chatting, where you can pose your question and possibly have answers from multiple users within seconds.
Additionally, one of the greater inventions on the internet is the forum, and this is no exception with LibGDX. I was floored by the sheer amount of posting on these forums.
With over 80,000 posts in one board alone, it is easy to see that this community is helping each other daily and shows no signs of stopping. They particularly have an active forum specifically for developing Android games using the engine.
Tutorial: Official Wiki
Man, I love wikis. They can be so insanely detailed and nuanced that they can be considered a work of art in and of themselves. The LibGDX wiki is no different.
It has extremely specific articles for different aspects of the engine, which will help you through some potential hang-ups and roadblocks you can experience. This is another sign that the community is alive and well.
The sidebar filled with articles alone is a little staggering and I had to adjust my vision to be able to process the wealth of information being thrown at me. But that’s a great thing.
Tutorial: HollowBit
HollowBit is a YouTuber who walks you through different aspects of LibGDX. He extensively goes over one of my favorite genres: 2D platformer. He explains the coding and the processes, step by step, on how to make a simple 2D platformer. Yes, you can create your very own Mario game if you wish.
He also has other videos that show how to create tiles and other little bits of info that are great for more visual learners, (like me!). That’s why I will always lean towards watching helpful YouTube videos of game development to get a better idea for what you’re doing.
Too many times have people written terrible and lackluster walkthroughs where it confused me more with its lack of information than it helped.
Tutorial: Code and Web
All right guys, strap in. This final tutorial is a doozy. The good folks at Code and Web have compiled possibly the best tutorial that I have seen for BEGINNING to use a game engine. They start basic from installation to the more in-depth aspects. Don’t get me wrong; I love this. I would much rather have detailed info than vague sentences.
I want a step-by-step, following by sub-steps to those steps. I want the nitty-gritty, and this tutorial delivers that and more. The guide starts innocently enough:
“This tutorial is for libGDX beginners, explaining how to create sprite sheets, use sprites in your game and add game physics.”
- Creating a new project
- Using Gradle to import & manage dependencies
- Creating sprite sheets
- Using sprites
- Creating physics collision shapes
- Editing physics parameters
- Using physics in your game”
Guys let me tell you, they do all this and way more. They go through every little nuance that you can think of when creating a project. Coding, sprites, and scaling are just some things you will learn before scrolling down a 1/8th of the page. But again, this is great. This is the definitive guide for beginners.
If you’re starting a project, I would bookmark this page and keep it on hand for whatever possible hang-up you might run into. It’s easy to follow and filled with info.
Verdict
Guys, I knew that I would be recommending LibGDX as soon as I was compiling a pros and cons list. You don’t see many pros outweighing the cons like that, especially not in game design.
Usually, there’s a reasonable ratio of good to bad, but I found it was difficult to actively find glaring cons. Along with the free access to the engine and the Apache 2 license, you would be a fool to not give LibGDX a spin.
I was also surprised by a lot of the sources of help you can access, especially some websites with an exhaustive account of what to do from installation to creating a project and putting it to use.
If your niche is web-based games or mobile titles, this very well may be your weapon of choice when creating your dream project. Not stop reading and go and create!