I know this is alot to ask, i know this is a big task to start all of a sudden and i know that i will probably get stuck and give up, but i am really interested in making a 3D engine from scratch, and i need help, can anyone give me some starters or something, i dont know what to ask for, there probably arnt any tutorials on writing whole 3d enigines from scratch.:P

any help would be greatly appreciated :)

Recommended Answers

All 14 Replies

I wouldn't start on it if I were you unless you have somesort of degree in Math en know your C++ really well.
But you could start by learning OpenGL or Direct3D I guess.

Good point, i've tried them, i guess i'll go and try OpenGL again, and mabey start Direct3D after, always room for learning somthing new!

Not sure if you got this link already, but NeHe made an excellent OpenGL tutorial.

When you're familiar with OpenGL, the step to DirectX might be a bit smaller.

First of all u have the ability to understand the 3d mathematics then u should first complete the C++ object oriented programing then shift to learn opengl (if u master the above 2 things 3d programing becomes easy for u) the best tutorial that i find iswww.videotutorialsrock.com/ and nehe.gamedev.net/ are of the best.when u aware of the opengl programing then u have to try making the 3d engines.their is no shortcut making 3d engine requires lot of experience of 3d video programing.

The one nieke_e posted and this tutorial http://www.codecolony.de/opengl.htm are my favorites, on OpenGL. I threw together a quick 2D engine, in about a day, after reading a few of those articles.

can someone post the download link for opengl and glut?
i cant seem to find them :S :P

DOnt worry, i fixe d it :D

If you're relatively new to making 3D engines or any type of program intended to create a 3D map/game in any manner, you should try simpler parts of it first, like creating a map from a notepad file etc. and then piece them together and edit it around until you have a satisfactory engine.

SS

Why do you want to succeed at building a 3D engine from scratch?

Of course you will be learning/using C++, OpenGL or DirectX
using perhaps the NeHe examples as starting points.
What is the 3D engine for? Games?

Starting "From scratch" might be OK for a hobby.
Starting "From scratch" might be going too far to the beginning
if your interest is professional.

If your interest is professional then you may consider college
classes and/or trade school classes.

But to get marketable skills, you may want to improve on an
existing 3D engine.

An example 3D engine is the Irrlicht 3D engine because it can
be used for commercial products.

Download and study the Irrlicht Engine and study the latest
advances in rendering technology from nVidia and/or ATI.

You will need a content generator, perhaps Blender.
Study the output that Blender provides such as shadow maps.

The following URLs can get you started:

Irrlicht 3D engine:
http://irrlicht.sourceforge.net/index.html
Blender:
http://www.blender.org/
Rendering Technology:
http://www.developer.nvidia.com/page/home.html
http://developer.amd.com/GPU/Pages/default.aspx

Educationals:
http://en.wikipedia.org/wiki/List_of_game_engines
http://en.wikipedia.org/wiki/Scenegraph
http://en.wikipedia.org/wiki/Shader_(computer_science)

A recent lesson I learned that "Starting from scratch" means
that you are already behind.

Why would you not want to write one?

Gives you a better understanding of things anyway.

I know this is alot to ask, i know this is a big task to start all of a sudden and i know that i will probably get stuck and give up, but i am really interested in making a 3D engine from scratch, and i need help, can anyone give me some starters or something, i dont know what to ask for, there probably arnt any tutorials on writing whole 3d enigines from scratch.:P

any help would be greatly appreciated :)

Well I can suggest working with a DirectX or something, and learn and make a 2D engine first. This will allow you to learn more about making an engine and game, which is a good basis.

If you set it up properly you can convert what you have done and work on a 3D engine later, you then already have 2D code in the program for a UI or drawing simple things on the screen and then you can do the 3D parts of the game with the new code you learn.

It is wise to make it very modular, I guess you would call it. Break it up into parts so you aren't trying to handle everything in one file.

I know this is alot to ask, i know this is a big task to start all of a sudden and i know that i will probably get stuck and give up, but i am really interested in making a 3D engine from scratch, and i need help, can anyone give me some starters or something, i dont know what to ask for, there probably arnt any tutorials on writing whole 3d enigines from scratch.:P

any help would be greatly appreciated :)

I would not recommend trying to use the source of an existing engine and edit it, when I started programming I tried to do exactly that and just confused myself more than anything, you really MUST understand the principals behind how engines work before you can even comprehend most engine code.

Me and Squad are working on a 2D engine at the moment (that WILL be expanded into 3D by next month(2D system used for GUI instead), while I'm afraid the project is our little baby and we wont be releasing the entire source for quite some time if at all (apart from the odd snippet to explain things or get help) I'll happily explain to you the principals involved in using an API like DirectX if your serious about it.
I should warn you though you'll need a decent understanding of C++ before you start, while DirectX and OpenGL can be used with other languages (VC# VB etc) It's my personal belief that c++ remains the best language for proper game coding.

If your thinking of making a 3D engine without an API, good luck and contact your local mathematics professor. Even if you take away all the insanely hard math involved you still will find yourself needing to access the graphics hardware directly to get any kind of framerate, something I'm not sure is even possible under windows.

If your more interested in a less complicated approach than using an API (DirectX etc), I would recommend wrappers like OGRE, XNA, or DarkGDK, while they are still highly complicated methods you may find them simpler. As for education I would recommend considering at least a month with guided study of C++ (even if that guide is the internet) if your a novice, after that or if your experienced in C++ university courses in game programming or development are your best real option. Personally I learnt nothing from my first year there having learnt most of the DirectX API at home already, that said I spent nearly two years studying it as a hobby.

Anyhow like I said, if your serious and would like some pointers and help E-Mail me at DarthPJB@Gmail.com, I normally check it once or twice a day so don't be expecting instant replies.

I've bought a book on c++ which was written by Bjorne Strousrup
who is the original designer and implementer of the c++ langauge, the book is 2000+ pages long and I have learnt lots and lots from it,
I have also learned some of the DarkGdk and I am starting to make a serious game with it. :)

I've bought a book on c++ which was written by Bjorne Strousrup
who is the original designer and implementer of the c++ langauge, the book is 2000+ pages long and I have learnt lots and lots from it,
I have also learned some of the DarkGdk and I am starting to make a serious game with it. :)

I have the same C++ book I believe, It's a fantastic resource. Microsoft have updated some functions of the ANSI c++ standard with more 'secure' functions (fopen to fopen_s for example) however you can still use the old ones you'll just get a C4495 warning.
Beyond that good luck and have fun!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.