Advertisement

Best place to start learning 2D game development?

Started by November 13, 2016 07:51 PM
9 comments, last by MobileGameGraphics.com 7 years, 11 months ago

Hi, I am new to these forums as was wondering if I could get some help or pointers in the right direction? I am an aspiring game developer looking to learn 2D game development and was wondering what the best platform to start learning is? The project I eventually have in mind and want to work towards being able to create is a sort of Harvest Moon/Stardew Valley style farming sim with light RPG elements, not going to go too complex with graphics, going to be a simple 16bit 2D sprite based artstyle, was wondering what the most suitable platform for this type of project (or learning to eventually be able to create this type of project) would be?

My current level of skill and ability, I know the basics of Java and Javascript (mostly Java) but am relatively unfamiliar with other programming languages, I know enough about photoshop to be able to create basic 2D art assets for games.

Currently I am trying to wrap my head around libGDX however I am finding that a lot of the tutorials and guides online are woefully outdated, most of the stuff taught turns out to be wrong and while I can find the answer to my current problem most of the time by searching online my code and the way I set up projects is completely different to what is explained in the tutorial making them incredibly difficult to follow along with. I have considered buying books on the subject however reading reviews it seems even they are outdated making me wonder if I would just be wasting my time and money following along with them?

If anyone has any suggestions or can point me towards some good platforms or tutorials or give me a good idea where to get started it would be greatly appreciated.

Hi Queen Skadi,

Welcome to the forums!

I recommend that you try to do simple games first such as pong, snake, etc and move up in difficulty as each one teaches you different things. See the article below

http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

There are some cool tutorials on how to create games using libGDX available in youtube. This one for example, I have followed it myself in the past with no issues I believe the author have more of these (Super Mario):

The other option is to buy a book such as Fundamental 2D game Programming with Java which requires more knowledge of the Java language. I believe the author is a member of the forum also, see the page below for more info:

"http://www.indiegameprogramming.com/"

The last one does not use libGDX but will teach you the fundamentals of game development in Java (not the language itself).

Cheers,

Hugo

Advertisement

I get you, gotta learn to walk before you can run, I was wondering what platforms are best to learn on and will eventually allow me to create the type of game I have in mind? libGDX a good place to start or are there other platforms that one should learn first? How is unity for 2D game development? I heard they recently released some tools dedicated to making 2D development easier on the platform (even though it was already possible to create 2D games on the platform if you truly wanted to) however I feel for what I want to do unity might be a tad overkill.

Platforms are incidental. Your primary goal should be focusing on the underlying fundamentals of game development. In the beginning, it's difficult to separate one from the other, since it's all new, but once you get the fundamentals down you can put them into effect on any platform you want. Since you are already familiar with Java, you might as well just keep with it while you learn what you need to know about game development. libGDX is fine for that. So is JavaFX, or even Swing.

If you can fork out a little bit of money, 'Mastering LibGDX Game Development', despite the 'Mastering' in the title, gets the best reviews of any book I've seen on getting started with LibGDX (and it's fairly recent). It expects the reader to already be comfortable with Java, so if you're good on that score it should be money well spent. 'Beginning Java 8 Games Development' is also a decent introduction to 2D game programming with JavaFX. If you can afford it, I would recommend you get both. It will help you in mentally separating the platform from the game concepts.

Platforms are incidental. Your primary goal should be focusing on the underlying fundamentals of game development. In the beginning, it's difficult to separate one from the other, since it's all new, but once you get the fundamentals down you can put them into effect on any platform you want. Since you are already familiar with Java, you might as well just keep with it while you learn what you need to know about game development. libGDX is fine for that. So is JavaFX, or even Swing.

If you can fork out a little bit of money, 'Mastering LibGDX Game Development', despite the 'Mastering' in the title, gets the best reviews of any book I've seen on getting started with LibGDX (and it's fairly recent). It expects the reader to already be comfortable with Java, so if you're good on that score it should be money well spent. 'Beginning Java 8 Games Development' is also a decent introduction to 2D game programming with JavaFX. If you can afford it, I would recommend you get both. It will help you in mentally separating the platform from the game concepts.

'Mastering LibGDX Game Development' seems indeed to be a good book for learning libGDX and you get to do an RPG:

"Starting from the beginning, this book will take you through the entire development process of creating an RPG video game using LibGDX."

Also I just wanted to reinforce what Aldacron mentioned in is last sentence "I would recommend you get both. It will help you in mentally separating the platform from the game concepts." I believe that this is really good advice.
Keep learning Java and try to understand what is going behind the scenes in libGDX which just really simplifies some of the common tasks of game development for you.

Start using Unity 3d. It allows you to build your game instead of building your tools. You will be coding in C# which is similar to Java in many ways. Unity 5 has direct and easy to use support for sprites which is needed for any 2D game. Unity is very popular for a reason. It does the job well. It's so powerful that some people are even making a 3D MMORPG using it.

Advertisement

Unity is very popular for a reason. It does the job well. It's so powerful that some people are even making a 3D MMORPG using it.
OP asked for a 2D environment, why is an extremely powerful 3D program the answer?

I would say an additional unneeded dimension just makes things more complicated for no good reason.

Hmmm...

i recommend Godot to you. -> https://godotengine.org

It has its own easy syntax. You can compare it to Python, but much easier.

It was a really good and easy start for me and there is a very helpful community.

If you googled LibGDX tutorials, there's a pretty good chance you've found my series.

Truth of the matter is, other than the getting started process ( which has gotten a great deal easier ), the library hasn't really changed much since I wrote those tutorials. Mature frameworks (LibGDX, XNA, SDL, SFML) tend to be this way, with a very stable API. So even though the tutorials are a couple of years old, they are certainly not out of date. That said, the video series is about a year newer.

There have of course been changes over the years, but the community has been AWESOME in this regard. For each tutorial section you read, or video you watch, be sure to check the comments below. If the API has changed you will almost always see a comment explaining what changed and how to work around it.

If you have a specific question though, fire away. LibGDX is a great framework, stick with it.

OP asked for a 2D environment, why is an extremely powerful 3D program the answer?

Unity has powerful 2D tools these days. It's likely to be a lot easier for a beginner to follow a 2D tutorial for Unity than to work in any code-only environment.

This topic is closed to new replies.

Advertisement