• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
GamDev

Choosing a 2D game engine for my project

18 posts in this topic

First, some background: I have average understanding of C++ and I've managed to code a few simple programs, however never made a game. Maybe I would've if my PC wouldn't have broken down, I didn't have enough money to replace it for a long time. by that said, I strongly prefer C++ over any other mean of coding, I find the language significantly more comfortable to use compared to anything else I've seen (Javascript, Java, Pascal to be precise).

[b]I'm creating a new topic because I want up-to-date information.[/b]

Project description: my project is somewhat similar to Sonic, Dangerous Dave, Megaman, Mario graphics-wise. I can do without pixel-perfect collision, however I do ramps and "divided" tiles in the tilemap. The game is obviously 2D (NOT 2.5D!), there's gonna be shooting, interacting, weapons, etc..

What I'm looking for: I need the engine to come with object and event manager (call a sprite (bullet?), destroy a sprite on events, etc.), integrated physics, graphics and sound management, and the regular features, like time manager, text, input, animations, etc.. Preferably with at least some basic A.I. too, but not necessary. Some basic LUA integration may be useful too, but it's definitely unnecessary.

P.S. I'm not looking for 10 different engines that I'd have to tie into one myself (graphics, zip, sound, physics, etc.), I'm looking for one solid product that I could use. I'm also not looking for paid engines, I'm looking for a free engine that would allow me to release commercial products.

[b]If you have any questions, feel free to ask.[/b] Edited by GamDev
1

Share this post


Link to post
Share on other sites
I know this isn't really what you want but I thought you might find it worth it to write your own simple engine if its only simple 2d. A simple api like SDL will actually handle a ton like sound, Image loading, input processing, Sprites can be done via a BLIT and there are plenty of SDL extensions that do allot more. If you want physics roughly equivalent to sonic it wouldn't take much extra programming. I even have some code samples I wrote of a very basic platformer that I could send you if you'd like, they cover animation via spritesheets and some basic physics (in C++ of course). Edited by ic0de
0

Share this post


Link to post
Share on other sites
If you want something like that, you will need to use an engine that costs some money. Don't be afraid to lay down a hundred dollars or so, it is well worth it. Bellow is a list that might interest you.

Torque2D
Allegro
Source Engine
0

Share this post


Link to post
Share on other sites
[quote name='ic0de' timestamp='1347927152' post='4981066']
I know this isn't really what you want but I thought you might find it worth it to write your own simple engine if its only simple 2d. A simple api like SDL will actually handle a ton like sound, Image loading, input processing, Sprites can be done via a BLIT and there are plenty of SDL extensions that do allot more. If you want physics roughly equivalent to sonic it wouldn't take much extra programming. I even have some code samples I wrote of a very basic platformer that I could send you if you'd like, they cover animation via spritesheets and some basic physics (in C++ of course).
[/quote]

I find the entity (bullets, etc.) system rather difficult, and pixel-perfect collision (which I assume I'd have to use for ramps) immensely difficult. I remember struggling a lot with them. A lot!

Anyway, I also remember shaking SDL, as I remember that it wasn't updated for a long time, and is half C, half C++.

I would appreciate if you'd send me the source code of your platformer though, I guess we should take this to PMs?

[quote name='kd7tck' timestamp='1347929349' post='4981078']
If you want something like that, you will need to use an engine that costs some money. Don't be afraid to lay down a hundred dollars or so, it is well worth it. Bellow is a list that might interest you.

Torque2D
Allegro
Source Engine
[/quote]

Be afraid? I'm not afraid, I don't [b]have [/b]the money! I couldn't even afford to fix my PC until recently!

Allegro's free and it offers only outdated C code as a graphics wrapper.

Source Engine is 3D.
0

Share this post


Link to post
Share on other sites
[quote name='kd7tck' timestamp='1347930495' post='4981089']
Just so you know, Source engine has been used many times in the past to make 2d/2.5d games.

I know many of the people who write patches to allegro on an ongoing basis, Allegro and C are anything but outdated.
Allegro is actually a highlevel SDL wrapper, and there is a c++ wrapper written for it.

Don't cringe at wrapping C code into a c++ game. Often this is the fastest way to get things done.
[/quote]

As I've stated in the OP, I'm not looking for a 2.5D engine. As for using a 3D engine for a 2D game, it is counter-productive and overly-complicated, often it's also a overkill for the end product as well.

Interesting, I'll have to take a look at Allegro and SDL. However, I am against C code, when there's C++, up-to-date is my preference, and often is more productive and has better performance. I can't comment ont his particular situation though, as I don't have enough knowledge about it. But anyway, as far as I know (now), SDL offers various plugins, maybe even those that I need - entities, physics, sprites, tilemaps, etc., while Allegro doesn't, in which case, SDL has a huge upside over Allegro for me.
-2

Share this post


Link to post
Share on other sites
These are html5-Javascript based 2d engines with full cross-platform support. Worth checking these out:

[url="http://impactjs.com/"]http://impactjs.com/[/url]

[url="http://craftyjs.com/"]http://craftyjs.com/[/url]

[url="http://www.melonjs.org/"]http://www.melonjs.org/[/url]
0

Share this post


Link to post
Share on other sites
since you are considering Allegro and SDL, I would advise you to have a look at SFML as well. It is entirely C++ based and is a modern object oriented alternative to SDL or Allegro. I have found it very intuitive and easy to get into. check it out at [url="http://sfml-dev.org"]http://sfml-dev.org[/url] .
1

Share this post


Link to post
Share on other sites
I had this same problem ( not knowing what 2D engine to use ) and I ended up writing my own.
My main issue with most 2D engines is that they don't support shaders.
Even Torque 2D has just some silly blend modes that makes me think that they just use fixed pipeline when rendering everything in there.
Using a 3D Engine for 2D games might give you a lot of work too. You will need to change the way physics works if you wnat to make a sprite based engine ( not just a 3D game where you see the character from the side). This can be easy or not depending on what you choose here. For example for UDK it's nearly impossible to change the physics code and replace it with Box2D since you don't have access to the sources.

In the end you need to ask youself what is the end goal.
Do you want to make a game in order to sell it? I doubt it can be successfull given the huge amount of first-project flops that come even from experinced programmers.
Not wanting to discurage you here, but since you mentioned PASCAL I start to believe that you're not that experienced with game development or programming in general.
If you want to make it for your portofolio, you could impress people more if you do your own engine. It would also be a really nice learning experience.
1

Share this post


Link to post
Share on other sites
[quote name='Overdrive' timestamp='1347956525' post='4981175']
I had this same problem ( not knowing what 2D engine to use ) and I ended up writing my own.
My main issue with most 2D engines is that they don't support shaders.
Even Torque 2D has just some silly blend modes that makes me think that they just use fixed pipeline when rendering everything in there.
Using a 3D Engine for 2D games might give you a lot of work too. You will need to change the way physics works if you wnat to make a sprite based engine ( not just a 3D game where you see the character from the side). This can be easy or not depending on what you choose here. For example for UDK it's nearly impossible to change the physics code and replace it with Box2D since you don't have access to the sources.

In the end you need to ask youself what is the end goal.
Do you want to make a game in order to sell it? I doubt it can be successfull given the huge amount of first-project flops that come even from experinced programmers.
Not wanting to discurage you here, but since you mentioned PASCAL I start to believe that you're not that experienced with game development or programming in general.
If you want to make it for your portofolio, you could impress people more if you do your own engine. It would also be a really nice learning experience.
[/quote]

Well I don't need shaders, I'm not looking to create a game of high-end graphics. I'm looking to create a game that looks like it has been created in '91, they don't have shaders and possibly other features that you needed for your project. :)

I've mentioned Pascal because I had to work with it at school. It was absolute horror! The primitive way how it works... Horrible experience. So in short, that's unrelated to my own choices, it was an enforced enforced by school, I will never lay my hands on it again. However that is true, I'm not very experienced programmer in general, I am good with the logic, but writing it down is hard for me.

I do understand that I'm not experienced, however when I work on something, I always do my best and then some, I never leave it half-way. I've seen many projects and (no offense), but most of them are horrible. I think the commercial way is the way to go for me, due to the lack of money mentioned in real life. But as the first project, I don't think writing an engine is the right way to go, it is a lot of work and has a great potential for a lot of bugs and inefficiency compared to what's already written and is proven to work.
1

Share this post


Link to post
Share on other sites
SFML is a great API for graphics, Input, Windowing, and Audio. I combine that with a 2d physics library to handle all my movements and collision detection. I use [url="http://chipmunk-physics.net/"]chipmunk-physics[/url] but [url="http://box2d.org/"]Box2d[/url] is a popular one as well.

My [url="http://2dgamemaking.blogspot.com/"]old blog[/url] (linked in my sig) outlines the steps and has all the source code I took to make a top-down game using SFML and chipmunk-physics.
0

Share this post


Link to post
Share on other sites
What you are looking for simply isn't out there. The closes you are going to come is Cocos2d-x (The C++ port of Cocos2d) http://www.cocos2d-x.org/
Maybe game-maker? The issue with game-maker being it uses a scripting language, not C++. http://www.yoyogames.com/gamemaker/studio/standard

Anyway, if you find entity management a challenge you probably don't have a solid enough understanding of C++ to make a game without shooting yourself in the foot.
I understand the make games, not engines mentality; but making games without enough understanding of what is under the hood leads to bad games.

My opinion mate, spend some time studying, it's worth it in the end. Either write your own data structures, write your own memory manager, your own entity handling framework, render code, actually understand what it is you are doing, or admit to yourself that your understanding of C/C++ is too minimal for a game, learn a scripting language and script games in engines.
0

Share this post


Link to post
Share on other sites
You will not find what you are looking for sir. Based upon your responses thus far, it seems you and I are after the same thing. Why do you think I am in the process of converting SFML into a full fledged game engine. I expect this little project of mine to take years to complete.

You can find it at [url="http://github.com/kd7tck/SFML"]https://github.com/kd7tck/SFML[/url], still just an early prototype though.
0

Share this post


Link to post
Share on other sites
[quote name='BeerNutts' timestamp='1348005202' post='4981436']
SFML is a great API for graphics, Input, Windowing, and Audio. I combine that with a 2d physics library to handle all my movements and collision detection. I use [url="http://chipmunk-physics.net/"]chipmunk-physics[/url] but [url="http://box2d.org/"]Box2d[/url] is a popular one as well.

My [url="http://2dgamemaking.blogspot.com/"]old blog[/url] (linked in my sig) outlines the steps and has all the source code I took to make a top-down game using SFML and chipmunk-physics.
[/quote]

Thanks, I'll definitely check it out! When I was a kid, my dream was to make an isometric RPG, but as I looked into actual programming, a side-scroller seems like a solid starting point instead. :)

[quote name='uglybdavis' timestamp='1348006630' post='4981450']
What you are looking for simply isn't out there. The closes you are going to come is Cocos2d-x (The C++ port of Cocos2d) [url="http://www.cocos2d-x.org/"]http://www.cocos2d-x.org/[/url]
Maybe game-maker? The issue with game-maker being it uses a scripting language, not C++. [url="http://www.yoyogames.com/gamemaker/studio/standard"]http://www.yoyogames...studio/standard[/url]

Anyway, if you find entity management a challenge you probably don't have a solid enough understanding of C++ to make a game without shooting yourself in the foot.
I understand the make games, not engines mentality; but making games without enough understanding of what is under the hood leads to bad games.

My opinion mate, spend some time studying, it's worth it in the end. Either write your own data structures, write your own memory manager, your own entity handling framework, render code, actually understand what it is you are doing, or admit to yourself that your understanding of C/C++ is too minimal for a game, learn a scripting language and script games in engines.
[/quote]

I do understand the concept, I could tell you how it works step-by-step, what's used and how, the thing I cannot tell you is the code. So no offense, but starting with an engine for me is irrational. Building an engine is good if you are bad at understanding the theory and/or analyzing it in-depth.

[quote name='kd7tck' timestamp='1348006940' post='4981451']
You will not find what you are looking for sir. Based upon your responses thus far, it seems you and I are after the same thing. Why do you think I am in the process of converting SFML into a full fledged game engine. I expect this little project of mine to take years to complete.

You can find it at [url="http://github.com/kd7tck/SFML"]https://github.com/kd7tck/SFML[/url], still just an early prototype though.
[/quote]

I see. Well prototype isn't useful (no offense), but thanks for the link. I'll follow your progress. ;)
0

Share this post


Link to post
Share on other sites
SDL, Allegro and SFML are not game engines!!

[b]SDL 2.0[/b]

Latest SDL port for Windows, Linux, Mac OSX, iOS and Android. Improvement to the last 1.2 API. Offers 2D hardware Acceleration. Still in development but last I checked they where talking about releasing it. Don't let the still in development fool you, it's been for a while now and it's near release I would say. Many improvements and functionality have been added to it. Note you will have to download SDL from mercurial if you want the latest, you can also get all the other extensions from there SDL_image, SDL_mixer, SDL_ttf, SDL_net

[b]SFML 2.0[/b]

Support for Windows, Linux and Mac OSX, built in features like audio, networking... Higher Level then SDL.

[b]Allegro 5[/b]

Supports for Windows, Linux, Mac OSX and iOS. Allegro 5.1 supports Android.

addons are:
Audio addon
Audio codecs
Color addon
Font addons
Image I/O addon
Main addon
Memfile addon
Native dialogs addon
PhysicsFS addon
Primitives addon
Shader addon

Really any of the 3 could be used to make your game note you can use Box2D for physics with any of the 3. Also like to say SDL is written in pure C not half C half C++, if you decide to use C++ with it it's completely up to the coder. C was just the language preference of the creator.

Ive heard great things about all the above, SFML I have never used.

I'm currently using SDL 2.0 on iOS, and it's doing a pretty good job, if you needed anything for SDL I could provide example code or even a game template. If so also let me know what platform you will be working on
0

Share this post


Link to post
Share on other sites
@stevo58 Thank you, I will definitely consider contacting you if I'll choose SDL to work with.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0