Advice on 2D games

Started by
8 comments, last by Dragonsoulj 11 years, 1 month ago

First I want to start out by saying that this is my first post, but I'm excited about this community and plan on staying and contributing :)

I have a decent ammount of background in 3D game development. I've worked with Cryengine and Unity quite a bit, and consider myself at least knowledgeable in them. However I've recently realized that I have a hard time getting inspired when making 3D games. Everything I make is either a mediocre COD clone, or a Slender clone. But I've realized that the best ideas I ever come up with are for 2D games (sidescrollers mainly).

So my question to you is how should I start in learning to develop 2D games? I have absolutely no knowledge at all in developing them, but I am willing to learn from the beginning (coding from scratch or using an engine). I would rather not use Unity which seems to be suggested by many people as this is not the art style I'm going for. I'm aiming to make games more in a pixel-art style like Home (find it on Steam).

Any advice would be greatly appreciated :)

Thanks,

-Creator

Advertisement

Well I haven't been this for very long, but I'm currently making 2D games in C++ using OpenGL as the graphics server. OpenGL is fairly easy to use and cross-platform, and there are loads of tutorials out there to help wrap your head around how it works and libraries to download if you need them.

The OpenGL library I'm currently using can be found here. But whether you'd want to use that or not would also depend on what language you'd prefer to code in.

Hope that was some help.

Well I haven't been this for very long, but I'm currently making 2D games in C++ using OpenGL as the graphics server. OpenGL is fairly easy to use and cross-platform, and there are loads of tutorials out there to help wrap your head around how it works and libraries to download if you need them.

The OpenGL library I'm currently using can be found here. But whether you'd want to use that or not would also depend on what language you'd prefer to code in.

Hope that was some help.

It definitely was, thank you :)

Are there any particular tutorials that helped you the most? I know I can find a million but I wanted to know if you know of some good ones. I know the very basics of C++, but not much more.

In my experience, 2D games face their own challenges, be it technical or in matters of gameplay - but it is usually quite easy to create a first, simple set up to experiment with. Just grab a decent 2D library, a hello world tutorial and you should have something on screen within few lines of code. Evolve from there and you'll soon enough find out anything you need to know. Unlike 3D game development, the 2D world doesn't always need a huge third-party engine or framework because a lot of problems don't apply there at all or are a lot easier to solve.

For beginning, my recommendation would be OpenTK in conjunction with C#, but it's more or less a question of personal preferences. There's also SharpDx, XNA, MonoGame and whatnot. Pick one.

It depends what you want to do in development (Graphics, Programming, etc..)

But if you are going for programming, and you want to learn how everything works, then use OpenGL/DX. But if you want to program a Gameplay/AI/ etc.. then use some libraries for example SFML. And of course it also depends in what language you want to program.

If you want to learn how to program or can program, look for game-development libraries in your language of choice. If you don't want to program, however you still want great (production-quality) games, you can either use Construct Two or Game-maker (There are many more, however those are some of the most popular). Whatever you do, just don't use Dark-Basic, however!

Some tips (for when you're developing):

  • Make a good state machine. It will be worth it. There is a mound of articles on the subject (lazy foo is commonly linked to).
  • Learn and utilize multiple paradigms. Don't stick to Object-Oriented Programming or Procedural programming for your whole career.
  • A little object-oriented programming can go a long way.
  • In games where you load maps, you're probably going to get an Access Violation error (if you use arrays or vectors to store the maps).
  • Don't give up.
  • Know when to give up (know when to refactor, start over, and leave a project).
  • Have fun!

Cheers :)!

I'm a game programmer and computer science ninja !

Here's my 2D RPG-Ish Platformer Programmed in Python + Pygame, with a Custom Level Editor and Rendering System!

Here's my Custom IDE / Debugger Programmed in Pure Python and Designed from the Ground Up for Programming Education!

Want to ask about Python, Flask, wxPython, Pygame, C++, HTML5, CSS3, Javascript, jQuery, C++, Vimscript, SFML 1.6 / 2.0, or anything else? Recruiting for a game development team and need a passionate programmer? Just want to talk about programming? Email me here:

hobohm.business@gmail.com

or Personal-Message me on here !

I can't wholeheartedly recommend any tutorials unfortunately, since I mostly used notes written by my Uni lecturer, and only checked out some tutorials when a topic wasn't covered (enough), or I was having problems. Swiftless.com seems to have some very detailed and useful tutorials though, found here.

Glad I helped.

Have fun making all the games :)

PS There are also quite a few useful tutorials/resources here on gamedev that you could check out.

If you're only concerned about C++ Windows development, I would highly suggest trying HGE. It's very easy to use, powerful and comes with excellent documentation, despite not having been updated in some time. It includes nearly everything you need to make a game like the one you linked to (I think the only thing it may not do is networking, which you can do with RakNet yourself if you want).

If you want something like Unity3d but for 2d, I'd suggest something like GameMaker. Construct also exists but I prefer GameMaker. It isn't the cheesy childs toy program that people may make it out to be. It does have drag&drop for coding but it also has an integrated scripting language that is similar to C/Java/Delphi/some strange combination. I picked it up pretty easily coming from C++. It also has some similar concepts to Unity like the event system, though instead of simply attaching scripts to an object, you directly code on the object(I'm not good at explaining that). But you can also create general scripts that any object can call upon.



We have a nice article floating around: http://www.gamedev.net/page/resources/_/technical/game-programming/the-guide-to-implementing-2d-platformers-r2936

This topic is closed to new replies.

Advertisement