Raphael D. Hwang
1 min read

Categories

Tags

This is a note of Game Engine Architecture, 3rd Edition written by Jason Gregory.

Table of Contents

  1. Part 1. Foundation
    1. Chapter 1. Introduction
  2. Chapter 2. Tool of the Trade
    1. 2.2 Compilers, Linkers and IDEs

Part 1. Foundation

Chapter 1. Introduction

What is game?

  • 1979: toy
  • Today (2018): multi-billion-dollar mainstream industry

In this book you will learn:

  • how real industrial-strength production game engines are architected;
  • how game development teams are organized and work in the real world;
  • which major subsystems and design patterns appear again and again in virtually every game engine;
  • the typical requirements for each major subsystem;
  • which subsystems are genre- or game-agnostic, and which ones are typically designed explicitly for a specific genre or game; and
  • where the engine normally ends and the game begins.

Chapter 2. Tool of the Trade

2.2 Compilers, Linkers and IDEs

The machine code in an object file is:

  • relocatable, meaning that the memory addresses at which the code resides have not yet been determined, and
  • unlinked, meaning that any external references to functions and global data have not yet been resolved.

Some useful compiling tags:

$clang --std=c++14 foo.cpp -o foo.o --Wall -O0 -g

where --Wall turns on all warnings, -O0 turns off all optimizations, and -g generates debugging information. In Windows, the similar command line is like that:

cl /c foo.cpp /Fo foo.obj /Wall /Od /Zi