Looking for beginner game developer guidance

Hello Java Gaming Community!

I have a base knowledge of Java and i am aware of most of the terms within it. I haven’t made that many projects within Java, basically it has all been small stuff like testing how threads, exceptions and so on works. Now I am looking to try an actual project, and for that I figured making a small game would be excellent practice. Now, I am aware that game programming isn’t easy, but I am eager to learn on my path!

To bring this thread to its actual purpose, I will cut it short. I am looking for some good guides, books or tutorials to aid me on my way. I have been searching around the internet for informations, but honestly I am not too sure if the stuff that I find is worth the time. So anything that can give me a good ground in java game developing would be amazing!

Currently I have been looking at this book:

Thank you for taking your time to help :slight_smile:

I learnt 2D game dev from https://www.youtube.com/watch?v=VE7ezYCTPe4 , but after 14 episodes i was fine with everything and have went on to make that game into this http://www.java-gaming.org/topics/iconified/35090/view.html

Ah thanks, I will check some of the episodes out! - Also, good looking project you got there! Seems fun! :slight_smile:

Thanks :3

Welcome.

If you’re begging, I recommend making sure to keep programming books for reference. The book you are looking at uses Java 2D which is a bit too slow for modern day video games. It’s usually used for testing and basic games. After you have learned some basic game development concepts like rendering and collision, you should look into a game library. A game library uses OpenGL (Open Graphics Library) in an organized way to make game development more efficient for you. Because you are using Java, you would need to look into LWJGL (Light Weight Java Game Library). It is basically OpenGL in the Java language. Keep in mind that LWJGL is not a game library. You would have to learn some pretty complex math such as vectors and matrices. Game Libraries are made using this (OpenGL/LWJGL) graphics library to avoid having to learn those intermediate topics.

It is usually recommended that you use a game library before learning OpenGL/LWJGL so you get the basics of game development. If you want an up to date, high level game library, I recommend LibGdx.

As for learning, keep a few Java books near by, take some time to figure out your problems before asking, and be very clear about any questions you have. Remember, Google is one of your best friends as a programmer.

If you’re just starting out, I highly suggest looking into Processing. It’s built on top of Java, but it’s designed to make it very easy to get something visual and interactive up and running in no time.

From there you can work your way up through Java and eventually on to more complicated things like libGDX, but for starting out I highly recommend Processing.

Shameless self-promotion: In fact, I’ve written a series of tutorials that take you from the absolute basics in Processing, through developing your first game, and on to Java. They’re available here: Static Void Games

Thanks for all the suggestions!

I have been watching a good deal of this series:

There is no use of any form of game libraries in these videos. I know that it is extra work, but is it stupid to even bother with it? Should I just focus on Processing or LibGDX? - Do you have any book suggetions when it comes to Java game developement?

To answer that look up one the millions of threads that are exactly like this one on the forum. There’s a search bar in the top right.

It really depends on what you’re already comfortable with, what your end goal is, your style of learning, etc. It’s pretty hard to give you a one-size-fits-all suggestion, because there isn’t one. What’s “best” is different for every single person.

If you’re asking me for my two cents though, I would really suggest starting out in Processing, and working through the basics. Get a Pong clone working (shameless self-promotion: the tutorials I posted take you through exactly that), and then try adding features to it- powerups, enemies, whatever you can think of.

Then work through cloning other simple games- flappy bird, space invaders, asteroids, etc.

After you have a few of those types of games under your belt, then think about creating your own simple game.

When you’re comfortable with making simple games in Processing, then you might think about moving to Java, and on to more complicated frameworks like LWJGL, libGDX, JOGL. JMonkeyEngine, etc.

Processing is great for getting something up and running very quickly, and is perfect for simple games. Eventually you’ll want to move on to “real” Java, and you might make a few Java2D games just to get the feel of things. You’ll eventually want to move on to something like libGDX (fancier graphics, physics, lighting, deploying to Android, etc). But I wouldn’t recommend jumping right into libGDX, which is why I’m recommending trying Processing first, then working your way up through pure Java and eventually on to libGDX.

So that’s my two cents: if you’re just starting out, try Processing just to get your feet wet. Don’t worry about what comes next until after you’ve made a few simple games. It’s easy to get overwhelmed, so focus on the next goal. If I were you, that goal would be making Pong in Processing.

As for books, I don’t really know. I don’t really learn programming from books very well. I’d much rather follow tutorials!

This particular book by Andrew Davison is good, but has some drawbacks. Also, the content is about ten years old. I would only recommend it for someone who is simultaneously learning the Java programming language and game programming concepts, but not as Java game development text. In other words, the content is fairly rich in Java language concepts and game development concepts, but it doesn’t effectively blend the two. Some may attribute this to the age of the text and because many of these technologies are scarcely used for gaming (Java2D) or have been abandoned for better things (Java3D), but the author’s approach is overly academic which suggests to the reader that he does not have the ethos of a game developer.

I feel obligated to mention that Dr. Davison’s coding-style is not very becoming. It all works and the lessons/ideas are all there, but egad… don’t be tricked into thinking that this is how code should be written.

If you are excited about learning how to make video games and also a little green, this could be a very bad book to start out with. That said, it still has a lot to offer to the maturing Java games programmer.