The Game Engine

Started by
9 comments, last by pan narrans 21 years, 10 months ago
The term ''game engine'' is bandied about a lot. Everyone and his pet monkey seems to be working on a 3D game engine these days. Well, me too! A simple definition of a game engine could be: "the system that processes information in each iteration of the main program loop, producing the graphical output to be displayed". As this term is used so often i just wondered exactly what everyone means by it. Is it a fixed concept, or is it open to interpretation? What elements would you consider essential/desirable for a fully rounded game engine. -Leigh
Minister of Propaganda : leighstringer.com : Nobody likes the man who brings bad news - Sophocles (496 BC - 406 BC), Antigone
Advertisement
to me an engine (in c++ of course) is
a series of tightly interwoven classes that
work together to make up all aspects of a game..
input, graphics, logic, ai, gui, sound, ect...
some people are working on complex 3d systems
that are pretty much so big they've got to be
organized into their own engine.. ie) camera
classes, particle classes, file loading, texture
managment, geometry culling, ect ect...
if you've got a simple game loop that makes a few
Win32 api calls, then it's not an engine..

by the way, when i say "classes" i'm speaking
from my C++ foothold.. if you use C, it'd be
an organized series of functions that interact
pretty much seamlessly to fit a specific need.
anybody can go download Bob Smith's DirectInput
routines and load it into their project and say they're
done with their engine.

just my opinion.. some people might think it's a bit
overly complex but thats just how i see it.

-eldee
;another space monkey;
[ Forced Evolution Studios ]

::evolve::

[edited by - eldee on June 4, 2002 6:22:21 PM]

-eldee;another space monkey;[ Forced Evolution Studios ]
From what (little) I know, the game engine is not the game. The engine doesn''t include things like the game''s story, the actual data like textures or 3D models, or anything along those lines. For example, the game Unreal is powered by the Unreal engine, but the Unreal engine is used for entirely different games, such as Deus Ex.

No, HTML is not an OO language.
Organising individual game elements into classes (such as input, sound, camera, etc) is certainly the way I work, and is nigh on essential if you want to reuse/expand engines (or is it? opposing arguments welcome).

Out of interest, when a company leases a game engine, the Quake 3 engine for example, exactly what do they get? Is it just graphics, or sound, input, AI, etc?

-Leigh
Minister of Propaganda : leighstringer.com : Nobody likes the man who brings bad news - Sophocles (496 BC - 406 BC), Antigone
they usually get the full source code
My definition of a game engine is about the same as eldee's.

quote:Out of interest, when a company leases a game engine, the Quake 3 engine for example, exactly what do they get? Is it just graphics, or sound, input, AI, etc?

I talked to a guy who got his hands on the Serious Sam engine and was making an RPG with it. From what I gathered it gives you just about everything it takes to put together a game. All you need to do is model, texture, compose, and then use the engine's functions to make it do what you want.
All you need to know is what function to call and when =)
EDIT: But don't hold me to this. It's just what I picked up from a single (fairly short) conversation I had while playing a MMORPG.
------------
aud.vze.com - The Audacious Engine <-- Newbie alert, look at your own risk. Can induce severe laughing fits and other variations of hysterical outburst.

[edited by - LockePick on June 4, 2002 9:04:43 PM]
_______________________________________Pixelante Game Studios - Fowl Language
My definition is pretty much the same as masonium''s. Another good definition of an engine is: everything non-programmers don''t see in a game. (Non-programmers only pay attention to the models, story, level design, etc.)
BTW, masonium, nice sig. A lot of A$$ho1es don''t realize that HTML is not programming. I''d say its really simple scripting.

Proceeding on a brutal rampage is the obvious choice.
___________________________________________________________Where to find the intensity (Updated Dec 28, 2004)Member of UBAAG (Unban aftermath Association of Gamedev)
The way I think of engine , is the funstions that handle everythin gu nee din a game , like loading all images , models, sounds etc, not only that , I se eit as somethign which will handle things like collision , statistics, things like that , the things that need to be calculated during runtime , stuff like that


Cheers

Stealth
A Game Engine is generally speaking just a glorified wrapper around a set of Given resources. Direct X, Or Open GL, not that it is easy to create or execute. And of course with Open Gl you still have quite a ways to go. Not bashing but if you want a concept that will enable you to type your first line of code on a project you will call a game engine, then begin by encapsulating and harnessing wichever resource you will base your engine on (e.g. DX or O_GL)
It''s really pretty simple, first:

there is not just one definition of an engine, or game engine, it is a loose concept that means no more or less than: "a set of things that may be used to build more than one other thing" For example, "Quake 3" is a game, but the "Quake 3 Engine" is a subset of quake 3 that is suitable for using to create other games with. The common difference between a game, and a game engine, is usally easy to expain, a game engine will almost always contain most or all of the technology (code / binaries) that drive the game, and often the tools which help make levels, graphics, AI scripts ... whatever ... but will almost never include the actual RESOURCES (art, sounds, textures, levels, logo, rights to characters and story, etc) of the actual game.

The harder part is differentiating between a "game engine" and a "library" or a "framework" ... these things can all be used interchangably. But they have a slightly different feel. A "library" is often used to describe an actual set of code, and the functions / classes it provides, without dictating any other tools, or rules for their use. A "framework" is usually used to refer to a library or set of libraries that is designed to be used in a certain way, or for a specific purpose, such as a GUI framework that might tell you to name your variable a certain way, or call things in a certain order ... An "engine" is usuaully a framework, tailored to do a LOT of the common work in a specific domain ... in other words, a very inclusive and specific framework. So that "quake 2 engine" or "lith tech engine" are "3d game engines" they take a way an enourmous amount of the work required to create a 3d game, but they do not attempt to make the different pieces general purpose enough to be used easily to create 3d slide shows, or to simulate models in astrophysics.

That''s my 3 cents, keep the change

This topic is closed to new replies.

Advertisement