Hello JGO!!

Hello everyone!! This is my first post!!
I want to create games as a hobbyist first, I am intensively studying java for that but I only know the basic, but I want to know the concept of game development to apply in any language.
I made a schedule for my studies: Basic Java > Advanced Java > Java 2d > LWJGL. But I sense I’m forgetting something.

Please, tell me your opinion and your experience in game design, unfortunately I don’t know anyone who program games.
Sorry for my grammatic, I’m brazillian and don’t speak english natively.

Hey jDragon and welcome to JGO!

This post should explain the situation and basic road map using Java.

Good luck! ;D

You know what… you are the best english speaking brazillian I have ever seen, and I play a lot of MobA-games which are flooded with brazillians. ;D

I’d recommend the following:

  1. Don’t use Java2D at all.
  2. Don’t use LWJGL unless you are unsatisfied with higher level APIs like Slick, LibGDX, Rabbit Engine, etc.

:slight_smile:

OpenGL is not all that fun for somebody who’s new to programming. Once you are a good programmer, then you can revisit LWJGL and spend some time pulling your hair out as you try to understand the beast that is GLSL and OpenGL… :o

Can you elaborate on why he shouldn’t be using Java2D?

I didn’t even know they had internet down in Brazil, I thought you guys just lived off of dancing salsa, taming monkeys and stuff.

Anyway, I hope you have a great time here, the community is very open to newbies, of all around the world.

Java2D isn’t bad to use while your learning. LWJGL or a higher level API is a matter of preference and how much you want to know about what goes on. As for revisiting LWJGL, the OP said this:

It was discussed in this thread. Kappa sums it up well here.

If you are indeed serious about game development, just skip Java2D and head straight for an OpenGL-based library.

[quote]As for revisiting LWJGL, the OP said this
[/quote]
Using Java2D won’t prepare him for LWJGL. At least with Slick he is a little closer to OpenGL, and if he chose LibGDX then he would be very close to OpenGL (LibGDX is more tied in with matrices, frame buffers, textures, etc).

Really? Thank you :slight_smile:

Thanks everyone for the welcome and the tips. I did some applications in java but nothing like a game.

I really don’t understand all of the hate on Jave2D for a starter :o

I would recommend starting with Java2D. It has all you’ll need for just starting. Once you start to get frustrated with it not being able to do higher level stuff, move on to Slick, LWJGL, or JOGL.

| Nathan

Why waste your time pulling your hair out with Java2D only to find out that you need to start all over again from scratch, using a different library? Meanwhile, you could have spent that time actually making a game in LibGDX or Slick2D, rather than fiddling and copy + pasting game loops, JavaSound hacks, alpha composites for transparency/blending tricks, etc.

I’ve been developing GUI software at work with PyQt, and I’m beginning to realize how much time I wasted with Swing/Java2D that would have been better put to another library… :persecutioncomplex:

Did you learn anything while using Swing/Java2D? It’s not so much about wasting time with a useless library, it’s more about a newbie learning basic game design without moving on to more complex tech like OpenGL.

So what do you reccomend for someone new to java that would like ot make 2d games such as pong, breakout, tetris up to a Mario bros style game later on?? i was reccommended Java2D to get a feel for game design and them move on once i am comfortable

I would recommend Java2D for the pong, breakout and tetris games - such simple games don’t require much and Java2D works perfectly fine no matter how badly you use it. For the mario type game it would be more of a challenge, but along the way you’ll probably have learned enough about Java2D to make it happen anyway. I take example from this excellent remake of the classic Gods done by an internet buddy of mine:

http://jotd.pagesperso-orange.fr/gods/index.html

Web design not indicative of the game quality :wink:

[quote]So what do you reccomend for someone new to java
[/quote]
I’d recommend using a game library (Slick2D, LibGDX) rather than a graphics library (Java2D)… It’s really as simple as that. You will save yourself a lot of time and headache. :slight_smile: If you don’t believe me, try writing a breakout clone in both libraries, then decide for yourself.

Honestly I feel like the only people recommending Java2D are those who have never developed a game in both Java2D and Slick2D/LibGDX, or are simply so accustomed to Java2D that they are too lazy/scared to learn something else.

[quote]Did you learn anything while using Swing/Java2D? It’s not so much about wasting time with a useless library, it’s more about a newbie learning basic game design without moving on to more complex tech like OpenGL.
[/quote]
After a year of Swing/Java2D I had learned a lot about programming and OO design. I would have learned the same had I been using Slick, LibGDX, PyQt, or what have you – the only difference is that I would be gaining experience with a library that I would later use, as opposed to later not use.

Regarding “more complex tech like OpenGL” – Slick hides OpenGL.

I’d recommend using a game library (Slick2D, LibGDX) rather than a graphics library (Java2D)… It’s really as simple as that. You will save yourself a lot of time and headache. :slight_smile:
[/quote]
A tool can only help you make a job easier if you already know how to do that job. Blindly recommending people to use game libraries is easily said when you’ve already been through all the hard work yourself.

There are always multiple perspectives on the same subject, yours doesn’t have to be the only correct one. Perhaps you’re only sometimes right.

you will probably all disagree with me, but I personally like java 2d. I have used slick as well, and slick is awesome but as I stated in another thread I like having more control over my program, and that control is simply not available in slick.

I in general avoid all those engines, libraries, etc. because I want to learn the things that they hide. The only case where I use a library is kryonet because its awesome, and I could never function without it.

I personally think this is a good order of development:

Java2D->Slick->Java2D

it lets you learn the basics with java2D, then you can put them out of the way with slick and learn complex stuff, then combine them back together with java2D.

@h3ckboy
back to java2D? I don’t think anyone who has used Slick want to do it, except for 4K.

I did, maybe I am just one of those people who needs to it all himself, but I personally prefer java2D, although to be honest one of the main reasons was that then I wouldnt have to sign my jars :).

[quote]A tool can only help you make a job easier if you already know how to do that job. Blindly recommending people to use game libraries is easily said when you’ve already been through all the hard work yourself.
[/quote]
Java2D is a tool just like any other; and you’ll still need to learn how to use it, except it will involve writing/learning a lot more to achieve the same thing.

If you are really set against using a game library to write a game (i.e. you want to write your own game library), then at the very least you should be using JavaFX over Swing/AWT/Java2D. JavaFX is the “new standard” and Swing/AWT/Java2D will only continue to exist for legacy/compatibility reasons.

This is just my own opinion, based on years of experience with both Java2D and Slick2D, and years of watching beginners struggle with Java2D only to find out that it does not suit their game’s needs.