https://github.com/valmnt/raycoon
a tiny retro raycasting game engine in Rust, powered by raccoon energy 🦝
https://github.com/valmnt/raycoon
2d engine game-engine macroquad raycasting rendering retro rust
Last synced: 4 months ago
JSON representation
a tiny retro raycasting game engine in Rust, powered by raccoon energy 🦝
- Host: GitHub
- URL: https://github.com/valmnt/raycoon
- Owner: valmnt
- License: mit
- Created: 2025-11-09T15:28:24.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-11-24T17:25:01.000Z (7 months ago)
- Last Synced: 2025-11-28T05:45:54.233Z (7 months ago)
- Topics: 2d, engine, game-engine, macroquad, raycasting, rendering, retro, rust
- Language: Rust
- Homepage: https://crates.io/crates/raycoon
- Size: 2.43 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
A minimal raycasting engine written in Rust.
Raycoon is a small, modern, and educational **2.5D raycasting engine** inspired by classic FPS techniques.
It focuses on clarity, simplicity, and clean architecture: the core provides pure logic (raycasting, collisions, tile mapping), while rendering and input are handled externally.
> [!NOTE]
>
> - Developed in personal free time.
> - Educational side project.
> - Contributions welcome.
## ✨ Features
- Minimal DDA-based raycasting engine
- Tile-based world with configurable blocking tiles
- Per-axis collision handling
- Strict separation between **engine** and **renderer**
- Simple C-compatible FFI API for easy bindings
- Lightweight, hackable, and easy to understand
## 🧩 Engine Language Support
Raycoon’s core is written in **Rust**, with an official **FFI binding** available.
| Language | Support | Details |
|---------|---------|---------|
|  | ✔️ | Native engine implementation |
|  | ⚠️ | FFI-compatible (no official binding) |
## 📦 Installation
Add the crate to your project :
```toml
[dependencies]
raycoon = "x.x.x"
```
## ⚒️ Example
Run the bundled example :
```bash
cargo run --example basic
```
## 🤝 Contributing
Contributions are welcome!
Please keep the engine strictly backend-agnostic.
Rendering, input handling, and tooling must remain in external modules.
## 📜 License
MIT License.