https://github.com/slyfryfrog/lys
A modern C++23 game engine using modules with Julia bindings.
https://github.com/slyfryfrog/lys
cmake cpp cppm julia
Last synced: 6 months ago
JSON representation
A modern C++23 game engine using modules with Julia bindings.
- Host: GitHub
- URL: https://github.com/slyfryfrog/lys
- Owner: SlyFryFrog
- License: mit
- Created: 2025-04-17T16:36:05.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-12T05:48:55.000Z (6 months ago)
- Last Synced: 2025-08-12T07:23:18.824Z (6 months ago)
- Topics: cmake, cpp, cppm, julia
- Language: C++
- Homepage: https://slyfryfrog.github.io/Lys/
- Size: 3.99 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lys
This readme is a simple overview of features, questions/answers, and screenshots. For more in-depth documentation, please refer to the docs at https://slyfryfrog.github.io/Lys/#/
## What is Lys?
Lys is a game engine that is written in modern C++23 using modules. The engine currently supports the following features:
- OpenGL backend (*Incomplete)
- Wraps method calls and actions to simplify interacting directly with OpenGL
- Supports loading and rendering meshes for `.obj`
- Supports hot-reloading `.glsl` shaders
- Missing some features that require interacting with ``
- Optional Scripting support (*Incomplete)
- Julia scripting with hot-reloading available.
- No default render loop
- Currently, acts more like a "framework", although this will change
- Multi-platform
- Supports both macOS and Linux (tested on Ubuntu25.04+)
- No Windows support is planned
## Questions
#### Why the name Lys?
Due to my love of French language and culture, I wanted to choose a name that reflected this. La fleur de lys is an important symbol of French heritage and identity, which made it the perfect choice.
#### Why Julia?
Julia was chosen as the scripting language due to its fast performance (although it suffers from JIT lag). It also has little documentation on how to use libraries such as CxxWrap, so I wanted to challenge myself and potentially add value to its integration by providing a real-world example.