Progressing from General Knowledge to Game Programming

Good evening folks!

So lets just jump right in; I have a general knowledge of pretty intermediate Java programming. However, none of it is geared towards game development, as I generally make utility applications.

Where might I start to specifically learn game programming, preferably with LWJGL? (LWJGL because I like to learn how things work before I use higher-level alternatives.)

I appreciate the (future) help!

Definetly look up theCodingUniverse on youtube, he has some amazing LWJGL tutorials!

Really, for game programming you just need general knowledge on things such as file handling, networking etc… But you’ll need to also learn a graphics API. Besides that, a creative brain really is a good thing!

Its pretty fun making games, but its also very time consuming and frustrating at first, especially if you are learning graphics programming at the same time!

Good luck :slight_smile:

File handling and networking are some things I already have experience using. Learning graphics programming is one thing I have a rather hard time working on, but I’ll give it a shot.

I’ll take a look at that YouTuber, thanks mate.

If you haven’t worked on game networking, you don’t know what that is. It is really annoying. You should check out thecodinguniverse, thechernoproject, ludum dare entries from Notch.

What I don’t think a lot of people understand is that the ability to program different types of software is completely unrelated to how well you know a programming language and programming logic. If you want to make a game, you need understand the mechanics of a game. You can’t program what you don’t understand. At the end of the day, a game is just another program.

As far as graphics programming goes (LWJGL), I think most people here don’t quite understand it. They follow tutorials that show you how to use an API like LWJGL, but not why you are doing what you are doing to get your end result. Once you understand the premise of programming graphics, you could just right into the LWJGL API and have at it.

So, in conclusion:

Learn how a game is structured (ie: Learn about game loops)
Learn how graphics are programmed

Things like level design, making sprites, gameplay, etc. just comes with imagination.

I found Tamas Jano’s tutorial series on libgdx very helpful when I first started out. Granted it’s not LWJGL, but what really makes the tutorial shine is the emphasis on code design/architecture.

http://obviam.net/index.php/getting-started-in-android-game-development-with-libgdx-create-a-working-prototype-in-a-day-tutorial-part-1/

All the advice regarding watching videos on Youtube and looking at other peoples code isn’t the correct way to learn in my opinion. I entirely agree with Troncoso. Doing that makes people learn how to use the API but not how it works.

LWJGL is what you’d call a higher-level alternative if you’re talking about it difficulty wise. My advice would be to start off learning how to create games in Java2D. Start off with learning the basics such as setting up the game loop, collision detection, animation, then consider moving on to LWJGL. As someone who is learning LWJGL at the moment, I have to say that it’s hard to find good quality tutorials on how to use the API but that also explains why you’re doing what you’re doing.

Good luck.

Just to avoid confusion: It is not. LWJGL is basically only a wrapper from OpenGL in C to OpenGL in Java + Windowing / math libraries (& cross-platform-code).

Java2D uses OpenGL in one of their implementations, and therefore is higher level.
When using LWJGL you have to write your own game loops, collision detection logic (even more than with Java2D) and animation logic.

Maybe you are confusing LibGDX with LWJGL.

I misinterpreted it. I thought the OP meant difficulty-wise. Thanks for pointing that out.

Sorry, but I have to disagree with the theory that you shouldn’t use all available resources to learn. Looking up videos on YouTube is perfectly valid. Its how people use that information that either helps them, or just makes them a copier. If you use the information given to you and research and learn it, then why is following tutorials bad? The only way you could make it bad is if you just copied code and that’s it. When I first started learning OpenGL, I had no clue how to do anything. Most tutorials on the internet are really not newbie friendly, so I turned to YouThbe and found some great videos, which I then used and now today sure, I don’t know everything, but I can make games now, which is something I couldn’t do a year ago.

Don’t discredit videos because people copy, its the viewer who has the choice whether or not to learn from the video.

I find that the best way for me to learn something like a new library, which is essentially what you are doing right now, is to pull a Nike. Just do it.
However, that might not be your style. I suggest that you try many different ways of learning and once you find one that fits you well, stick with it and you’ll learn so much.

I agree, check out thecodinguniverse’s channel, and if you want to learn a bit of libGDX check out dermetfan’s channel on YouTube. He’s a great guy and has very nice videos IMO.

Well said opiop :slight_smile:
As I said, learn any way works the best for you.

I like those voxel vids opiop, please continue!

I’m not discrediting videos. What I’m saying is that even though you can learn how to use the API, you rarely learn why you’re doing what you’re doing. If you want to learn by watching a series of videos then that’s your choice, but to understand why the code you’re either typing/copying works then you’ll need to do a lot of further research. I do occasionally watch videos myself to get a basic understanding of how to use something, but I feel that telling the OP to watch a video series on Youtube can be slightly misguiding because it comes across as if they won’t need to do much work.