Skip to content

A PhaserJS-based blend of 2D action and tower defense with charming programmer art. (Warning: buggy. Big rewrite is ongoing. :) )

License

Notifications You must be signed in to change notification settings

LuccaHellriegel/cgaa

Repository files navigation

Circle Gladiator Army Arena

A PhaserJS-based blend of 2D action and tower defense with charming programmer art.

Logo

Fight

Project History

  • started dev in the context of a Game Design course at university (first six month)
  • many experiments with program structure and style
  • graphics are all created in-game
  • now mainly used to explore interesting facets of Game Dev (but it should still be fun for a few rounds)

Known Issues

  • performance degradation after 10 minutes (so better finish the game before then ;))
  • object pooling breaks down after 10 minutes too

Play Version 0.1 here

CGAA

  • Performance is only ok on Chromium-based Browsers (related to WebGL)
  • Be prepared to reload because of bugs

Learn to play!

Game Webpage

CGAA Webpage

  • more information
  • development documentation (mostly retrospective/opinions on first six months of development)
    • partially outdated / wrong as my views / practices have evolved by now
  • tutorial
  • trailer (only for humorous people ;) )

Known Issues

  • reload on lose / win necessary
  • performance degradation after 10 minutes (so better win the game before then ;))
  • object pooling breaks down after 10 minutes too
  • sometimes the king vanishes after too much time too (reload helps)
  • visual glitches and weird UX are to be expected as this is a prototype :)

Project History

  • started dev in the context of a Game Design course at university (first six month)
  • many experiments with program structure and style
  • graphics are all created in-game
  • now mainly used to explore interesting facets of Game Dev (but it should still be fun for a few rounds)

Architecture (outdated)

I strife for a layered architecture, where dependencies only go downward and the general execution order of the main functions is upwards.

The codebase reflects experiments with a multitude of possible approaches, but should be still understandable.

  • 0_GameBase: constants, attempts at extracting general purpose engine code, misc
  • 1_GameGraphics: creating all the in-game visuals / textures via code once the game loads
  • 2_GameAnimation: composing the created textures into animations
  • 3_GameData: creating all the per-round random but static data for the game layout
  • 4_GameUnit: all the game unit classes and their components
  • 5_GameState: setting up the dynamic game state (pathfinding structure, rivalries between camps)
  • 6_GamePhysics: using all the modules below this to setup the correct physics group (hit collision, wall collision etc., sight detection)
  • 7_GameUI: all the UI elements and interactions that the player can use (counters on the screen, tower-building menus etc.)
  • 8_GameStart: finally using all the setup to populate the camps, start the Tower Defense waves, enable-player input

The game is spread over the Gameplay scene and the HUD scene, which is an overlay for the Gameplay scene for displaying UI elements and interactions etc.

Credit

Anastasiia Buianova for:

  • collaborating on the trailer concept / text / audio
  • animating / painting the whole trailer from scratch / video cut
  • key ideas for the color schema of the game and overall UI design
  • constant encouragement

License

MIT. See LICENSE file.

About

A PhaserJS-based blend of 2D action and tower defense with charming programmer art. (Warning: buggy. Big rewrite is ongoing. :) )

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published