Home Grown game engine

Started by
21 comments, last by johnhattan 18 years, 6 months ago
I'm looking into becoming a game programmer and while i know that there are ALOT of rendering engines out there. I can't find one thats right for me. soo.... i have decided that i am going to build my own rendering/game engine from scrach and learn all of the rendering, game logic, networking and everything else as i go along. is this a horribly bad approach and couldn't possible benefit me in any way or could this be a valuable learning experence that i won't want to pass up? (please don't use this as a plug for whatever engine you like) and if anyone knows a place where i can find information on game engine and rendering engine design/archetexture. or any good books PLEASE point me in the right direction
Advertisement
It's probably somewhere in between.

You'll likely learn a fair bit, since something of that size is useful for design practice if anything.

That said, you're mostly likely guaranteeing that the game won't be finished for years to come.
Hey, I'm making a inhouse engine as well. Let me tell you that it is a long way. I have been (trying at) designing my engine for a few years now (amoung other projects) and I was never satisfied with my design. =( Anyways, now that I know a lot more, I think I've stumbled upon a satisifying design. (hey I was like in middle school back then) So, I may have something to show in about a year ;).

Anyways I really do think that looking at the structure of other game engines can really help you, even if it's just the class heiarchy. The more you know about interaction between classes, the more likely you are to succeed. You can also take a look at the sources of the few that are open source, they will inspire you (hopefully)

Ogre3d and CrystalSpace are two open source engines. (Note that I really don't like Ogre's design, but that's just me...[you might like it - who knows])

[edit]: yours may be alot less complex than what i intend to do because I'm making more of a game engine/general purpose engine than just a graphics engine.
Writing your own engine is a learning experience you definitely shouldn't pass up. However, if you want to produce a game in less than a few years from now, you may want to consider middleware.
I think it's a great idea to make your own. Granted it will take at least a year to have a good engine and it may never be as feature rich as some out there already, but it will be a great and rewarding learning experience. I've written 2 graphics engines so far that both took me about 2 years to write. I've learned a great deal through them and my design ideas keep improving.
Quote:Original post by Ravuya
Writing your own engine is a learning experience you definitely shouldn't pass up. However, if you want to produce a game in less than a few years from now, you may want to consider middleware.


well right now i'm starting school for basic computer classes and won't be finished with my bachelors for a few years
then i'll work on getting a real game ;)

Axiverse i have been looking at other rendering engines like you said, but they are sooooo complex that i'm somewhat dumbfounded on how to start getting a code base working, but i guess thats one of those things that i want to be learning
So many times I see people post on here that they want to make a game so they set out to design an engine right off the bat. A game engine is meant to be a reusable library that can be the basis of several games. It shouldn't be a one-off deal. And making an engine when you really want to make a game is often setting yourself up for failure.

I think it's always a good idea to set out to make games rather than engines when you are just starting out. Learning the concepts behind engine design & architecture comes much more easily when you have knocked out 3 or 4 games. If you've never made any games, you have to rely on studying other engines to get an idea of how to architect your own - otherwise you're just guessing at what you need. And engine A will most likely do things differently than engine B, which is structured differently than engine C. Getting some games under your belt will show you the common systems between games, what's reusable, and give you some ideas on simplifications and generalizations of your own. It can also help you to understand the differences between other engines out there.

Architecting a good engine is no easy task. Your frame of mind is just as important in game programming as your knowledge. If you view the problem from the wrong angle, you'll wind up with a skewed solution. It's much simpler to think in terms of 'game' than 'engine' in the beginning.

Of course, to each his own, YMMV, yadda, yadda. Some people are gifted enough or persistent enough to pull off anything they set their minds to. Just make sure you understand the big picture before diving in head first.
I was interested in writing a graphics engine, and so, because I had worked with irrlicht previously, that's the one I focused on. Now, if you go to the irrlicht site he's up to version 0.12 I believe, with shaders and everything.

There is no way that I'd be able to understand all the code for all of that, so, I went to sourceforge and downloaded the source for irrlicht version 0.1

The first release, and I've found that looking at that code is not incredibly complex, but it is useful enough that I just stole the class heirachy and structure, and now I have my basic design firmly imprinted in my mind, I rarely look at the code.

Moral of the story: If you see an open source engine that looks good, find its first release and look at that code.

Oh, and if you are starting from scratch, probably forget the networking and one or two other things, because, once you have a framework, or an engine (partial or completed) that you are satisfied with, you can re-design, re-write it to incorporate networking, and you'll have a much easier time with the graphics, so you'll be able to spend most of your concentration on learning the networking part.

My opinion. [smile]
[size="2"][size=2]Mort, Duke of Sto Helit: NON TIMETIS MESSOR -- Don't Fear The Reaper
depends how good you are at c++, if youve only been doing it a couple of months id give it another year before you even start to try or you will ed up like me bald
Why is everyone saying it takes years to develop an engine and make a game with it? That's bullcrap. If you're wanting to write a full blown engine with a bunch of bells and whistles, then yeah... but an engine for a first time game maker? Shouldn't take too long unless you're trying to write a Half-Life 2 clone. The current engine for my game is rather simple, and it is reusable. It didn't take me years to write (granted i've been working on the game for about a year, but maybe for a few hours every month... i'm very lazy, heh).

Write a simple engine that doesn't have real-time lighting, doesn't have bump mapping, etc etc etc... and you should be good to go. Start small.

This topic is closed to new replies.

Advertisement