Tips for creating a game engine please?

Post your questions, suggestions and experiences regarding game design, integration of external libraries here. For irrEdit, irrXML and irrKlang, see the
ambiera forums
Post Reply
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Tips for creating a game engine please?

Post by MasterGod »

Hi, I'm a novice in the engine creating topic and so I'm asking for development tips so I wont have to recreate my engine every time I encounter something useful that I should have thought about before I began it all.
SiriusCG
Posts: 58
Joined: Tue Feb 14, 2006 1:05 am

Post by SiriusCG »

...so I wont have to recreate my engine every time I encounter something useful that I should have thought about before I began it all.
Actually, your a novice programmer... You ask a lot of rudimentary questions, hardly ready to design a game engine IMO...

Instead of "building an engine" why don't you just build a simple game or two using Irrlicht just the way it is and get familiar with coding *before* taking on a task like this?

If you don't understand the basic elements, you're not going to get very far in designing and implementing an engine which is comprised of those very same elements.
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

What he said. You're asking how to make a complete blacksmith's forge and tools, when you've never done any blacksmithing.

Most engine developers (IME) end up spending more and more time working on their 'engine demo' app anyway. You might as well do that in the first place.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

The thing is that working on this project should be the practice I need to evolve. I think this is the way I will learn to program right - by doing mistakes and learn from them and earn coding experience.

You got a better/faster way? I'd be more then glad to hear your opinions.

I've tried making a game first and then I understood I need all these systems to control every aspect of the game, I couldn't continue because every time I wanted to do something (Main menu for example) I saw I was doing almost everything wrong and repeated it again and again so I thought about making my own VERY VERY simple game engine that will not just teach me how to program better but will be of use in any other "learning" game I will create. My engine should only contain the basic features I need to make a simple game. Later on when I'll be better I'll remake the engine as good as I can.

And so, I'm asking for tips that will make the journey easier and hopefully make me a better programmer.

PS:
SiriusCG wrote:Actually, your a novice programmer... You ask a lot of rudimentary questions, hardly ready to design a game engine IMO...
I wont learn if I wont try.
rogerborg wrote:You're asking how to make a complete blacksmith's forge and tools, when you've never done any blacksmithing.
Not a complete set, just the basic tools. :lol:
omaremad
Competition winner
Posts: 1027
Joined: Fri Jul 15, 2005 11:30 pm
Location: Cairo,Egypt

Post by omaremad »

Download irrwizard, setup the basic framework, observe and learn; if you dont understand how stuff works read using google.
"Irrlicht is obese"

If you want modern rendering techniques learn how to make them or go to the engine next door =p
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

^^^
What he said. ;)
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
zeno60
Posts: 342
Joined: Sun May 21, 2006 2:48 am
Location: NC, USA
Contact:

Post by zeno60 »

MasterGod wrote:The thing is that working on this project should be the practice I need to evolve. I think this is the way I will learn to program right - by doing mistakes and learn from them and earn coding experience.

You got a better/faster way? I'd be more then glad to hear your opinions.

I've tried making a game first and then I understood I need all these systems to control every aspect of the game, I couldn't continue because every time I wanted to do something (Main menu for example) I saw I was doing almost everything wrong and repeated it again and again so I thought about making my own VERY VERY simple game engine that will not just teach me how to program better but will be of use in any other "learning" game I will create. My engine should only contain the basic features I need to make a simple game. Later on when I'll be better I'll remake the engine as good as I can.

And so, I'm asking for tips that will make the journey easier and hopefully make me a better programmer.

PS:
SiriusCG wrote:Actually, your a novice programmer... You ask a lot of rudimentary questions, hardly ready to design a game engine IMO...
I wont learn if I wont try.
rogerborg wrote:You're asking how to make a complete blacksmith's forge and tools, when you've never done any blacksmithing.
Not a complete set, just the basic tools. :lol:
The problem with this in my opinion is that people who learn to program by "mistakes" will never work out as C++ dosen't tell you "Hey, you made a mistake on this line, heres how to fix it..." It will let you get away with a tremendous amount of 'oopsies.' Now, learning syntax by making mistakes is a way to go I guess, would take a lot longer than just picking up a basic C++ manual for a good month to learn the how and why something does another thing. The problem is that good programming, at least when applied to game programming, deals with good logic, and logic cannot be taught by making mistakes because bad logic will still work and just because something works, dosen't mean it is right.
And so, I'm asking for tips that will make the journey easier and hopefully make me a better programmer.
Program what will be beneficial to your learning, don't just sweat to make a pretty looking demo to show off to friends and declare you are a game designer. Think/Research better, easier, more efficient ways to complete tasks and implement them by hand, commenting every step of the way. (i.e., no copy/paste/forget)
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

zeno60 wrote:
MasterGod wrote:And so, I'm asking for tips that will make the journey easier and hopefully make me a better programmer.
Program what will be beneficial to your learning, don't just sweat to make a pretty looking demo to show off to friends and declare you are a game designer. Think/Research better, easier, more efficient ways to complete tasks and implement them by hand, commenting every step of the way. (i.e., no copy/paste/forget)
The "pretty looking demo" has already been done :lol:...
Now seriously, I'll think I'll start with pen and paper instead of jumping to coding so fast, thinking what exactly I want and then how is it going to be done - like you said, I think I need to research bit better/more.
omaremad wrote:Download irrwizard, setup the basic framework, observe and learn; if you dont understand how stuff works read using google.
IrrWizard is a great guide! There is a lot to learn from it, Thanks.

PS:
@zeno60: You've got me thinking about things I didn't thought to be important, that's the kind of tips I was looking for, thanks..
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

MasterGod wrote:I'll think I'll start with pen and paper
That's a genuinely good idea. A whiteboard and some marker pens would also be a good investment.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
monkeycracks
Posts: 1029
Joined: Thu Apr 06, 2006 12:45 am
Location: Tennesee, USA
Contact:

Post by monkeycracks »

Yeah, laying it out in concept maps, pen+paper/whiteboard+marker is a lot better than getting halfway through thinking you're almost done with a game engine and then having to recode. It's never a good idea to start with coding unless you're just doing another pretty demo.
SiriusCG
Posts: 58
Joined: Tue Feb 14, 2006 1:05 am

Post by SiriusCG »

That's a genuinely good idea. A whiteboard and some marker pens would also be a good investment.
Almost every coding project I do starts out this exact way. I start looking at the project from a very high level and then drill down into areas where I think I may need to do extra work. I will look at the lines, circles, arrows and notes on the whiteboard, making adjustments and changes until I feel there is enough solidity to start coding.

Even then the paradigm I try to use is write code as 'generic' as possible so that I don't paint myself into a corner later on...
now seriously, I'll think I'll start with pen and paper instead of jumping to coding so fast, thinking what exactly I want and then how is it going to be done...
This is the hallmark of a good coder... work it out, think about it, change it on paper as concepts BEFORE you write a single line of code. Don't lock yourself in to doing something "only one way"... be flexible and honest enough with yourself to work within your skills. :)

You'll get there, but it takes time and experience... I've been at it for around 20 years now and I still learn new things with every project. :)

BTW, Irrlicht has one of the cleanest, well thought-out APIs I've seen. You can learn a lot just by studying the API docs and working at understanding the Class diagrams.

Cheers!
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

Thanks guys, I've got a lot to think about.
Hope I'll pass this phase with flying colors :lol:
Image
Dev State: Abandoned (For now..)
Requirements Analysis Doc: ~87%
UML: ~0.5%
Post Reply