Game Engine Development and Design

Started by
4 comments, last by Krohm 10 years, 10 months ago

This I my first post after only just creating my account, what I basically want to do is create a 3D game engine. I know how much of a task this will be and I have many reasons for wanting to do it. I am not hoping for a massive and complex engine just the basics seeing as it would take a team to complete a commercail product.

The reason I want to do this is because I have just completed my second year at university and one of my moduals in the 3rd year will be producing a simple game engine I think in C++. Furthermore to this I am looking to start my own project now so that I am able to get a head start and have somthing up and running before I start. Another reason for doing this is that I have been programming for a while now and have gotten a wide variety of code in multiple projects, examples of these include 3D model loaders, camera systems, management systems in my games for assets, simple scene graph structures, AI using state machines, collision detection and response etc.... I've done these within Opengl and directX 11.

I now want to put these together so I can easily reuse code using object oriented techniques, the problem I am having when starting the engine is how it should be structured. What I mean is how would you seperate the game from the actual engine and also the front interface (GUI). I have been messing around with other engines like unity and have got a good idea but I need more information.

I've been looking at http://www.flipcode.com/archives/Elements_Of_A_Game_Engine.shtml which gave me a good idea too how to put something together and have been looking at multiple books but there ain't much out there on this topic. I am wondering if anyone could give me some pointers or some resource links/ good books that would help.

If anyone has a class diagram that I could look at, I would be very greatful, this will give me the visual aspects of the engine. I wouldn't think the programming language been used would matter because its mainly the theory i'm interested in, but i'm looking at using c++ and XML for saving the game.

Thanks in advance

Advertisement

Hello,

I'd point you to Terathon's page, that actually shows their game engine architecture http://www.terathon.com/architecture.php, but not actual class diagram ~ anyway it should give you overview about sub-systems in game engine. You can try to google several of them and I'm sure there is plenty of them out there. The problem is though, that the game engines differ, they sometimes fuse several subsystems together, separate several subsytems together, ... sometimes even use different systems and programming paradigms (functional programming for game engines, etc.).

Although, as I'm not the supporter of pure OOP paradigm, I have to warn you - trying to do everything correclty OOP in a game engine might be tricky and hard. Sometimes there are more elegant solutions. Violently "raping" the code to be the pure OOP isn't that good too, as it often results in bad code.

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

If you want to design a 3D game engine, I would reccommend getting the book Game Coding Complete 3rd or 4th edition. You can download the source code for the engines that he creates throughout the books here -> http://www.mcshaffry.com/GameCode/.

The class diagrams for the game engine that I created can be seen here: http://www.MarekKnows.com/phpBB3/viewtopic.php?t=113

I think the book Game Engine Architecture is a good one. It and the Game Coding Complete mentioned above complement each other quite nicely. They share some commonalities, but from different perspectives.


This I my first post after only just creating my account, what I basically want to do is create a 3D game engine. I know how much of a task this will be and I have many reasons for wanting to do it. I am not hoping for a massive and complex engine just the basics seeing as it would take a team to complete a commercail product.

The reason I want to do this is because I have just completed my second year at university and one of my moduals in the 3rd year will be producing a simple game engine I think in C++.
Be careful about that. Albeit embarking on complex projects is a good way to improve your ability to write readable, maintainable programs, keep in mind that once you go beyond a certain point you don't get anything besides a good grade, which many other people will be also getting.

Plan to throw one away. Never heard of anyone able to write a good engine at 1st try. Be very careful with your time and effort.


trying to do everything correclty OOP in a game engine might be tricky and hard. Sometimes there are more elegant solutions. Violently "raping" the code to be the pure OOP isn't that good too, as it often results in bad code.

I have to agree. Integration is also an interesting issue which needs deep understanding of the underlying problem. I'm afraid those two things are often neglected around here.

Previously "Krohm"

This topic is closed to new replies.

Advertisement