Sign in to follow this  
armbuck

how can my team make a game engine from scratch?

Recommended Posts

armbuck    100
hello, i am wondering how can you make a game engine from scratch, my team is making one and well I'm not in the programming department so i am wondering how can you make a game engine from ground up? is there any tutorials or articles about how to do this? that is uptodate not from 2000. Thanks Steven

Share this post


Link to post
Share on other sites
oliii    2196
your team will be split into 'departments', each responsible for their side of the game. Rendering, physics, audio, gamecode, scripting, tools, networking... Some of those bits get re-used. If it is done right, a lot of it can be reused, and that's an engine!

Share this post


Link to post
Share on other sites
medevilenemy    362
Yes, your team can make an engine from scratch... if you are willing to put in the time and effort to learn/do it properly. It takes a lot more design than just hacking a system together... you need to design subsystems with re-usability in mind. Still, if you are so compelled, go right ahead! Writing a game engine is a great way to improve programming and design skills, and can be a lot of fun as well (especially if you are the kind that likes to sandbox new features to see them in action right away).

Share this post


Link to post
Share on other sites
Jason Z    6434
A typical place to start is by evaluating someone else's engine to see what you like about it and what you don't. There are quite a few free engines out there, so download one and do a code review with your team to see what you think should be improved - then improve it!

Share this post


Link to post
Share on other sites
What is your budget? And have you considered the Unreal Engine? It is mmog ready. Also maybe middleware, like for example 'SpeedTree' on Oblivion: re-use doesn't have to be limited to code, it can be game assets too, after all a 3d modeller thinks like a traditional artist and in fact a coder in many ways, they should be dynamic enough to do a tribute or remix of somebody elses work, as well as create from scratch.

[Edited by - BadgerManufactureInc on June 26, 2009 2:58:41 PM]

Share this post


Link to post
Share on other sites
Engines and libraries are there to be re-used. Algorithms tend to get reused more and more rather than redesigned such as the A-Star pathfinding routine, so reuse is the way ahead and until you can improve on someones code, dont bother trying. Just focus on the design so you can envision your dream rather than get bogged down with debugging etc. It depends on the size of your team and if you make the engine then use say Ogre for dual-platform Mac/PC graphics gard compatability (I assume your game would be for those formats) if not consider XNA, but with any option still consider using open-source 'objects'. Having a coder who is dynamic enough to mix, match and develop existing library assets is perhaps more important than a solid engine.

[Edited by - BadgerManufactureInc on June 26, 2009 2:01:43 PM]

Share this post


Link to post
Share on other sites
Hodgman    51222
Quote:
Original post by medevilenemy
you need to design [engine] subsystems with re-usability in mind.
Quote:
Original post by BadgerManufactureInc
Not necessarily true, since engines ... are there to be re-used.
What?
Engines don't have to be designed with re-usability in mind because they're supposed to be re-used?

Share this post


Link to post
Share on other sites
Your statement 'you need to build engines wih re-usability' I agree with in principle.

But your statement belies he fact that there is the option to use someone else's engine.

You wouldn't need to strss so much over re-usability, particularily if it's an exclusive project.

Share this post


Link to post
Share on other sites
Captain P    1092
Quote:
Original post by BadgerManufactureInc
You wouldn't need to strss so much over re-usability, particularily if it's an exclusive project.

At which point you'd better drop the term 'engine' and just say that you're building a game.

@armbuck: since your team is building an engine, can't you just ask them how they're doing it? If, however, you're asking this here because they don't know either... then you're in for a rough ride. You'd better look for an existing engine and build a game with that.

Share this post


Link to post
Share on other sites
An engine could take months to develop from scratch. Maybe one of your programmers already has a skeleton engine or libraries relevant to your game?
As for 3rd party options, you can customize the Unreal engine i am pretty sure. For instance Borderlands by Gearbox software uses it, as does Star Trek DAC, and an even more relevant example Stargate worlds..If your budget is not that high then source code and tutorials can be a cheap way of borrowing building blocks for your engine. A good programmer spends 80% of their time reading and re-using code after all. And if you have to, create your own data structure using pen and pencil, but don't reinvent the wheel when not necessary or if budget means you dont have to. You may up with an octagon instead of a perfect wheel.. lol

[Edited by - BadgerManufactureInc on June 26, 2009 2:04:55 PM]

Share this post


Link to post
Share on other sites
medevilenemy    362
I'm an engineer [grin]. When I'm going to make something I like to plan it out in detail ahead of time. This isn't to say its the only way, its just a nice safe way (that is probably a lot more difficult than many other methods).

Share this post


Link to post
Share on other sites
Zahlman    1682
1) What are you hoping to gain from doing this?

2) What are you expecting the engine to *do*?

3) Do the previous answers include anything not covered by existing engines?

Share this post


Link to post
Share on other sites
Quote:
Original post by medevilenemy
I'm an engineer [grin]. When I'm going to make something I like to plan it out in detail ahead of time. This isn't to say its the only way, its just a nice safe way (that is probably a lot more difficult than many other methods).


I'm a CAD technician for the structural engineering industry. I know how to work with structural engineers, I've been doing this for 5 yrs.

We dont draw the entire building, we 'overlay' our plans onto architects or infrastructure; in that way building development is modularised. Ony those experts necessary to each stage are involved. The same is true with game development, you should outsource or divide responsibility where possible.

Share this post


Link to post
Share on other sites
CuppoJava    164
The best way to learn how to make an engine works is simply to write one. You shouldn't be intimidated, a barebones engine can be perfectly accomplished by a single person.

My recommended progression would be:
1) Learn how to use the 2D drawing API of the language of your choice.
2) Write a simple side scroller in it. (There's no need to polish it. It's just to learn the basics of engine design.)
3) Learn some basic OpenGL.
4) Try writing a simple First Person Shooter. There a lot of tutorials out there to help you get started.
5) Start adding in other components one by one. such as Audio, Networking, Scripting.

The thing to keep in mind is that it's perfectly doable. You just need to start somewhere.
-Patrick

Share this post


Link to post
Share on other sites
Wizecoder    122
This is how i would recommend making an engine(this is sortof how i am going about making mine).
First plan out some things you want the engine to be able to do. Then you plan out how you want people to use the engine. Then you start planning out the internal structure of the engine. Then you start implementing using whatever api's will be used for the engine. During this whole process ask questions on the forums about things you are wondering about and/or start a blog, post some thoughts on what you will do with the engine and request feedback.

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