Suggested 2D Game Engine (not graphics libraries)

Started by
11 comments, last by DarkInsanePyro 14 years, 1 month ago
Before you post a comment saying I am being stupid and that there are many of these posts out there, I want to say what I am looking for. I understand there are plenty of threads out there, but what I been noticing are people suggesting SDL, Allegro, LOVE, HGE, and other libraries. I am not looking for a graphics library, I am looking for a list of game engines for a 2d environment. Why look for a pre-built engine? I have been trying to design an engine or program a game and develop the engine as needed, but I am having issues creating a proper design for the engine (events, game states, logic/rendering isolation). I am just going to poke my nose out there and see if anyone suggests one before I go blurting the 101 questions on the best structure of the 'engine'. What am I looking for? I am looking for something where I can focus on the logic of the game, rather than the back-end structure. The idea was to do proper isolation of systems (rendering, logic, physics), and only plug my objects in, and assign them the sprites necessary, where each sprite would be assigned a SpriteDef which defines the sprite. It is a bit more complicated than that, but does sound ideal. Here is a link to the mind42 diagram of what I have been considering: Mind42 Graph Image What I am not looking for? I am not looking for an input/graphics library. When I was searching around here, I been noticing a lot of people suggesting SDL, Allegro, LOVE, HGE, etc, which are NOT game engines, but a event/graphics platform in development aid for such engine/game. --- I have tried to code my own, over and over, and I understand it isn't an easy thing to do. That is why I have nothing to show of now. I do want to make even small games, but I can't stand simple 'trash code'. Majority of open-source projects I have downloaded are hard-coded, and although it may work for them, for me it feels uncomfortable. I even made a simple click the box to get points game, and I ran into an issue with logic where game-states would have prevented such issues. Sounds silly, but when I ran into that issue, I felt my code to be very... dirty. Thanks. :)
Advertisement
The closest thing I can think of to what you're describing would be something like Game Maker or Unity, either of which could be used to develop a 2-d game, I think. (Unity is a 3-d engine, but I imagine you could create a 2-d game with it.)

Have you looked at either of these? If so, does either seem like it might meet your needs?
I have played with Game Maker, and actually many many years ago I used to be fluent in it. That being all drag-and-drop was amusing but I separated from it. Unity is questionable with the whole 3D part of it (though I notice there are 2D tutorial but still utilizes 3D aspects).

At the moment I am playing with Torque2D, but it seems very commercialized. All in all I believe I am being too specific. I mean, I wanted something robust, just a library which supports my needs, not a whole development platform (though maybe I need to learn to use something along those lines instead). An environment where I can code it to say object x is at point p with a sprite of s currently playing an infinite flip-flop animation. Well that was the ideal idea anyway.

Right now I want to make one of those side-scrolling helicopter games. The one were you go through a tunnel. The idea was to have better physics on the helicopter, have enemies, physics on stuff on the ground (boxes being push around), particle effects for fires. Basically a populated cave with items which can be blown up, etc, while firing at enemies. Thought it would be pretty cool. The one point I haven't determined was the map, though once I added the idea of having items and such a stored map sound more appropriate, rather than a procedurally generated one.... So basically something so I can make that. Lol.

The idea was to code my own engine, using SDL for events/opengl context, OpenGL for rendering, Box2D for physics. The issue was just putting it together in a nice fashion, than thought maybe I could find an alternate source rather than coding my own. :x

I have been coding in C++ for years, and Python for a year or so. I figure I know enough, it is just getting my mind past the whole design phase, which honestly makes me want to not to be interested. :x
Quote:Original post by DarkInsanePyro
I wanted something robust, just a library which supports my needs, not a whole development platform (though maybe I need to learn to use something along those lines instead). An environment where I can code it to say object x is at point p with a sprite of s currently playing an infinite flip-flop animation.

I have been coding in C++ for years, and Python for a year or so.
have you considered pyglet, or pygame?

Both sound like a fairly close fit for your stated needs.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Quote:Original post by swiftcoder
Quote:Original post by DarkInsanePyro
I wanted something robust, just a library which supports my needs, not a whole development platform (though maybe I need to learn to use something along those lines instead). An environment where I can code it to say object x is at point p with a sprite of s currently playing an infinite flip-flop animation.

I have been coding in C++ for years, and Python for a year or so.
have you considered pyglet, or pygame?

Both sound like a fairly close fit for your stated needs.


I have messed with pygame, but at the same time it isn't properly designed for my needs, or even it is SDL with a couple is cheesy classes to 'help'. If I were to go even that route it would be the same, where I could still have to code the majority of the engine. Am I trying too hard to keep an organized project? I know the KISS format but I despise it now, after trying it myself.
I know you said in the first post that the LOVE2D engine isn't what you are looking for, but it seems perfect for the type of game that you are making.

Its really a full game engine, not just a framework, with integrated Box2D physics and Lua scripting.

By default, It doesn't have an entity structure, but you can easily implement one with MiddleClass
Alright well I suppose I might have only inquired about love because I don't remember attempting to use it. It does look interesting, though I will have to refresh myself with Lua scripting.

I suppose this means there really isn't anything that I need to the extent that I desire. Well that is okay. Though I still have the original issues then, the design of the code in a way which makes sense.

Well I will check LOVE out, though not completely sure. It basically is the same situation as all other cases (C++ with SDL, OpenGL, Box2D), just a few things I won't need to develop.
Quote:Original post by DarkInsanePyro
It basically is the same situation as all other cases (C++ with SDL, OpenGL, Box2D), just a few things I won't need to develop.
To some extent, any engine/framework is just going to be "x, y & z that I don't have to write myself".

If your goal is to produce a finished game, I would recommend doing your damnedest to maximise the number and quality of those things - writing from scratch is not a good way to get things done [smile]

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Yes and that is what I am trying to accomplish here. But what would the advantage of using LOVE be, besides a (very) few extra features rather than using SDL/OpenGL/Box2D which I can setup in a mere 10 minutes? I would also have to become familiar with the language, where C++ I am completely fluent. You are right, find something where the most will already be covered so I don't have to do it, but I don't see that here. I am all open to doing so when I am given the sense of advantage, which right now I can see it is because of the lack of compilation, which is nice.

And should I be trying so hard to isolate each system (logic, physics, and rendering) or can they clash when the objective is to complete a project? :)

Really it sounds like I am trying to get a daily planner from you, but honestly, out of the years I have been programming I have outputted 0 programs (0 games, 0 apps), and it is annoying. :P Just looking for a new path to follow in hope to actually DO something. Lol.

PS: Seems LOVE has changed a bit and there are a lack of examples, though I haven't looked everywhere yet (about to look through forums)..

Edit: I am trying to get a hang of Lua, but it is weird! And no structures, just a bunch of tables pretending to be structures... gah! Lol.

[Edited by - DarkInsanePyro on February 17, 2010 10:14:18 PM]
Quote:Original post by DarkInsanePyro
Edit: I am trying to get a hang of Lua, but it is weird! And no structures, just a bunch of tables pretending to be structures... gah! Lol.

I think it's a pretty neat language once you get used to it.

Anyway, how about Panda3D? Despite its name, it can be used for 2D games too.

This topic is closed to new replies.

Advertisement