fullscreen
timer
qrcode
plickers
selector
edit
reset

Game Engine Foundations

COS 170 - Introduction to Game Engine Design

Game Engine

The term "game engine" arose in the mid-1990s in reference to first-person shooter (FPS) games like Doom by id Software.

Prior to this, the software running the game was the game.

Following, a separation grew between the engine and the game.

The architecture of the software differentiates game engines from game software.

Game Engine

Game engines:

Runtime Engine Architecture

Game Engine

For this course, we will focus less on separating the game from the engine and more on what are the key components that make up a digital game and game engine.

We will use variables and different resources (graphics, audio, etc.) to "tune" each game to be different, but the engine and game will be tightly coupled.

Types

study: FPS games

[ Wikipedia: Wolf3D, Doom, Quake, Unreal ]

study: FPS games

Wolfenstein 3D (1992)

study: FPS games

Doom (1993)

[ Wikipedia: id Tech 1, Duke Nukem 3D; Moby Games: Heretic ]

study: FPS games

Quake (1996)

[ Wikipedia: id Tech 2 ]

study: FPS games

Unreal (1998)

[ Wikipedia: Unreal, Unreal Engine Games ]

basic game

Basic game elements

  1. Main Menu
  2. Game Loop (may be recursive)
    1. Start
    2. Middle
    3. End

basic game: main menu

The main menu is the landing page or "cover" for the game. The tone of the game is presented here. Players should be able to get help if they need it.

basic game: game loop

After the game and level are started, the game engine goes into a not-quite-infinite loop: the game engine stays in the game loop until the player is dead, the player has won, or the player has quit.

Typical actions done by engine in game loop:

breakdown: tic-tac-toe

What are the key elements of the game Tic-Tac-Toe? (game)

If we were to make a clone, what code will we need to write and data to store

breakdown: pong

What are the key elements of the game Pong? (game, blog, source)

If we were to make a clone, what code will we need to write and data to store

[ Code inComplete ]

game states

game states

×