Where to start learning?

Hey everyone. I am very interested in learning 3D game development, specifically, Java game development. As of now, I have a pretty good understanding of the Java language, but I know NOTHING about game development. First I was going to try to learn use LWJGL, but then I came across this and it looked nice. Im assuming this is a lot easier than LWJGL? But, basically, I know nothing about game development and need a place to start. Any suggestions? Thanks guys!

Our documentation, its giving a primer on all topics, has lots of links and examples and goes down to all the details about the engine as well :slight_smile: Just press F1 in the SDK or click the “Documentation” link at the top of this page.


this is based on LWJGL, and it’s easier, yes. Also it’s better, because of perfect shader material system / etc.

Like normen said, you can read all Documentation



and more.

There are basics about Scene Graph / Update Loop(with controls) / Materials / etc.

But not everything is there.

You also need to know tools like Blender(or 3ds) / Gimp(or photoshop) / (something to create music/sounds).

The better experience with that tools, the better standard assets of game.

If you want to be advanced user of JME, then you need to learn:

  • Multithreading
  • Writing own Shaders
  • Entity System(especially for MMO games, but not only)
  • Advanced networking(if you want to make multiplayer)
  • And more.

I didn’t know anything about making games, and knew little java when i started with jME, the tutorials/wiki/jMETests will teach you about ~85% of what you need to know to make a decent game with all the built-in features, and its all very well made!! for more advanced topics, the rest can be found, by additional research, reading forum posts, books etc… depending how far you want to go.

@wezrule said:
I didn't know anything about making games, and knew little java when i started with jME, the tutorials/wiki/jMETests will teach you about ~85% of what you need to know to make a decent game with all the built-in features, and its all very well made!!

Yeah, trail and error ftw! But still not all the time XD

The jME documentation is really good and filled with easy tutorials. So for making a 3d game it is a good choice. But in my opinion you should ask yourself some questions before trying to make a 3d game:

First of all is it like “Hmm, I have a great idea and would be cool to make a game” or “Yea, I really want to make a game and want to learn about that”, because unfortunately making a good game is more hard work - espacially brain fuck work solving perfect data structure or game logic problems - than fun work like adding cool features and cool looking stuff as you might think.

Next your vector and eventually matrices math should be good. Do you have expierence with openGL, cameras, views, perspectives and much more important a scenegraph? Afaik the scenegraph is the main idea of jME and one reason for making it easier than only using lwjgl (jME actually uses lwjgl as java openGL interface) as it is a framework that solves many common problems. Have you ever made a simple console/2d game or realtime application?

Of course you can directly start with jME and a 3d game but concerning motivation you should maybe start with something more simple to learn the basics of game developing and finish a project (that just feels better). Also many problems you face in 3d game developing are the same with or at least easily portable from 2d games or even console games - games at all. And it is often easier to concentrate on these and understand them in contrast to struggling with 3d graphics at the same time. Every dimension can make a simple problem much more complicated.

I started with a console version of MasterMind, then I made a version of Quarto(kind of 4 in a row) with a 2d gui followed by a 2d 2 player networked board game called “Rosenkönig”. Then I started with a 2d realtime game and after 2 relatively simple 3d realtime applications I started my first 3d game project 2month ago.

I dont want to claim that you have to do it that way but for me it was a good way to get to know different problems like network, ai, graphics, game loops etc. step by step without getting overwhelmed by complexity and throwing away my dream. This gave me a good feeling on how to solve different things and what you have to think of if you dont want to program like hell and then recognize you cant achieve your goal. That can be quite disapointing.


I dont know how expierenced you are in other programming techniques. But it sounds like you are at least new to realtime and game developing. In this case I would suggest to start with small things that are affordable so you dont get discouraged. Exaggerated it feels better to make a working console version of “3 in a row” than a not finished version of StarCraft2 or something.And you will learn much more.

Things to consider for 3D games - AFAIK

Optional (depending on what you plan):

  • Network (syncronisation, reducing transfer data)
  • Artificial Intelligence (there are many algorithms from relatively easy to the craziest and weirdest stuff)

  • Have an idea on how computer graphics work, some kind of rendering (openGL, DX; with jme openGL would be good)
  • Game Loop at all (how do realtime applications work)
  • Multithreading (at some point you most likely have to use threads…god i hate threads…they are making everything even more complex but fast in exchange)
  • Data structure (most needed - least possible; but well thought out it can be magic to your game)
  • Path finding and search algorithms (mostly needed for AI but also important for checking legal actions and optimization at all)
  • Physics (whether real or fiction – important to make the gameplay feel fluid, can be fiction but should be self consistent and kind of intuitive to learn)
  • Controls/GUI (Hell, games with bad controls just suck so much, even best graphics, story or complete new concepts cannot fix that)

    Things you need to make it look good and the artistical parts:
  • lighting, materials, textures, models, possibly shader programming, (A feeling for good looking things and compositions)

    And to finish this I think a simple, low lvl, low graphics game that is well thought out is much better and more fun than any game that just tries to implement newest graphics but fails with the controls, game logic, bugs …whatever.

What @xeratos said should be on the wiki as the first tutorial. It was very well put and I agree totally.