Programming an online top-down game for newbies - Questions

Hello JGO forum!

I’m new to this forum and actually this is my 1st time posting at a forum, so if i make any mistakes please excuse me and correct me so i learn. :slight_smile: Sorry if my english is bad but i’m trying my best!

Hmm, let me explain the situation:
I’m a student in Computer Science and i will work another student at our graduation thesis : a Java game!
We want to make an Online-Multiplayer top-down 2D with capture the flag concept (2 or 4 players).
We have a deadline until March, about 5-6 months. So, because it’s serious project for us, i will be asking severals questions about this so you can help us! :slight_smile:
We know the basics about Java and we want to read books, learn and start creating as soon as possible.
We are almost sure that we are going to use libgdx as our game engine.
After an online search we 've done, we started reading David Brackeen’s Developing Games in Java (http://www.brackeen.com/javagamebook/)
and then Learning Libgdx Game Development by Andreas Oehlke
http://www.amazon.com/Learning-Libgdx-Development-Andreas-Oehlke/dp/1782166041
and maybe Killer Game Programming in Java.

My first questions are:

  1. Is a game engine necessary for our project? I mean, is it really gonna make our lives easier or harder?
  2. If we ll eventually use Libgdx, what is the best way to start? Start learning about java game programming basics or learning about Libgdx ?

As far as i m reading the David Brackeen’s book, i find it difficult to understand the whole code. I understand the concept of thinking at most times but not the whole code and it’s realy confusing :-\

  1. So what should we do ? Keep reading and experimenting with this book’s code to undestant it or look for other tutorials on the internet?

I know it’s difficult to give me straight answers here, but we would really appreciate an opinion from anyone experienced in Java Game Programming! ;D
Thank you all in advance!!!

1.) Yes, LibGDX will make everything easier. So much easier. It is also much easier to learn that it may seem at the start. + It’s helpful to know, for android/ios reasons… and more. :wink:
2.) I would recommend reading the documentation and going through the starter game.
3.) Keep reading, go through tutorials, and just make small projects to test yourself and learn.

  • When reading or watching tutorials… remember… you aren’t trying to learn how to create what they are making… you want to learn how it works together to make what they make… if that makes sense. *

Good luck to you, fellow Computer Science major. :wink:

Thanks sooo much for this super fast reply !!! :slight_smile:
We will continue reading and practicing and we ll definitely use Libgdx! We also thought of the crossplatform feature and it sounds exciting for future knowledge.
I ll keep this thread open till the game is done 8) so we can ask questions and show problems we may find.

Any suggestions about good tutorials (video or not) would be nice!

No problem, and yes… I would recommend staying active here on JGO. It has proven to be very useful and friendly. :slight_smile: Responses on nearly any question you have are always available.
Anyways, I’d seriously recommend using the LibGDX Docs/Wiki… https://github.com/libgdx/libgdx/wiki/A-simple-game

The docs helped me way more than any video did.

I will suggest first off to put that book on the shelf for now. That book is basically a very long tutorial on how to make a library like LibGDX and then make a few games with it.

If you are confident with the language, then I would honestly say just look at the documentation and go through the Simple Game like the above poster has said.

Fortunately, LibGDX is so high level that you can literally “learn from doing” right off the bat.

However, being realistic, 5-6 month is not a lot of time to create what you have said. Not since you are new to LibGDX, Networking(?) and only(?) know basic Java. So yeah, be careful lol.

I didn’t want to mention it. Definitely going to be a hard task. OP, define your experience level more than just “basic knowledge”. Do you know how to write Java? Or just read it? Write as in actually develop things from scratch… per se.

Hi guys!
These are really good advice! :smiley:
Yeah, it is really a hard task, i know. That’s why i took the effort to ask you, so you can give some advice to make our project easyier and quicker in this short period of time.

I 'm a little embrassed about what i m going to say and i m sorry if that will dissapoint you:

We were thinking to learn C# and Unity to make this game as an easier way!
I read and i heard from a lot of people that C# is:

  1. easy to learn.
  2. similar to java.
  3. widely used for game development (thus a great knowledge tool to have in your hands)(both C# and Unity).
  4. plenty of documentation both for C# and Unity.

I’d like to hear your honest opinion!

PS: I’m giving up on Java but if this choice gonna help us it’s always for the best!

Stick to Java, use LibGDX and forget Unity which is less reliable across platforms.

As beginner, don’t do an online multiplayer game at all.

I had the same thought. When I see “newbie” and “online-multiplayer” in the same post, I see a recipe for disaster. This is not always the case, but I still hazard opening the can of worms labeled “multiplayer” as a first serious project.

I agree, while it’s great to go for the game you always wanted, if your a new programming throwing in figuring out netcode is just a recipe for disaster. You should work on single player games, or semi-online games where the bulk of the game is offline, but you have some online inter-connectivity.

But really, you should jump heads first into online features if you’re a newbie, you’re just asking to get overwhelmed. :confused:

If you want transferrable skills, then stick to Java + LibGDX. Java opens far more doors than either Unity or C#, admittedly most of them aren’t game-related. cut out the multiplayer networked stuff though - too complex.

Professional game developers are starting to forget Java and jump ship to Unity anyway. People should just adapt to the change and forget about it IMO.

libGDX runs on:

  • Most Modern Android Devices.
  • Apple’s iOS via RoboVM.
  • The Web via GWT.
  • Mac OS X, Microsoft Windows and various distributions of GNU/Linux.

According to its website, Unity claims to run on:

  • Most Modern Android Devices.
  • Apple’s iOS
  • Microsoft Windows Phone
  • Blackberry
  • The Web via Unity Web Player
  • Mac OS X, Microsoft Windows and various distributions of GNU/Linux.
  • Microsoft’s Xbox One
  • Microsoft’s Xbox 360
  • Sony’s PS4
  • Sony’s PS3
  • Sony’s PSP Vita
  • Sony’s Playstation Mobile
  • Nintendo’s Wii & Wii U

That’s a pretty big difference.
Granted, If you’re just starting out you don’t need to support any of these. Period.

  • Jev

Hi guys!!! Thanks for the replies and the advice!

Eventually we will use C# and Unity only because it looks to us easier for now.
We want this to get done in 5-6 months, time pressures us.

We ll seriously consider the “online-multiplayer” part as we progress. It was only an idea from the begining, not a purpose. :wink:

Thanks for the advice again! We apreciate it!