Gamasutra: The Art & Business of Making Gamesspacer
3D Engines for Games: A Broader Perspective
arrowPress Releases
August 25, 2016
PR Newswire
View All

If you enjoy reading this site, you might also want to check out these UBM Tech sites:

3D Engines for Games: A Broader Perspective

October 13, 2000 Article Start Page 1 of 5 Next

You've developed an object viewer, a Quake level viewer, a radiosity renderer and a patch tessellator. You know 3D math, OpenGL and the 3DS file format by heart. Now you want to go further -- you want to use this knowledge to develop an entire engine.

Does this seem like a large task for you? Well let me tell you, it is. Anyone who has developed a complete game will agree with me. Many people give up or start over along the way. But there are a number of things you can do that will increase your chances of reaching your goal.

I will not try to tell you how to make a good, playable game. Nor will I tell you how to program any specific parts of an engine. In fact there won't even be a single line of code in this article. Rather, I want to encourage you to think beyond shadow volumes and dotproduct3. Think about what it will all be used for, and work with this goal in mind.

Even though this article talks about the development of a 3D engine, the same techniques should be applicable to, for example, 2D or playing-card game engines. The main goal is to enable you to quickly and (relatively) painlessly develop an engine and a game that uses it.

What to Consider

There are three steps that I undertake before beginning work on an engine:


  1. Set the goals for the engine. What will it actually be used for? Who is going to do all the hard work? And does it seem feasible at all?
  2. Define the feature list. When you know the goals for the engine, and the possibilities of the team, you can define what the engine must be able to do.
  3. Define the overall structure and the subsystems required. Knowing what an engine is required to do, you define how it should do it. This is how you determine which subsystems to create, how they should interact, and the order in which to program them.

These three steps might require a few days at the beginning of the project (when you're eager to get busy with your compiler), but I guarantee you that the time will be well spent. It is entirely possible to develop a game without any planning at all, but the further you get in development, the more you will wish you had devoted some time to planning in the beginning.

Article Start Page 1 of 5 Next

Related Jobs

Lionbridge Technologies
Lionbridge Technologies — Irvine, California, United States

Software Test Engineer (STE) -Irvine, CA-(#326)
InnoGames GmbH
InnoGames GmbH — Hamburg, Germany

Senior Automation Engineer/ Software Engineer in Test (f/m)
Vicarious Visions / Activision
Vicarious Visions / Activision — Albany, New York, United States

Tools Engineer
Fermat Software
Fermat Software — Plantation, Florida, United States

Senior SDK Software Engineer (Virtual Reality tools group)

Loading Comments

loader image