A tile based game engine modeled on libtcod
TBC
TBC
Here you will see what is left to complete before this engine is ready for sharing/production.
Each scene/game area can be considered as a scene. The stack can have scenes pushed on to it and in doing so the top most scene is the one executed during the game loop with all else effectively "paused."
- State Base
- Working Example of State system
Development of a Rendering Interface; the idea behind this is that the developer can choose the render driver, or develop one of their own. We will provide one for raylib and potentially gdamore/tcell.
- Render Base Interface
- Default Raylib Driver Implementation
- Working Example of Raylib render driver
With the Raylib driver comes the concept of Spritesheets and Tilesets. This is because Raylib will be a "Virtual console":
- Raylib Tileset
- Raylib Spritesheet
- Map Base
- Map Camera
- Map FOV
- Default FOV implementation (and interface)
- Map Generation Interface
- Roguelike Room Generator (example)
- Map Camera
- Entities Base
The GUI system will be based upon that available in afolmert/libtcod-go but modified to work with our render engine implementation.
- GUI Base
- GUI Widget Base
- Button Widget
- Radio Button Widget
- Toggle Button Widget
- Status Bar Widget
- Container Widget
- Vertical Container Widget
- Horizontal Container Widget
- Toolbar Widget
- Toolbar Separator Widget
- Label Widget
- TextBox Widget
- Slider Widget
- Input Handling
- Keyboard Events
- Mouse Events
- Colour Themes
- Working Examples for all above
The following libraries are used by GoRogue, with gratitude 💕
A huge thank-you to Jice, Mingos and others for the libtcod library, Adam Folmert and others for libtcod-go; without either project this one would not exist. Another huge thank-you to /r/roguelikes and their discord community for both inspiration and help. #roguelikedev
The following list of links contains all the webpages I found useful in my quest to build this library.
- Complete roguelike tutorial using C++ and libtcod
- Roguelike Tutorial in Rust + tcod
- libtcod-go: Go bindings for the libtcod library
- Pataro: A Roguelike library built on top of libtcod
- Rotten Soup: A roguelike built with Vue, Vuetify, Tiled, rot.js, and PixiJS
- The Wavefunction Collapse Algorithm explained very clearly
- Roguelike Tutorial - In Rust
- Pataro: A Rogue like library on top of libtcod
- How to Use Tile Bitmasking to Auto-Tile Your Level Layouts
GoRogue is free software, licensed under the MIT LICENSE. We encourage forking and changing the code, hacking around with it, and experimenting.
Copyright (C) 2019-2022 the GoRogue Authors.