What's This Repo
This repo is hosted on my Forgejo instance, Codeberg, Github.
Why Yet Another Engine
This game engine is designed around moddability. This will allow people to make different games based on it, which should hypothetically all be compatible with each other. In order to enforce the spirit of the design, the game built into the engine will itself be a mod.
The engine will also allow transferring items and other entities between single player and multiplayer including transferring modded items from a modded server to a vanilla client.
Hypothetically, if a person develops a different game, like a horror game, it should be possible to join the server for that game from any other game made on the engine including the built in game.
I'm also considering the idea of inter-server communication, but for now, communication happens through the client transferring items and entities.
Download
Setup Build Environment
Debian x86_64
# Update APT
# Install Required Packages
# Install Rust
|
# Run Cargo Environment Setup Script
# Download Stable Toolchain
# Download Stable Rust's Source Code
# Download This Repo
# Switch To Project Root
Build
Desktop
# Compile Program
Android
# Assuming In Project Root "catgirl-engine" From Debian x86_64
# Install Java If Not Already Installed
# Add Build Targets Once
# Install Cargo-NDK Once
# Workaround Cargo Gradle Plugin Bug Once
# Build Android APK
# Copy Android APK To Project Root
Others
Other build process can be read from the files stored in ./.github/workflows. Most build files build on x86_64 Ubuntu with the exception of Mac OSX which builds on 64 Bit OSX.
Running
On Linux, you can view more log messages by running RUST_LOG=catgirl_engine=debug path/to/engine or RUST_LOG=debug path/to/engine.
On Android, you can view more log messages with ADB by running adb logcat -v tag,color -s CatgirlEngineApp CatgirlEngine:D. You can clear the log by running adb logcat -c.
If you want to use traces, you can either setup your own tracing subscriber if importing as a library, or turn on the tracing-subscriber feature (for either the binary or library).