I'm desperate

Hello. as you can probably tell, I’m new here. Please do not send me hate mail. If I am doing something wrong by posting it, please tell me in a civilized manner.

Anyhow, I am in a rut and I’m so frustrated. I come from a Python background and I understand core Java well. I want to try to make a game (specifically with lwjgl), it’s something I’ve always wanted to try, but I have no clue where to go to learn. I want to learn the process of game development (i.e. how a game loop is constructed, where it goes, how a paint method is constructed, when to make what where, etc…) All the YouTube tutorials I’ve watched are either incomplete, move way to fast, the person teaching them can’t explain stuff in beginners terms, or they’re 10 minutes of “umm…”. I’ve tried online written tutorials, but they don’t explain in beginners terms. I’ve tried finding a good book but most forum posts on good books are full of conflicting opinions, people praising some books with others bashing the same ones. There is no programming course at all at my school either. So I am desperate, about ready to quit. >:( :’(

So what I want to ask is how did YOU learn game development with Java? I need to know the secret. It seems like hundreds of people learned this stuff no problem and here I am searching high and low for a GOOD tutorial with no luck. Any help at all would be VERY much appreciated. :slight_smile:

Have a look through the articles and tutorials section here.
For instance the page on game loops: http://www.java-gaming.org/topics/game-loops/24220/view.html

Also, I have to advise not to try and start out with LWJGL. If you don’t need 3D or high performance, Java2D is your friend, esp. as a beginner.

Don’t make a game as your first project… Really a bad mistake.
I know allot of people don’t like me saying this, but learn swing. It can teach you ALLOT about Java and it’s syntax (Swing is Java’s 2D UI system). Nothing will teach you as much as experience does. It’s better to learn programming concepts and patterns than learning a programming language.

Here’s a Object Oriented Software Design playlist, it will teach you allot about Java/OOP Programming in a beginner friendly environment.

Stop watching youtube tutorials on Java specifically. As I said before, it’s really great to learn programming concepts over languages. Pick up a Java syntax book, yes. But after you know the basics of Reflection, Abstraction, Inheritance, build off your knowlege and make some cool test applications. Even if its just System.out calls.

The cold truth is there is no secret. Knowledge comes from books, experience comes with time. Overwhelming yourself is a super easy way to burn out quickly. Start slow, ingest as much information as you can, and keep programming. :wink:

There’s really no secret to it :slight_smile:

I learned by first making a small tower defense game with java2D which I believe is still on this forum. Then I went on to LWJGL and jMonkeyEngine, and then I programmed my own engine w/ LWJGL. If I were you, I’d look this up on the forum using the search bar in the top right, we’ve accumulated dozens of these threads over time. Good luck!

By the way, your name is possibly the best online alias I have ever seen.

I don’t think you can easily pick up the skills in just a few tutorials. If you have the mindset that you can quickly learn how to make games, then move on to make a big, awesome game, you’ll end up getting desperate. I didn’t completely understand everything when I first started by following tutorials, but I tried many different tutorials which explained things differently, and that helped.

I used these tutorials for Java2D game development: https://www.youtube.com/user/Ulixava/playlists

Then moved onto Slick 2D: https://www.youtube.com/watch?v=AXNDBQfCd08

And finally Libgdx: https://www.youtube.com/playlist?list=PLXY8okVWvwZ0JOwHiH1TntAdq-UDPnC2L and https://www.youtube.com/playlist?list=PLXY8okVWvwZ0qmqSBhOtqYRjzWtUCWylb

I understand your frustration when you can’t keep up with the tutorial, but just stick to it and you’ll get it eventually. It does take time. What I think helped me the most was, after learning from tutorials, making my own game (different from the one in the tutorial) from scratch, applying what I learned without copying the code.

It also helped that I had a friend who’s good at programming, and useful forums like this one :P, to ask when something didn’t make sense.

Thank you for your reply. My issue is I don’t even know where to begin with programming a game. Believe me I’ve tried just starting to write a game and learn that way but I need to know something on making a game in order to start. And thank you, I’m glad you like my name. ;D

Trying to make a game can be difficult if you have no idea how to go about it, however, making little interactive game-like programs can be very helpful for learning some tricks.

In my first few days of learning Java I learned how Java worked by poking around in pre-made java projects :persecutioncomplex: that I deemed fun, I had the desire 8) to edit things in the project so I started poking around in the source code, changing certain values that were obvious (false/true, numbers, letters etc), looking up what I didn’t understand (Strings, Doubles, for loops etc) on google and JavaDoc.

BTW: Google is your friend, I didn’t find much use like you said from YouTube videos. :expressionless:

Learn by volunteering for some existing project, where you can absorb the gestalt
while doing something useful.

This is what got me into programming.

I would also not try for a game straight away, but I would still try and experiment with the components that make a game. If you are interested in making a 3D game you might want to learn 3D first, learn how to program sounds etc.

For 3D http://www.arcsynthesis.org/gltut/ have a good set of tutorials (they are in cpp but should be easy to convert to java, I believe someone in this forum has already done it)

The general LWJGL concepts can also be found on the LWJGL wiki

Once you know about the core elements you can then learn an engine (libgdx / jmonkey), by knowing the core components (some listed above) you will understand more about what the engine is doing.

My basic advice is start basic and build up your blocks of knowledge. Once you are comfortable you can move those blocks in to game like situations and then slowly make what you want

First off, as a semi-noobie to this forum myself, let me just say that you can expect to be treated with utmost respect here on this forum! :slight_smile: So you need not worry about hate mail or having people treat you in an uncivilized manner for asking beginner questions. This place is beyond awesome!

Second, as has been mentioned before, you might be better served getting familiar with Java before diving head first into a game. You say you have a hard time following tutorial videos, but maybe you just need to find the right ones?

TheNewBoston on youtube is awesome for beginners because he assumes you know absolutely nothing and then builds from the ground up. Bucky is a little on the goofy side which makes the videos fun. He does have a tendency to mess up typing/spelling (something he constantly jokes about himself), so be weary of that. lol He has lots of videos on Java and some on game dev.

This is another series of Java videos that is highly recommended here on this forum. He sells courses on his site, but the intro to Java course is totally free:

Once you have a good grasp of the core language, then expanding into more complex gaming topics and graphics will be a lot easier.

And finally, when you do get into developing games, it helped me a lot to simply follow along with tutorials showing how to make simple games like pacman. Even though the app I’m working on has absolutely nothing to do with pacman this really helped in understanding gaming concepts like game loops, painting, sprite animation, etc. then you can just keep getting more and more in depth and complex from there.

Hope that helps.

try and error.

… and the warm comfy satifaction when achieving the simplest things, like drawing a point. which means, self-motivation and balance.

Sounds like you need to think a bit more about what exactly you want. Why the desperation do to these particular obscure things?
Development != game loops != lwjgl != paint methods != Java even.

In fact I’d really be interested to hear more about other people’s motivations to develop games in general - can anyone point me to good historical JGO threads on that? Is it just a job, or a creative outlet, or because games are cool period?

FWIW my motivation’s that the games I play are never quite right; there’s always at least some part of the design that’s wrong. They could always be funner. So, I plan to make the perfect game, simple :smiley: Also FWIW I have no major interest in lwjgl or LibGDX or vertex buffers or all that shizzle most of the talk’s about on JGO. But I still enjoy coming here, don’t worry too much that knowing such stuff is a passport to any kind of inner club or anything :wink:

It probably would help if you’re already familiar with Java before doing game dev, but I went into game development before I had a sound understanding of the basics. I picked up bits and pieces of Java as I learned game development, looking things up as I went. I still remember creating my own swing applications and Java2D games without knowing what “extends” and @Override public void run() meant, and I struggled to understand even after looking up tutorials.

If you know Java as you stated, start by making a text based tic-tac-toe game against cpu. When you are done, use Swing to give it a visual look. Start simple.

One more thing, it’s not always clear in every aspect when you follow a tutorial but the more you do and try enhancing, you will begin to understand all the “why’s”…

You might consider starting with Processing. It’s built on top of Java, but offers a simplified syntax that lets you get something visual and interactive up and running in just a few lines of code. Definitely worth checking out: http://processing.org/

Shameless self-promotion: I’ve been writing tutorials that take you from knowing absolutely nothing about programming, through Processing, into basic Java, then through Swing and eventually to more complicated things like LWJGL, JOGL, libGDX, and Android development. Might also be worth checking out: http://staticvoidgames.com/tutorials/intro/whatIsProgramming

Thank you all for your replies! I really appreciate it. I feel much more encouraged. Like I said I understand core java well, from my Python background I already understood the concepts of classes, methods, functions, variables, etc. I learned the Java syntax for these things through caveofprogramming’s beginner java series.

My issue was when it came to creating games. I had never done this before, so the concepts were entirely new. I’m going to not use lwjgl. I only wanted to make a 2d game so Java 2D should be sufficient. I’m also going to try TheCherno and Ulixiva’s tutorials. I’ll also try to tweak the source code existing Java games. Maybe even some on this forum? ;D

I appreciate your help, and if you have anything else to add I would love to hear it.

There is a set of tutorials by a forum member that would seem to perfect for your skill level (i.e. know java but not game concepts)

http://www.cokeandcode.com/main/tutorials/

I don’t think it’s been mentioned yet, but you can try ForeignGuyMike. He takes you through the process of creating games along-side him instead of just teaching concepts.