Advertisement

What exactly is a Game Engine?

Started by December 25, 2000 05:58 PM
21 comments, last by baskuenen 24 years ago
The Half Life SDK doesn''t include the engine source. Half Life works like this:

[Engine]-[Game DLLs]-[Data]
|____________________|

engine = hl.exe
game dlls = something.dll I can''t remember, there''s 2 of them
data = maps, textures, characters, sounds etc.

The SDK provides the source to the DLLs. This isn''t the engine, it''s another layer between the data and the engine. If you read the source you''ll see that it handles game specific stuff like the hud, the weapons, characters.

This system means you can customize a game which uses the half life engine greatly without having the source code to the engine (it costs loads to license the engine code). Another method some game engines use is a scripting language (eg. Unreal Tournament).

Hope that explains the question of this topic a bit too.

Frank
http://members.nbci.com/markohara/gtest/basicconcepts.htm

Hootie

Cheyenne
Genesis3D Classic Engine
Jet3D Destiny Engine
Advertisement
My concept of an engine of any sort is something that can be relatively easily reused and occurs in more than one game. So most fps games have engines because it is used elsewhere, but there isn''t a Starcraft engine because it''s only used in one game, Starcraft.
Easy question.

Think of a car. A car has an engine, wheels, steering, body, wiring, etc..

Now relate these parts with a computer program.

Is a complete car just an engine? No.
Can a car run without a engine? No.
Can a car run without a headlight? Yes. So the engine must be more
important than a headlight.

That means a 3D engine does not describe a complete program. It is
only part of it, but it is a very important part. It cannot run
without one.

Here''s my take (flawed as it might be). The engine is the code for the game. It will have your AI, your blitting routines, your 3D routines, your input routines, your super self destructo ray, whatever you have to write code for, I would clasify as an engine. However, the engine isn''t a game, as you will need support files (data) to complete the engine and make a game. The support files (graphics, 3D models, sounds, text, level maps, pictures of the super self destructo ray, etc) combine with the engine to create a game. Without the engine, your graphics are just pretty pictures, and without the support files, your engine is just a pile of code that can''t do anything.

Another way to put it:
Engine = Logic;
Game = Engine + Data;

Later,
Micah
Thanks guys for all the good response!
I''m happy to see not all of you agree. It wasnt a stupid question after all

I was told OpenGL / Direct3D are only API''s - no 3D engines. Why is that? They fit in almost all of above descriptions as being engines!

Advertisement
I''m currently working on something which might eventually resemble an engine. Here''s how I think of it:

I''m going on the Half-Life (and now almost all other 3D shooters) by providing three levels: Core, Game Engine and Data. I initially tried to create an engine DLL and a game exe, but it was a little difficult to pass data between the two easily. So I changed, and decided to redesign the system.

Thanks to the guys at Epic and Valve, the source code for Unreal and HL mod makers has provided some insight into this area. I got some insight into how it was done, then went on my merry way redesigning for this style. It has it''s problems too, but which can be overcome easily.

If you''re going to take this approach, I suggest you write out HEAPS of documentation BEFORE you start, then you try to stick with your design. I initially tried the "design-as-you-go" prototyping method, and I only got confused and made plenty of dumb mistakes.

Hope this helps somewhat,

Simon Wilson,
XEOS Digital Development
XEOS Digital Development - Supporting the independant and OpenSource game developers!
Here''s the definitions in the Game Dictionary. A bit vague and ambiguous, of course, but definitions of all sorts tend to be that way to avoid exceptions.

Gruad the Dealy Lama

"What sounds to you like a big bloat of trashy old noise
is in fact the brilliant music of a genius--myself" ~ Iggy Pop
=======================================Matt Welch"What sounds to you like a big bloat of trashy old noiseis in fact the brilliant music of a genius--myself" ~ Iggy Pop
No, OpenGL and DirectX aren''t engines. They are APIs. They don''t do everything a game needs. This is because they provide an abractions between the OS/hardware and your game. A game engine provides an abstraction between those APIs and your game. OpenGL and DirectX are the tools you use to create engines. You usually don''t make games from API functions directly. You call some game specific function, which in turn calls the API functions.

Hardware/OS -> API -> Engine -> Game

Using that car analogy.
Your game is the car
Your game engine is the engine (obviously)
Those APIs are the components in the engine.

Why is it called an engine? It''s the vital part that makes those wheels turn, the gas pump, and your game go. What YOU add is the tires, the body frame, the leather seats, and the logic specific to your game.

Well hope that helped.
Ok the car example was good, but a game engine is the code that does the work. The 3d engine is part of the game engine, and starcraft did have a game engine, every game has one. Now the engine is what is behind what you see on the screen. It is responsible for displaying models on the screen and stuff. That is why you hear stuff like the game uses the quake engine or this game uses the half life engine. That basically means it took the half life game and put different levels and characters and sounds etc... Hope that helped.

Matthew
WebMaster
www.Matt-Land.com
It is foolish for a wise man to be silent, but wise for a fool.

This topic is closed to new replies.

Advertisement