Warning
This project is a work in progress and is not yet ready for use.
Conjuration provides foundations for building a game in DragonRuby GTK.
The motivation behind Conjuration is to provide structure and convention to DragonRuby GTK projects, without adding constraints or limiting access to the underlying DR APIs. Think what Ruby on Rails is to Ruby.
- Gameloop conventions
- Order of operations
- Setup (Run once when a scene is loaded)
- Input (Handle user input logic)
- Update (Handle game logic)
- Render (Draw things to a scene / camera (HUD, UI))
- Order of operations
- Scene Management
- Scene transitions
- Camera Management
- Look at
- Zooming
- Panning
- Following
- Multiple cameras
- Minimaps
- Camera shake
- Impact frames (Hit stops)
- Rendering
- Virtual scenes (worlds beyond the GPU texture limit)
- Viewport culling
- Chunked tile caching
- UI & HUD Management
- Flexbox Layout
- Interactive node management
- Input Management
- Default key mapping
- User remapping
- Debugging tools
- Debug layers
- Scene / Camera debug overlay
The recommended way to install Conjuration is with drenv, a DragonRuby environment and dependency manager.
From your project directory, add Conjuration as a dependency:
drenv add github:Nitemaeric/conjurationThen require the generated bundle at the top of mygame/app/main.rb:
require 'app/drenv_bundle.rb'drenv vendors Conjuration into mygame/vendor/ and pins it in mygame/drenv.lock. Run drenv run to sync dependencies and launch your game, or drenv bundle to refresh them without launching.
View the following files to get started: