The Architecture of the Kapow Systems Engine by Jacob Marner, - - PowerPoint PPT Presentation

the architecture of the kapow systems engine
SMART_READER_LITE
LIVE PREVIEW

The Architecture of the Kapow Systems Engine by Jacob Marner, - - PowerPoint PPT Presentation

The Architecture of the Kapow Systems Engine by Jacob Marner, M.Sc. Architecture Manager Deadline Games What is Kapow Systems? Production tool for making games A sand box Cross platform run-time system Supports PC, Xbox and


slide-1
SLIDE 1

The Architecture of the Kapow Systems Engine

by Jacob Marner, M.Sc. Architecture Manager Deadline Games

slide-2
SLIDE 2

What is Kapow Systems?

  • Production tool for making games

– A sand box

  • Cross platform run-time system

– Supports PC, Xbox and PlayStation 2

  • Box of tools for making game

– No game specific components

  • Was used to create Total Overdose
slide-3
SLIDE 3

Key Features

  • Integrated editor
  • Fragments
  • Entity type Database
  • Memory management system
  • Cross platform asset generation
  • TNT script language
slide-4
SLIDE 4

Layered Architecture

Libs Kernel Editor Plugins Main

Adapter (The hardware abstraction layer) Toolbox Math Freetype Multistream Asset system Entity database Scene graph classes Collision system Script system Editor system Editor library zlib Photon mapper Memory Manager Expat Animation system Mockup system Particle systems Path finding Physics Kapow Engine class

slide-5
SLIDE 5

Entity type Database

  • Run time type information (RTTI) system
  • Used for multiple purposes:

– Automatic GUI generation – Saving and loading scenes / fragments – Script interface – Saved games – Rewind system – Later: Undo in editor

slide-6
SLIDE 6

Entity type Database, cont.

class Model : public Node { ... void Register() { tModel = new EntityType("Model"); tModel->InheritFrom(tNode); tModel->SetCreator((CREATOR)Create); ... tModel->RegisterProperty( "hard_alpha_factor", tNUMBER, FLOAT_GETTER(Model::GetHardAlphaFactor), FLOAT_SETTER(Model::SetHardAlphaFactor), "control=slider|min=0|max=1"); ... } ... };

slide-7
SLIDE 7

Asset Generation

3D Max model (.max file) <<becomes>> XML file (.model file) Editor <<slow load>> Native file (.model_pc) <<auto-generates>> Native file (.model_pc)

First use of asset after change of original version (in editor) Subsequent uses (in editor)

Editor <<fast load>>

Asset path for Asset block generation

Editor <<generates>> Asset block (e.g. a .map file)

Release build Asset path

Asset block (e.g. a .map file) Release run- time system <<fast load>>

slide-8
SLIDE 8

Memory Management

  • Consoles have no virtual memory!

Fragmentation is a big problem.

  • We segment memory and make a seperate

allocator for each:

– Frame based allocator for game levels – First fit allocator for small temporary things – Best fit allocator with flushing for renderlists. – Best fit allocator with defragmenting support for script

  • bjects.

– The system malloc() for the rest.

slide-9
SLIDE 9

Questions?

jobs@deadlinegames.com