Research for 2D Java Game

Dear Java-Gaming :slight_smile:

I will graduate this year as a bachelor in applied informatics :slight_smile: So I have about 3 years of programming experience.
Sadly I never had the time or chance to delve into the world of game development, I was always very busy on school projects which consisted of business applications.

I learned to program in Java / C# and ABAP (Sap development, that is actually my professional choice)

Now I finally have some more spare time and I would love to start developing a Java 2D engine along with an editor and actual game (or games).

First of all I will need some information about Java 2D game development. I already completed some C# XNA games, but I am not a big fan of XNA tbh. I always been more into Java development rather then .NET stuff.

Ok here are my first questions:

-Java:

What IDE is recommended for 2D game development?
Which Libs are recommended? Rendering? Graphics? Scripting? Networking?
What other tools will improve my overall design/coding experience?

-Engine:

My goal is to start with a simple engine, expanding it over time with new features. (my goal is to create 2D platformers/rpgs/run and gun/sidescrolling shooters etc)

Where should I start? Building a basic Tile-Engine?

-Editor/Game:

No real questions here atm. Of course, info is always welcomed upon.

Thanks for your time.
EvolvedMonkey-

Update: I found the faq.

So I am guessing.

Eclipse + Slick + Phys2D + LWJGL

Any info on my other questions would still be most welcome guys :slight_smile:

Cheers,
EvolvedMonkey-

Try IntelliJ Idea instead of Eclipse.

First, make a rough design of concrete game, start developing the game and try to extract reusable parts for a game engine, not the other way round.

Editor, what kind of editor ?

Why?

LibGDX and JOGL might be interesting for you too.

Hey thanks for the replies.

Editor: A simple way to create games. For people w/o programming knowledge.

First you choose your type of game: Platformer / Run ā€˜n’ Gun / RPG
This will load a toolset according to the choice you made.

Then by using drag and drop / paint options / scripted events etc… you can make a game.

Of course that is an entire project on itself. I am first going to focus on making an engine alongside a game.

I already know where I want to go with this. But I first need to learn the basics.

First things I will work on.

  1. A reusable gameloop
  2. tile map engine (support for square/isometric/hexa/…, starting with normal square ofcourse)

Such an editor is a lifetime task for a single person… and its usability questionable, IMHO.
Anyway, have fun :wink:
About game loops, there is a longer article somewhere here to be found.
For creating tile maps, the free editor Tiled is quite useful. I think Slick has built in support for reading those maps.

hehe yeah :slight_smile: It’s just for personal use/fun/hobby

Because it’s a great IDE? Now that the community edition is free, there is no reason not to use it…

Edit: I second libGDX over Slick2D - just because of the Android option.

I actually encountered a problem :frowning:

I know how to create maps and how to save them to a file or load them.

But how do I assign the (correct) textures to the map? I can’t seem to find a tutorial on this.

If you want more people to see an unrelated question, you should create a new thread.

Maybe :stuck_out_tongue: But it’s also a way of bumping my post. I still would love some info on my initial questions ^^

And HTML5 option.

So:

IDE: IntelliJ
Libs: LWJGL + libGDX

Any info or links about where to start with a simple game engine would be most welcome.

IntelliJ is really fast (especially with auto completion) and highly customizable.

For example, you don’t have to type BufferStrategy or SuperLongClassWhichNameIsWayTooLong but just upper case letters to get completion.
If you want to surround code with something (try/catch, if () { } or so) just select code and press ctrl-alt-t and IntelliJ will do it for you.

Those examples are just drops in the ocean of IntelliJ’s possibilites. Just read the keymap, add your own shortcuts and code fast :slight_smile:
If you write tests you will even get code coverage.

And it is integrated with various SCMs like SVN/GIT.

IMO Slick2D benefits in these areas:
[]For quick prototyping
[
]For beginners who don’t want to learn OpenGL concepts and want to do things in a Java2D-like way
[*]For those who want to avoid a high-level solution, and would rather use LWJGL directly for the sake of learning OpenGL, Slick2D/Slick-Util can be used as a compact ā€œutilityā€ library to avoid reinventing the wheel (i.e. texture loading, font rendering, audio streaming, etc)

In most instances I think LibGDX is superior.

Its convenient, but in most cases you dont make a game for android and pc, which are just the same ported game

by nature, an android game should be very different in terms of gameplay, controls, objective, complexity and other stuff

its like porting a ps3/360 game to wii with wiimote controls, but same gameplay
not really good.

So you’re saying you should have to rewrite all the asset handling, scenegraph management, and rendering because you’re using a different form of input? Ridiculous.

Webgames and mobile games can be really similar. More casual and beginner friendly and controlls are lot sompler.

I havent used LibGDX too much, but isn’t that basicly OpenGL bindings, like in LWJGL? That is harder to manage than Slick2D’s Java2D-like API.

Phys2D can only do so much. Box2D has greater functionality, and is faster. However, it’s also harder to use. Always such a tradeoff :stuck_out_tongue:

Edit: Since you asked for networking, I’m going to say that JBoss’ Netty is good, and Kryonet too. Kryonet is really nice and easy to work with.