How to build a 3D Engine?

Started by
4 comments, last by maxgpgpu 11 years, 3 months ago

Hi~my engilsh is pool,sorry.

I program game about 1.5 years. Now I can program a easy 2D game or easy UI system if I want to code.

In the beginning of 2013, I contact 3D program and shader.It's a new field for me.I want to learn some 3D technology,but after I read some books,I still can not use the technology in practice.

I think it's time to build a 3D Engine,so I can learn the 3D technology in deep.How can I build a 3D Engine?Do I need make a 3D game using a 3D Engine first like OGRE or Irrlicht so I can learn easily?

Experienced people can guide me? Thank you very much!biggrin.png

Advertisement
If your interest is 3D, learn 3D graphics first. Don't even consider designing and building a 3D engine if you do not have a good grasp of 3D concepts and implementation. Check out the APIs (DirectX/OpenGL), brush up on your linear algebra and work your way through tutorials of the API of your choice. Build some tech demos to flex your skills as you progress, then you'll be in a position to start pondering games, engines and other such creatures.

Another way is more top-down. Try out and experiment with existing engines to get a feel for how things are put together as a whole and what sort of functionality you should be exposing to the user in your future designs. Of course, an understanding of 3D concepts is still needed (esp. the linear algebra part) but not at as fine a level. Work your way down from ther.

If you're just starting learning 3D, you're better off just using an existing engine than making your own, although you should first get (at least) some understanding of 3D graphics APIs and some math, as has been already said.

You can check various tutorials online:

Nehe for lots of OpenGL tutorials (although some are deprecated, they are still useful) http://nehe.gamedev.net/

If you're

Lighthouse3D have VERY interesting & useful OpenGL, and Math tutorials http://www.lighthouse3d.com/

These are OpenGL/GLUT tutorials, as i don't use DirectX, but i'm sure you can find many others on Google.

Ah, and of course you can (and should) use GameDev as a resource too, since the forums (and the site) exist for that purpose.

3D graphics is a very small component of what makes the entirety of a 3D gaming engine. You still have to create programs for sounds, importing, exporting files of sounds, models, etc, camera, physics for all objects, and a lot more.

I suggest starting with the NeHe tutorials. Once you understand the basics of 3D, then move on to shaders.

If you are more interested in getting a game together than learning about 3D graphics then use an engine like Orge.

- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara

There are also a couple books about game engines, at least one of which includes a reasonably advanced engine. You should at least read those books. You might also consider finding a game engine project and offer to help on that engine. You'll not only have a real example to work on, but you can certainly ask others about the subsystems they design and implement.

A powerful 3D game engine today is one huge project. You can, of course, limit your engine to games in which thorough collision-detection and collision-reponse (physics) is not required, and that will reduce your workload by about 2/3. You can always add them later.

In fact, if designed in an intelligent, modular way, it should be quite natural and straightforward to add capabilities and features one-by-one, once you have the essentials working (which means basic window display and management, 3D objects and hierarchies, 3D graphics, 3D rotation/translation/manipulation).

Still, a modern game engine is a huge project. It is feasible, if you invest enough time, effort and diligence, but it will require a lot of work.

This topic is closed to new replies.

Advertisement