Giter VIP home page Giter VIP logo

fortress-commander's Introduction

Fortress Commander

Fortress Commander is a game about protecting your fortress from incoming waves of enemies. It descends from the RTS genre, and incorporates many classic RTS game mechanics, such as passive resource gathering, a battle system, and assigning actions and destinations to controllable entities (using the game engine's implementation of A* pathfinding). The game is implemented in its own custom Entity-Component System and pub-sub Event Manager. The graphics were entirely written in OpenGL.

Features

  • An Entity-Component-System framework that we use extensively in the game
  • An event manager used for decoupling events from their handlers
  • A tiling system complete with unit/structure creation and world editing
  • A* pathfinding system
  • An OpenGL-based 2D graphics interface
  • Input Handling
  • Atlassing Texture System
  • A window manager wrapped around GLFW3
  • Text Rendering from Freetype
  • Perlin Noise-based Terrain Generation

Systems

Fortress Commander implements the following systems:

  • Pathfinding
  • Battle
  • Particles
  • EnemySpawning
  • Resources
  • Health
  • UnitCommand

Running

If you have the correct dependencies installed, simply run make. The cmake build will be triggered, and the makefile will run the game binary for you.

Controls

Use the keyboard to move the camera You can interact with the map with the mouse. Left click and drag to make a selection area. Right click to give a command to selected units. Use the following keys to switch modes:

  • B = Build (use number keys to select which type of structure)
  • U = Unit
  • X = Sell
  • Q = Exit mode

You can use Escape to pause the game at any time.

Dependencies

  • GLFW3
  • FreeType

Tools

  • clang-format
  • gdb
  • valgrind
  • CMake
  • GNU Make
  • OpenGL
  • GLFW3
  • FreeType

fortress-commander's People

Contributors

kasrasadeghi avatar austinatchley avatar loganzartman avatar

Stargazers

chunwah-huang avatar FireRun avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.