hate5d
häte5d: a lightweight moddable 2D game engine for Nim
Summary
| Latest Version | 0.1.1 |
|---|---|
| License | LGPL-3.0 |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-22 05:30 |
Tags
Authors
- MarkArchive/devdeco
Installation
nimble install hate5d
choosenim install hate5d
git clone https://github.com/MarkArchive/hate5d
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| hate5d | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Dependencies
| Package | Version | Optional |
|---|---|---|
| nim >= | 2.0.0 | No |
Source
| Repository | https://github.com/MarkArchive/hate5d |
|---|---|
| Homepage | https://github.com/MarkArchive/hate5d |
| Registry Source | nimble_official |
README
häte5d
by markarchive
a lightweight, moddable 2D game engine for Nim (built around programmability, not meta-programming)
what is häte5d?
häte5d is a 2D game engine for Nim focused on programmability and mod support. unlike visual editors, everything in häte is code: no drag-and-drop, no node graphs (like löve2D)
key ideas: - injektion: a first-class mod system built into the engine - hatex: CLI tooling for building, publishing, and finding games - rage bait: a pp2p (pseudo p2p) game registry for häte games (planned) - has: the engine's own dev tool, itself a häte game - micreads: multi threading window (it's literally that)
status
WARM: häte5d is in early development. The API will change without notice (or with notice if you read changes).
| Module | Status |
|---|---|
| core | in progress |
| window | in progress |
| render | in progress |
| dd (objects) | in progress |
| Injektion | planned |
| hatex | planned |
| Rage Bait | planned |
dependencies
- Nim (obviously) 2.0+
- SDL2
- SDL2_image
on Arch/RebornOS (my OS):
sudo pacman -S sdl2 sdl2_image
on Ubuntu/Debian:
sudo apt install libsdl2-dev libsdl2-image-dev
getting started
import hatelib
let win = initWindow("my game") # creates a window
while true:
# ya, i hate 2 spaces indentation
discard initFrame(win)
discard drawFillRect(win, 100, 100, 64, 64)
discard endFrame(win)
project structure
häte5d
├── docs
│ ├── CHANGELOG.md
│ ├── docs.md
│ └── markarchive.md
├── README.md
├── NOTICE.md
├── LICENSE.md
├── warm.md
└── _src
├── core
│ ├── common.nim
│ ├── logic.nim
│ └── sdl2.nim
├── hate5d.nimble
├── hatelib.nim
└── modules
├── dd.nim
├── render.nim
├── window.nim
└── input.nim
license
LGPL 3.0 (see LICENSE.) Games made with häte5d are not required to be open source (read NOTICE).