Archived

This topic is now archived and is closed to further replies.

pt99rbl

Design-discussion!?

Recommended Posts

Hi there! I''m kinda interested in the aspects concerning the design-phase of a 3d-engine developement... So, is there any other people out there who wants to discuss design-approaches and such... Maybe there is a forum, not like this but more like a continous forum. It would be nice if someone could point me in the right direction. I know there is opensource-projects, like those on sourceforge...¨ /Richard

Share this post


Link to post
Share on other sites
Hey - this is a continuous forum! lt&;knocks on wood>

I''m quite interested in the design of 3D engines as well - but a truism of all fields of engineering is that you can''t effectively design something if you don''t know how it works nor if you don''t know how to build it. Kind of a Catch 22 (chicken & the egg, if you''re unfamilar with the novell).

So I''d suggest looking at some professional engines:
The Nebula Device
Jet
Look for Quake or DooM Source

Nebula is a completely free OO engine in development, documentation was lacking last time I looked at it, it may be better now.

Jet is a free-to-use, pay-to-publish engine, they are seeking patents so basing or deriving your engine off the Jet engine is a bad idea, in case the patents are actually aproved. The documentation is very good.

ID gets bashes alot about thier code and design, but it does get the job done and is straight-forward. You''d have to reverse engineer thier design though.


If you''re ready to design an engine the first step is requirements analysis - this is where you figure out what is actually required of the engine, as well as what is desirable and not.

Magmai Kai Holmlor
- Not For Rent

Share this post


Link to post
Share on other sites
Howdy again!

I agree totally with what you are saying.
Learning by doing is an expression that I live by...
I''ve been looking at the design of the Nebula-engine, but also at another engine called Bluewater.
I''m especially interested in the design concerning DLL-loading, which I think both Nebula and Bluewater handles very well. I guess you know what I''m talking about.

Of course Jet handles these kind of things to, but Jet is kind of too large as a project for me. I''m currently just developing a 3d-engine, not a game-engine which I would call Jet.

So...There is no opensource-sourcecode out there that I haven''t seen =O) Just kidding!

Quake source-code - don''t like it from an educational point of view.
DooM - ? Please tell me that you don''t mean Doom (2D) =O)

I''m studying to be a software engineer, the third year now at the university of Blekinge in Sweden, so it feels like I have to have some "field-experience" to.

It''s different to speak to the class-mates, since they know exactly what I know and they are eager to show of their knowledge with fuzzy words and flashy patterns, like me when talking to them...=O)

As I understand it, it''s not the same thing on the field, as it is in school.

I''m at the point where I should design. I''ve done the appropriate analysis and conceptual diagrams and so on...

Been working on a 3D-engine for about 2 years now, so the know-how thing shouldn''t be a problem.

/Richard

Share this post


Link to post
Share on other sites
Well in that case, define your requirements and objectives, design it and code it.

Is cross-platform support or cross-language support important? If you're the pipe-dream type, try cross-language-platform - if you're for the most bang-for-the-buck pick a platform and a language.

OO or modular? (The only two sensible choices)

How should the engine be used by the API programmer?

How can the API programmer extend the core engine?

How will you extend/alter/admonish the engine?

What is your performance objective? (since it's a 3D engine, what hardware is required for what results?)


Those are architecture questions (I'm sure there are many more you'll want to ask), the answers to which beget design specifications. Decide what it should do, then decide how it shall do it, then do it.

Where and how you use .dll's is in the second part (IF you use them is in the first part.)

Magmai Kai Holmlor
- Not For Rent

Edited by - Magmai Kai Holmlor on November 19, 2001 7:16:56 PM

Share this post


Link to post
Share on other sites
Thanx!
Ogre has been "evaluated" already =O)
But Orion3D has grown much since I saw it the last time, so I''ll take a good look at it!

/ Richard

Share this post


Link to post
Share on other sites