A collection of Odin-lang libraries that I'm making for a personal 2d game engine. I want to keep these as simple as possible.
Lua plugin system. It allows for easy integration of Lua scripts as plugins, enabling dynamic content loading and scripting capabilities.
- Currently has basic raylib bindings to show how to add libraries to Lua
- Configuration loading and saving
- Plugin loading and unloading
A simple wrapper around miniaudio with error checking and audio asset management.
Functions to move our game window to the primary monitor and get the primary monitor.
Open and save file dialogs for Odin using the native file dialog library for Windows and zenity/kdialog on Linux. Also include support for popup dialogs.
A Particle Emitter that can be used as a jumping off point for a more complex Particle Emitter.
Includes support for gravity, wind, drag, and collisions.
2D vector that support float 32 and float 64.
Raylib doesn't support 64 floats, so this is my attempt to do this my self. At least start to.
Lets you run a command and get stdout.
Example Usage:
root_buf: [1024]byte
data := root_buf[:]
code, ok, out := run_executable("ls -lah", &data)
fmt.println(string(out))Parses an exported Aseprite json sprite sheet.
Mostly this is inteded for getting the slice positions in the image.
This assumes the only settings changed in the Output tab are:
- Checking: Output File and JSON Data
- Unchecking Meta: Layers and Tags
Example Usage:
mySprite := ReadAsespriteJsonFile("assets/mySprite.json")