3D Engine.

Started by
10 comments, last by Jwk 24 years, 3 months ago
I want to make a 3D Engine. Where can I find some books or articles about it? Thanks
Advertisement
Assuming you have skill with some language like C/C++, you need to pick a API to work with. Direct X and OpenGL are the major ones. I''m more partial to DirectX but both are good. However, if you are new to graphics theory and programming I would suggest starting simple for a while, perhaps do a bit of 2d coding, and also do lots of reading. There are several decent books out there (Introduction to Computer Graphics / Real Time Rendering). 3d can be difficult is you''re new to it. Have fun!
I would suggest to read some articles about Matrix calculations and 3D transformations. Then you have to choose which API do you want to use. I would suggest DirectX, because the SDK has the better documentation. Then read the documentation( Direct 3D Immediate Mode tutorial ) and the code of the samples. After that you can write a simple 3D-Engine.
Check this out: Matthew Studios
Also try reading the red book that is about OpenGL rendering/3d stuff. By reading OpenGL and D3D books I began to understand limits of some APIs. So based on that you can pick the API you feel gives you the edge. You see, making a 3d engine is not all about math/rendering techniques but mostly how much control you give to the API or user of your API and how much to give to your engine. Also, good structuring techniques are learned only by experience i.e. writing a lot of code and see where you can improve it or make it better. The structure of the whole engine si very important. Do you break your engine into dlls or not, do you make sound internal or allow for expansion modules, how about which API you use for rendering, or will you use inheritance or straight c code, or STL. All of these are learned through trial and error, but nothing is wrong if you can make the right decisions now, although you never think that this engine is the one. I read somewhere that engines are never completed, but become work in progress. Search the internet for info, or think about reading an engine code like CrystalSpace or Genesis3D or Quake1 to learn how it all fits together. I read Quake1 and Genesis3D source and learned a lot from them. For articles search flipcode on their portal engine. Best of luck to you.

Jerry
flipcode has a tutorial for creating a 3d portal engine at: http://www.flipcode.com/portal/

Also the 3d engines list contains many open source projects that you might want to look at. http://cg.cs.tu-berlin.de/~ki/engines.html
Take a look at www.virtually3d.com. This 3d engine is compatible with OGL, DirectX, and others. There are plans to bring it to the Playstation, and DreamCast. What I think is really neat about it is that they have ported a piece of it to WindowsCE and the company has ported it to a Lingo interface for inclusion in Flash/Shockwave applets over the web. Check out www.groove3d.com to see what I mean. From my discussions with the company owner, he says that even the web based version can now take advantage of hardware acceleration. How I don''t know, nor do I know the size of the download but soon the later may not matter as much.

Just thought you might be interested in this.
Kressilac
Derek Licciardi (Kressilac)Elysian Productions Inc.
wanna make a 3D engine?
first you have to know 2D pretty well, cuz if you cant
even do 2D, you''re going to struggle with 3D.
To tell you the truth, 3D math isnt as complicated
as you would think. Yes, you have to fool with rotating
points around 3 axises with matrixes and stuph,
But I was expecting long complicated sin-cos functions.

personally, I prefer to write my own 3D engine than
use one already built for me like DirectX. I prefer
to know exactly what my code is doing, exactly how it
works, and if it could be speeded up or not. I dont know,
to me, just calling functions written by other people
isnt what game graphics programming is about.

A good book, if you can find, is:
Michael Abrash''s Graphics programming black book
Its great! I recommend it to anyone beginning in
3D graphics programming.

well, I said my two cents worth. =)
http://fakemind.com
Yeah it''s good to do your won 3d and know what is going on, but you gotta realize that the people that made these APIs know what they are doing, plus you get access to hardware functions.
I do agree that the people that wrote the APIs know
what they''re doing, but the functions they give you
arent perfect for every 3d game out there. Sometimes
you have to talor it to your game, and that requires
knowledge of how they work.
(and you can get access to hardware functions without
using APIs too)

basically, Im not putting down using APIs, just
using them without knowing exactly how they work
and what they do.
http://fakemind.com
You know some of the engines I have looked at have been optimized for many platforms. A couple have gone as far as to use assembler to do this. I do not have the team nor do I have the multi-platform expertise to get this done. Instead of worrying about the engine, I black-boxed the thing and am going to focus my efforts on things I can more readily control like content, AI, networking, and other aspects of the game that make just as big of an impression. Don''t get me wrong though, when needed I will go into the source given to us in the lease and edit where needed. I guess I disagree with the can''t trust anyone but yourself to do it right take on the whole thing. The guys that wrote the engine are no idiots. Competition between many 3d engine vendors assures this. I don''t believe we should have to get that low level for every aspect of the game. A few maybe but why rewrite a bsp-tree or a z-buffer when it has been done a billion times already.

Kressilac
Derek Licciardi (Kressilac)Elysian Productions Inc.

This topic is closed to new replies.

Advertisement