Skip to content

theovier/athena

Repository files navigation

Main Build GitHub license LibGDX LibKTX

Athena

This is a 2D shoot'em up game done in KTX. The main purpose of this project is simply to play around with some ideas and homemade graphics. Don't expect anything too fancy or polished here.

Status

Work in progress.

Features

  • Uses Ashley as its ECS
  • Basic movement system with acceleration and friction
  • Smooth camera movement by simple asymptotic average
  • Smooth translational + rotational camera shake based on trauma
  • Custom prefab system (using JSON)
    • Including entity hierarchy
    • Components can reference other entities/components in same prefab file
  • Controller support with relatively smooth aiming
  • Basic support for tiled maps
  • Particle system relying on LibGdx's particle system
  • Supports Spine animations and skeletons
  • Uses LibGdx's Box2D as physic engine
  • Simple damage system with critical hits and floating damage text
  • Simple loot system
  • Bullet impact effects using dynamic spawning of particles
  • Finite State Machines
  • Aim Assist

Screenshots

screenshot_001 screenshot_002

Building from Source

This project uses Gradle as its build management tool. Simply run

./gradlew build

and check your /build folder for the newly generated jar files at /build/libs/client-VERSION.jar.

macOS

Please note that (even when run from within your IDE) you need to add the VM option flag -XstartOnFirstThread to make the application window appear on macOS.

Contribution

Feel free to open up pull-requests or discuss issues with us on GitHub.

Acknowledgement

I used the Quilly-Crawler game as reference on how to get started with KTX. Also, I found Sioncore to be a good read on how to develop modular LibGdx/KTX games.

For the creation of the bullet shell effects, I found Rowdy Lemon's Youtube tutorial on shell casings extremely valuable.

For creating particle effects, I use the brilliant open-source Talos Particle Engine.

For the ideas of FSM in ECS, I found Richard Lord's view worth the read.

License

GNU General Public License v3.0 except for the Spine Runtime.

Spine Runtime

Please note that since the Spine Runtime dependency is used, this part of the project is licenced under the Spine Runtime Licence instead.

Audio Files (Teeworlds)

Some audio files (namely gun_fire-01.ogg, gun_fire-02.ogg and gun_fire-03.ogg) are converted versions of the Teeworlds' Sound Effects which are licenced under the CC-BY-SA 3.0

Audio Files (Other)

The used banger font is licenced under the SIL Open Font Licence (OFL).