Getting started with game programming

I have a pretty firm understanding of Java and now I would like to start making games. What do I do?

I’ve been following a lot of different tutorial series on Youtube, but they don’t seem to help.
Where should I go to get myself a basic understanding of developing games? And what next?
Should I use pure Java or libgdx or something like that?

Please fill me up with EVERYTHING I need to know to go in the right direction, because right now I’m totally lost.

Do you want to learn the underlying boilerplate, or get straight to making games? If you want to know the boilerplate, use Java with LWJGL. If you just want to make games, use LibGDX.

Another tip I would say is to start really small and manageable, starting with a game like pong and then work on something like Breakout until you work your way up to complex games, but always finish each step and pay attention to making it look nice (good practice for the long run).

As you work your way up the metaphorical food chain of complexity, every time you find something you want to do, learn fully how to do it and then implement it and carry on.

I’m sure every single person on this forum has their own advice, but this is my personal advice.

Thanks, I want the boiler plate!

But what do I do now? You’re telling me to start small, but what if I don’t know how to make the smallest like Pong. Where’s the right place to read and study?

First, download LWJGL at http://legacy.lwjgl.org/download.php and setup a window and learn how to draw basic shapes using the code at http://wiki.lwjgl.org/wiki/Main_Page with the tutorials under “Basics”.

Then, look at the sample code for “Space Invaders Example Game” under “Example Code”.

Those links and tutorials should be enough to get you started with some basic games, and you can use the links under “OpenGL 3.2 and newer” once you feel absolutely confident with all of the basic boilerplate code.

Okay, thanks a lot! I’ll dig right into it! :slight_smile:

I’d like to suggest looking at this website: www.staticvoidgames.com which is run by one of the developers here :slight_smile: (Kevin Workman). It has a Pong tutorial, I believe.

I’d recommend starting with something like Java2D, which is simpler than just jumping headfirst into an OpenGL binding like LWJGL then, once you feel confident with that, move on to something like Slick2D, which, despite being outdated, is still a sort of bridge between Java2D and LWJGL to me at least. Then, one you feel good with slick, THEN move on to LWJGL or JOGL. Just my 2 cents.

But, where would I wanna go to learn making games with Java2D? And what should I choose: Java2D or LWJGL?
Please guide me, people!

I would choose LWJGL. Java2D is less geared towards games and more towards corporate software (ie. their complete UI package and complete control over rendering).

You could start trying Libgdx first, since it is much higher level framework and it is easier to see the first results of your code, and once you are comfortable with it, you could try using LWJGL, even though Libdgx might still be a better options than LWJGL in most cases.

I second the Libgdx recommendation. The easiness of going cross-platform, if anything else, makes up for it. At least it does in my case.

You’re going to get a lot of two cents from people, and this is one of those things that 10 different people will have 15 different opinions about. There isn’t any single correct path, so part of it is trying different things out and figuring out what you like the best.

Like others have said, libGDX is pretty much the go-to Java game development library. One of its major perks is that you can deploy as a Java jar (which can be converted to a platform-specific executable), or to Android (or even iOS through RoboVM), or even as JavaScript/html5. The awesomeness of this cannot be overstated.

Some people prefer to work at a slightly lower level, which means more “work” but more control over what’s going on under the hood. Those people would recommend LWJGL (which libGDX is built on top of) or JOGL (which is pretty much just a Java wrapper of OpenGL).

However, all of the above require an intermediate Java knowledge: you need to understand the basic syntax like if statements, loops, etc. But you also need to understand things like OOP, different data structures, etc. For that reason, I personally don’t recommend that you start out with LWJGL or libGDX.

Instead, I highly recommend you check out Processing. Processing is built on top of Java, so you’re learning all the right syntax, but it’s also designed to be very easy to get something visual and interactive (like, say, a game) up and running without worrying about a lot of setup.

Like SauronWatchesYou said, I run a little website called Static Void Games that has a bunch of tutorials designed to take somebody like you from Processing and into Java, with the goal of “graduating” to something like libGDX. You can check out the tutorials here if that sounds like something that might help you.

OH GOD NOT ANOTHER ONE!
You managed to find the forum through google ! Great work!
Now use your awesome powers of searching through the search bar at the top to find similar topics to what you are looking for before posting one. MAGIC many thousands of topics all saying exactly the same thing.

If you want to go learn LibGDX, our developer @dermetfan had an excellent series on youtube.

But as others have already said, you need to have a fairly good understanding of Java before you attempt any of those.

Watch this: https://vimeo.com/105955605

It’s not java but it doesn’t matter - the principles are the same.