top of page

Architect Your Engine - I. Overview

  • Writer: Yi Yin
    Yi Yin
  • May 1, 2018
  • 1 min read

This time let's talk about something more abstract. A game engine, or any interactive engine, is a complex system, by which, I mean:


- Subsystems: it has various various types of subsystems.

- Connections: it has various types of connections between each subsystem.


A complex system contains subsystems and components, while a subsystem contains subsystems and components. Finally, a component is a functional unit that executes a narrow and specific field of functions, and it is not supposed to be divided anymore:


System := Subsystem+ | Subsystem+, Component*

Subsystem := Subsystem+ | Component+

Component := (a non-divisible functional unit)


ree

Therefore, to make a game engine, we need to do two things:


- Clarify the boundary of each subsystem (e.g. script interpretation module, audio module, graphic module, etc).

- Establish the minimum necessary connections between each subsystem.


In this section, I'll discuss the first part - how to separate each module by its abstract functionality. Please pay attention to the 4 words in bold font: every one of them is necessary, especially "minimum necessary connections" - we can not omit any of the three. I'll talk about that later in the discussion of the MVC paradigm.


In the next three posts, I'll go over the principle of subsystem-separation and connection setup, and after that will be a brief summary as well as some extension topics.


Comments


YI YIN
Austin, Texas

Personal Email - if you like me

*Please replace "_at_" with "@"

kthtes_at_gmail.com

Studio's Email - if you like our games

*Please replace "_at_" with "@"

286studio_at_gmail.com

©2017 BY YI YIN

bottom of page