Skip to content

NiklasJohansen/PulseEngine

Repository files navigation

Pulse Engine

Repsy Kotlin workflow

Pulse Engine is a 2D game engine built with Kotlin and LWJGL. The engine provides a basic toolkit for prototyping and developing smaller 2D games.

game level

📋 Features

  • Scene graph with entities and systems
  • Scene editor with property inspector and live editing
  • Saving and loading of scenes, entities and game state
  • Fast 2D rendering of sprites, shapes and text
  • Render targets (surfaces) with composable post-processing effects
  • Support for custom renderers and shaders
  • Global illumination (radiance cascades) with indirect/bounce lighting, normal mapping and SSAO
  • Asset loading and hot reloading
  • Basic audio playback
  • Input handling for keyboard, mouse and gamepads
  • Networking with UDP/TCP based client-server architecture
  • Fast multithreaded game loop
  • Collision detection and physics
  • Responsive retained UI components
  • Console commands and basic scripting
  • Configuration loading and management
  • Metrics and profiling/graphing

🕹️ Built with Pulse Engine

  • Botgang is a game where you program bots to compete in a top-down shooter
  • Shotgang is a top-down competitive couch coop game
  • capra-ml-talk is an interactive presentation of neural networks

🛠️ Usage

See the Pulse Engine Game Template repository for usage and examples.

The library is hosted on repsy.io and can be included in your project by adding the following to your gradle build file:

repositories {
    maven {
        url 'https://repo.repsy.io/mvn/njoh/public'
    }
}

dependencies {
    implementation 'no.njoh:pulse-engine:0.13.0'
}

❗ Disclaimer

This library is a hobby project and only developed for fun and learning. It is not production ready and should not be used for anything serious. Future changes and updates may, and probably will, break existing APIs.

About

2D Game Engine in Kotlin

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors