I have been programming now in php and some java for 11 months today. I am able to proudly create text based games with all the bells and whistles. I want to start learning programming with graphic user interfaces, but every time when I look at a tutorial or one of my books, it just seems very intimidating. I have procrastinated when it comes to learning the more advanced topics because of the intimidation factor. When I play games or use programs I can see logically how something is made. I can "view the code" in my mind. However, when it comes to creating graphics on screen and moving them, my mind wants to explode. I am not trying to create the next Skyrim either. I would be perfectly happy starting with pong and slowly progressing to something like a Zelda game.

The reason I have decided to post, is to explain that unfortunately I feel like I need some guidance, aka hand holding. I am a heavy visual learner. I need pictures and lots of explanation. I would appreciate if someone could post their experiences making this transition and if they could post some of their resources. I have found multiple resources via google, but I feel it is better to ask and someone understand me, then to rely on google for "hardcore programming" tutorials.

Furthermore, I understand there are programming libraries like libgdx, lwjgl, java2d, slick, etc. I would be quite happy to start with something as "simple" as java2d. Anyways, thank you for your understanding and thank you for relating your experiences. It is greatly appreciated.

I would say before you even think of creating a game have a go at just the graphics part of it maybe some user interface if you are up for it. learn up the skills you need and you will find developing much easier.

When I started with LibGDX I remember I had some problems with setting up all the prerequisites. But once you got them all together and LibGDX base project running you are ready to go.

Then you can proceed to Simple Game example. It covers all the basic stuff, reading inputs, moving sprites, collision detection and so on.

It's a rocky road at first but once you have a sprite bouncing on the screen it will pay back.

It's a very rocky road. For someone who hasn't even started learning about GUI's it's a very, very rocky road. If you're looking to start developing games, start off with Java2D. It's very easy once you learn the basics.

As you say you're a visual learner, I suggest Youtube. I've yet to come across any "great" Youtube programming tutorials, but they sometimes help me to get a basic idea of things. Some things that are said in videos are usually wrong, so always research online, ask questions on forums if something is unclear, and/or get a book.

Derek Banas - Misc Series (some advanced stuff like collections, some stuff you don't need to know) - I've not watched many of his tutorials but the ones I have were pretty good

I must stress the point though. Don't just watch videos. That's the trap I've seen people fall in to. They watch hours of videos then they realise they've forgot everything at the end. Research online, ask questions on forums, check out books, etc. Start with Java2D though.

Start with something like pong, then when you move on, I advise you to look in depth at:

Game Loops

Sub-pixel Rendering

Collision Detection

AI

Once you've got to the stage of being able to make a simple platformer with Java2D, I suggest checking out LibGDX. It's a lot more advanced, as it's a game engine built on the LWJGL so that you can get better performance using OpenGL. Before starting with LibGDX you'll need an understanding of vector maths.

Learn how to do active rendering, which allows fast rendering. A tutorial is available here.

Now that you can understand these concepts, you can try to make your own Space Invaders clone by following the tutorial by Kevin Glass. Be sure to read the tutorial 102 too (in the top right corner of the same page) to get an understanding of how a game is actually done.

By the end of these, you will be comfortable on reading some intermediate tutorials. Now get your hands on the underlying mechanisms by reading topics such as Game Loops. There are tutorials here,here and here.

Now you know how to create a game, try making your own game engine. It can help you learn more things than you think off. Be sure to learn map making techniques like Tiling and Infinite Looping Maps. Don't forget to make different sorts of games, Make pong, breakout, tetris and others to expand your engine.

If you've done all these, you can jump into more advanced topics like 2D Map Generation.

These are the steps I've followed to learn game programming. Here's a little game engine I've written when I'm learning to program games. After these, I leaped into more advanced things like OpenGL which you could learn if you really wanted it.

The author sounds very new, but just watching him put everything together is awesome. When it comes to creating the game loop however, I do understand how that works and what is going on. It really boils down to learning GUI, user input, and AI.

Once again, thank you for your contributions to this thread, all of your words and wisdom are motivation for me.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org