A roadmap for someone who knows just the language

Hi.
Just discovered this forum like yesterday. I have done Java programming (not professionally since I am still in Middle School :slight_smile: ) So I have been wanting to make a game and some of the things that I have ended up observing is that :

  1. Either go the OpenGL route, which takes pretty long time to get a coloured triangle up on the screen and the maths is a bit too deep for me, though I can grasp bits and pieces painlessly.
  2. Choose any one of those libraries.
    Now I might sound weird but I am looking for a solution that’s neither as shallow as Love2D nor as deep as DirectX or OpenGL or Vulkan for that matter. This led me to another tunnel : making games using the Java standard library. Not bad, I mean, not bad if a guy like me is not landing a production ready AAA game in 2 weeks. So how do I start ? Is there like a roadmap, the sort which you get when you learn a language (like syntax, then variables, then loops…) ?

PS:I think I rambled but I wanted to explain myself clearly as I have been API and language hopping for more than a year and most of the times, come back in circles to Java.

It’s not very hard:
https://jogamp.org/wiki/index.php/Rudimentary_standalone_example_using_the_fixed_pipeline_by_Julien_Gouesse

:slight_smile:

1 Like

If by standard Java library you mean using Swing or JavaFX, I think each has it’s pros and cons, as well as quite a few obsolete tutorials floating around. I think JavaFX is a better, saner route of the two for a number of technological reasons, but it can be tricky to set up initially, now that it has been split off, and there were a fewer guides and tutorials written for it compared to Swing game programming. The best reference I know for setting up JavaFX initially is through openjfx’s documentation. I and others here would be happy to help you get it configured and running, if you present questions here.

If you do decide to try JavaFX, I wrote a guide to getting started, as a way to help myself get a better handle on the basics, like how to implement a game loop and understanding the scene graph and a simple cases of reading mouse clicks and key presses. I think it’s long overdue for a rewrite, but I’m stretched pretty thin. I’ll be happy to reply to any questions on problems or stumbling blocks you encounter if you decide to try it. Maybe through this, we could end up with a more current beginner tutorial for game programming with JavaFX.

I haven’t looked at @gouessej’s jogamp tutorials, but that should be well worth considering, if you want to stick with OpenGL-based libraries. I know he has done a lot of good work solving many of the issues involved and is responsive when there are questions. I’ve not had much experience with OpenGL type libraries myself beyond getting toes wet, as I haven’t really needed them for the audio-based tools and applications that I have been focused on.

If you really want to use Java in gamedev, use java gamedev framework/toolkit/engine. I use libGDX. It’s mature now. Don’t waste time for low level tech like OpenGL. You don’t need it as a game developer.

If you want to make a game engine - it’s a different thing. If so - drop java, go C++ with OpenGL/Vulkan.

But honestly - if you are in middle school and you want to make games - learn some other tech. Go Unity for example. Java, right now, is not the best option to make games. Many developers uses it only because they live with the java environment all the time and they don’t want to leave it

1 Like

IDK, I found Unity kind of stultifying. It doesn’t take long before the “pre-fab” nature gets in the way of creative coding. Coding with Java has a lot of side benefits, e.g., hands on with design patterns and multi-threading. I like the ability to tinker with ideas that haven’t been templated yet and where the templates aren’t herding me down the same chute everyone else is traveling.

Of course, it’s very much a YMMV world, and everyone will have opinions.

1 Like

When things don’t work as expected, knowing a low level API when using a framework based on it can be useful to work around the limitations and fix bugs. The level on which you focus is obviously a matter of taste. Even mature frameworks have bugs.

1 Like