Game development, any pointers where to start?

Hello all,
I have been pretty experienced with creating Android apps that are of tools based nature with simple Animation (translate or rotate animation).

I want to get into game development as this is where I think the $$ are. I need help in pointing me where to start. For people who develop games, do you just do it with pure Eclipse+java ? Or do you use some 3rd part tool to draw motions and collisions…etc
I am pretty confused as I see threads/tutorials about OpenGl ,AndEngine, LibGdx…etc
I am overwhelmed!

Where do you suggest I start? What type of foundation/tools you guys use to build games (say spaceship shooter app)?
Thank you so much

The first thing to understand is that OpenGL stands on a different level than libGDX, AndEngine and pretty much other engine/framework. In simple terms, OpenGL is an API used to interact directly with GPUs. It’s relatively low level, very powerful and not so easy for begginers. In fact, most frameworks you will find for Android use OpenGL on their rendering modules, hide it through more user friendly calls and add a lot more functionality useful to games. (sound, asset management, particle systems, scene management, …)

If you like and want to learn cool stuff, go ahead and pick OpenGL (used in Android through a GLSurfaceView).

If you just want to get something done I would recommend libGDX, it has everything you’ll need (not only graphics), good documentation and an active community.

There’s also full game engines like Unity, in which you mostly interact through a GUI and some scripting language. I think that’s a bit to much to make simple 2D mobile games.

In any case you’ll want to start by placing a sprite on screen, giving it a speed/acceleration through some kind of input. Then add more sprites, do some collision detection between them and make them do something on collision. That will make you understand the very basics.

Good luck

Thank you so much for the detailed info. I guess I will start with Libgdx right away. I read about AndEngin too and the 10s of website comparing them. For some reason it looked like Libgdx is easier to understand. Any comments?

I will be starting with Construct2, Maybe I can finish my Blaster 2004 game I started back in 2004 using Corel Click n Create. Now I have to call it Blaster 2k15

If you’re familiar with JavaScript or C#
you should definately have a look at Unity3D.

If you’re familiar with Java, I would start with some tutorials using the SurfaceView and learn the lifecycle of games.

If you’re a software guy by trade and know java really well, then I would delve into OpenGL directly.

Otherwise, I would l choose to learn libGDX after I had learned the lifecycle of games using the simpler java + eclipse.

Mario Zechner, the creator of libGDX, has a very good book called “Beginning Android Games” that gives an excellent introduction into games using the surfaceview (Java + eclipse) and then has a very good introduction to OpenGL ES. Unfortunately, the book does not go into his libGDX framework as I believe he developed it around the same time as he wrote the book or slightly after.

I think that you shouldn’t bother about OpenGL. It’s hard to make cool game without any high level engine, especially if you are beginner. This is what i recommend:

  1. Learn programming (language doesn’t really matter here, but Java would be recommended)
  2. Learn objective programiing (also I would recommend Java)
  3. Learn Java
  4. Choose AndEngine or LibGDX. AndEngine is much easier to learn but it’s not so good as libGDX. You can find comparision made by me in some thread on the forum.

Of course you can start from 4. If you know Java:)

I use java, github(even if you work alone it’s good idea), libgdx, texturepacker, spriter(there’s better app for this but spriter is free), photoshop, illustrator and my brain:)

Good luck

Thanks man. Greatly appreciate the feedback. As I said before, I know Android pretty well and I have 10 good quality apps but they are all tools. Never got into game development. So i assume it would be easier and better to get into games with Libgdx, right? The only thing I don’t like about Libgdx is it seems everything has to be done from there. So if I want to create cool menu using activities and Android sdk BUT the game using Libgdx, it looks like it is either impossible or too much hustle. Too bad as there is alot of android functionality I like to use in my game logic (like toast, dialog… Etc). Unless I am missing something. Iam still reading the tutorial :slight_smile:

Yeah, mostly of the UI you’ll want to create from libgdx, it has the required stuff to do so, like table layouts ans skins.

But it’s certainly possible to create the menus on regular Android activities and only the game itself on a ‘libgdx screen’.

Just keep in mind that libgdx renders to a GLSurfaceView. Somewhere there’s a call to setContentView(surfaceView) to make it the only view on the activity. So, you can place it anywhere on any Activity like any other Android view.

And for toasts, dialogs and whatever you need to run on the Android UI thread, you can use the Handler on the AndroidApplication class (your main activity will inherit from there).

handler.post(new Runnable(){
@Override
public void run(){
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
}
});

Hmm interesting. Thank you for the suggestion. I didn’t know you can do that. As I said, still reading tutorials :slight_smile: