Advertisement

Help with a 3d-engine

Started by February 17, 2001 03:27 AM
2 comments, last by Halloko 23 years, 9 months ago
Hi everybody. I''m 16 years old and I''ve been into programming for quite a while now and I''ve been reading a lot of tutorials on making your own 3d-engine. BUT neither of all these tutorials have managed to ecplain EXACTLY how to build your own engine. They all describe vectors, planes, matrices and stuff like that, but they don''t tell how they''re used (and what they are used for). So I figured, when I saw this huge Nehe Site with a lot of great tutorials (I''ve read almost all of them), that there had to be someone who knew about making a 3d-engine. At first I''m satisfied if I can make some boxes (maybe texture them) and then move freely around them (later the more advanced things like Hidden Surface Removal can be implemented. Hope you can help me, ''cause I''ve searched almost the whole web for tutorials and now I just want to get started... THX By the way, I program in c/c++ (and OpenGL) Halloko
Hi,

you will not find a single resource on the web (or in a book) that explains to you how to make a 3D engine. Because there exists different 3D engines for different purposes.

If you are still beginning with programming and OpenGL then this is a huge task. Keep it smaller so you stay interested and have quick results.

I suggest to start with lesson10. Try to rebuild it, play with it and then try to make small adaptions while using the other lessons to learn new OpenGL stuff.
Try to implement what you learn in the other lesson in this one lesson.

Good luck and have fun

Jan

Belgium
Advertisement
There''s not _one_ way to program a 3d engine... There are soo many... It really depends on what you wanna do.... (Terrain, Indoor, both? ;o)

But I might can give you a little start:

Learn the basics of the WinAPI (you''re Using Win32, right?).

in main(); do all the initialisation. (you can call subfunctions too ;p)
then as soon as you''re done with that start your main loop... that''s the loop where you handle all the messages from the user and the OS. Let this loop run until you get a Quit message (either from the user or the OS).

For the beginning you can put the loading of a map into the initialsation code, but later you might build a console where you can execute commands from (i.e. load another map), then you''d have to handle that in your main loop.

phew.. loading a map: Ok, you either make your own map format, take a model format or jump into the world of .bsp. The last one might be a bit to hard to start off. I''d go for the first one... It''s not that hard, although you might have to write plugins for other programms or maybe even an own Leveleditor (like me :o). The map format contains the geometry data, which textures to use where and later on a bunch of other stuff (scripting, map animation, speedup precalculated sorting (BSP), and so on..

Ok, I guess that''s a point to start from. Another tipp is to look at code from other opensource projects (but don''t copy them, learn from them!) and find out how they did it..

hope that helped,
cya,
Phil

Visit Rarebyte!
and no!, there are NO kangaroos in Austria (I got this questions a few times over in the states
Visit Rarebyte! and no!, there are NO kangaroos in Austria (I got this question a few times over in the states ;) )
Designing engines requires _LOTS_ of prethinking. This means sitting down for a few weeks gathering your ideas (not on the computer) before you accually begin working on. Discuss with yourself, what approaches will I take at _________. One thing that will help you is knowing C++ strongly. Using OOP to it''s fullest. When the time comes when your ready to begin (having fully prethinked) start work on the class that is most important to others and so on. Things to aim for are flexibility and making sure your engine can be upgraded.

Now your probably saying, "But I don''t wanna spend a few weeks gathering thoughts." This is okay. Go ahead, begin right away. The problem with this approach is you''ll hit several dead ends and have to recode many areas several times. Deep into your work you might hit a large dead end and have to redo entire areas. This will make your work VERY stressfull and probably end in quiting or starting over.

- Alright that''s all the tips I can think of at this moment. Good luck, bro.

This topic is closed to new replies.

Advertisement