Skip to content

alexsaalberg/fortress_engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fortress Engine

v0.0.2

Screenshot showing overview of features in Fortress Engine

Description

Fortress Engine is a game engine meant to create "Voxel" and "Colony Simulation" games.

Technologies

Language - C++

Source Control - Git

Building - CMake

Libraries

Used for management of voxel data, generation of triangle meshes from voxel data, and for some of it's pathfinding utility functions.

Used for physics simulation (duh).

Used for creating/managing windows and user input.

Used for loading OpenGL functions.

User for debug output.

Controls

It’s important to understand that there are two conceptual “control modes” in this game. They are called “RTS mode” and “FPS mode.” They can be switched between by hitting the “G” key. There are some controls that are available in both modes.

In FPS mode it is easier to move around and place/destroy individual blocks. Controls in this mode are fairly identical to the game ‘Minecraft’. (Left Click to destroy, Right Click to build).

In RTS mode it is possible to select (LeftClick) and direct (RightClick) colonists (the grey cubes). It is also possible to select 3D volumes of the world (LeftMouse+Drag). Once a volume is selected it can be used to select multiple colonists at once, or destroy and build blocks.

Here is a summary of the controls available

Both Modes

  • WASD to move
  • Space to jump
  • 1-9 select block color
  • Hit G to switch control modes

FPS Mode

  • Move Mouse to change camera
  • Left Click to destroy
  • Right Click to build

RTS Mode

  • Hold Right-Click and Move Mouse to change camera
  • Left-Click to select a colonist
  • Right-Click to tell all selected colonists to move somewhere
  • Left-Drag to create a selection
    • Hit B to build in selection
    • Hit V to delete in selection
    • Hit C or Left-Click to cancel selection
    • Hit F to select colonists in selection

Naming Conventions

  • Variables (local and member)
    • snake_case
  • Classes
    • PascalCase
  • Functions
    • camelCase