Help for a Beginner

Started by Admiral, April 10, 2013, 19:52:05

Previous topic - Next topic


Hello everybody,

before i start my series of questions i want to give you a little overview about what i already know.
I am programming Java since 3 years now and Java is my favourite programming language and I would say i am not that bad, however i have no experience with real world projects as i am just a student.
In addition to this i am learning C# since September.

BUT i have no experience at Game developing at all, as this isn´t taught at my school.

My dream was always to write my own game, this was also the motivation to go to an IT-school for me.

Now as i have programmed for a while i want to tackle my first game.
I have a vision of a 2D multiplayer game, but i know that it is a long way to go.

I have looked at many different libraries and techniques in which i should write a game. I even considered other programming languages than Java, but as Java is the language i like most and i have to most experience with i decided to do so(and want to show that YOU CAN program games with Java).
It was clear to me that i wanted to use some kind of technique that would allow to use GPU resources.
After some research i decided today that i want to use LWJGL.

So, now i want to start with my questions:
1. Is LWJGL a good choice for a beginner like me? ( I know about frameworks like LibGDX or Slick but i am not sure whether i should use a framework while not even knowing the basics, in other words, what the framework does)

2. This might sound dumb, but i wondered for this such a long time:
When writing a 2D game, is then a texture the same as an image? And is it used in the same way?

3. Another thing i wondered is:
Let say i have a game where at the beginning is a kind of overview screen, that shows your account stats and in this GUI would be a Button to really start the game.
Would it be a good/normal way to write the GUI with swing and "just" use LWJGL for the real game(when the player clicks on the "start"-button a new window would appear)

4. I want to make a good 2D game and AFAIK good/nice-looking 2D games use different pictures(like taken from different angles) of, for example, the player.
So would that mean, i have to create a 3D model(Blender?) and then take pictures of that model from different angles? Are there any easier ways?

5. If i should stick to LWJGL, i think i am gonna have the biggest problems with OpenGL and ByteBuffers, Shaders etc. - they are confusing me even right now.
Are there any good tutorials, that not only show you how to call the method, but also teach you what, for example, ByteBuffers are, how they work, when to use them and so on?

I have many more questions, but that should do it for the time being.

Thanks for reading that really long post!

I appreciate any answers, hints, tips. :)

best regards, Lukas

Fool Running

1) LWJGL is usually not a good choice for a beginner (especially if you have no game development experience at all). On the other hand, if you want to handle the tough learning curve of learning LWJGL, then you'll be able to apply what you learned long-term (instead of learning something that you would need to un-learn like starting with Java2D). A good middle-ground might be to start with something like Slick and use that until you are ready to see how it works under-the-hood and then switch to using LWJGL.

2) Yes and no. Textures can be applied to a polygon to make them look like a 2D picture. However, textures can be used for much more - like storing data that can be used during drawing and even 3D textures for other things, so they aren't necessarily images that would make sense to a viewer.

3) Typically, you would want to do that all inside your game (instead of bringing up a new window). Usually you'll have to show some kind of GUI anyways for score, health, etc.

4) You can do that, but a lot of 2D games are just hand-drawn. When just starting out, you might want to consider just getting a simple square or something working first. ;)

5) There are a bunch of tutorials on the web (Google is your friend ;D).

6) I would suggest starting by making a really simple real-time game. I think my first real-time game was a block shooting lines at falling blocks written in QBasic. That probably dates me a little bit... :P
Programmers will, one day, rule the world... and the world won't notice until its too late.Just testing the marquee option ;D


Thanks for your answers!

With no Game development experience, i didn´t mean that i didn´t write a single little game, i rather meant that i didn´t write a game of the size that the game i want to develop will be.
Of course i wrote some simple games in Anroid, XNA some SWING/AWT & java2D stuff.

It´s just that OpenGL and all techniques that come with it are new to me. :)

I decided to read some tutorials on OpenGL, Textures, ByteBuffers etc. first.
Then i am going to write a simple game both ways, one time using "only" LWJGL and one time using LibGDX.
I hope to learn the differences and pros and cons of both ways by doing this.

After writing this simple game i am going to decide what i am going to use for the game i want to develop.
Is that a good idea?

Is there anything special i should know about when starting game dev.

best regards, Lukas