Creating a game engine

From learning about game engines from online, I've learnt that game engines are a series of core functions used in games whichs are, graphics, input, gamefunction and other systems...

Whilst I know that comecial engines are very complecated and difficult, I want to learn how to make a basic 2d game engine, that is stripped of everything but the basics. This would probarbly take months with strong dedication but I'm willing to try it.

Any recomemdation of were to begin from despite the obvious goal I'm taking of graspic the advanced concepts...polymophism, class templates...
Begin by choosing a library to build your engine with. SFML is highly recommended. I'm currently using Direct3D 9 for graphics. It's a lot more complicated, but if your goal is to seriously learn graphics programming, Direct3D or OpenGL might be better choices. Just be warned that they take a lot more work to get things going. SFML, on the other hand, is very simple to use, and will get you going much more quickly.

Once you're set with a library, try making a simple game such as Pong, creating wrapper classes as you get acquainted with it. You can then take those wrappers and improve them as you write more complex games.
Last edited on
Blessman11 wrote:
Any recomemdation of were to begin from despite the obvious goal I'm taking of graspic the advanced concepts...polymophism, class templates...


You're going to have some trouble making a decent engine without using such concepts. Depending on your skill level and math skills you may want to read: Game Engine Architecture.

It is however a fairly advanced text and covers 3d as well, but you would get the idea behind the various subsystem you need to create and how to manage them.
closed account (3pj6b7Xj)
Actually Direct3D really isn't that hard to get going.

1. Create Direct3D object
2. Create Direct3D device
3. Draw to the device.

That's all there is to it with Direct3D, once you make an implementation that does the initializing and checking for you, the rest is easy. Vertexbuffers, surfaces, a week of studying will make anyone proficient enough to render a triangle on the screen and even move or rotate it, the rest comes with practice.

Direct2D is similar to Direct3D, OpenGL is also some what similar....all implementations involve creating an object to which you load a device into and then use the device to draw to which ever target location you want to....the hard part really is orchestrating your 3d scene so that it renders the way you want it too.
@mrfaosfx: still, there's a lot of details you need to check to make a solid D3D app. Backbuffer size, device capabilites, support for hardware vertex processing and pixel format, if I'm not forgetting anything. If the OP is really into graphics programming, I think that's worth learning; if he just wants to get something running quickly, it might be overkill. There's also the issue of having to use the Windows API, although it's a pretty basic part of it.
Last edited on
Once you have made the game, can you send me the source code and released program by email, my e-mail is henryjia18@yahoo.com.
www.ogre3d.org :) Good place to start.
thanks for the info
but I'm restricted to working in 2D as I'm strengthening my calculus and matrix skills. And also Open Gl is what Im restricted on as thats what I will be assessed on at the end of the second semester
Topic archived. No new replies allowed.