🍝 <::SPAGHYETI SOUЯCE ЭNGINE::> 🍝
Features:
Rendering system / content creation tool with audio generation, texturing, and logging.
Supports loading image, shader, json, and raw byte char files.
Scene heirarchy supports sprites, CSV tilemaps (supports flipped tiles), audio, text, and empty nodes.
Supports native C++ scripting for nodes.
Standalone runtime embedded into application builds, use as core only, or as DLL runtime with editor front end.
Project generation creates base boilerplate and proxy reference to current application, decoupled from core engine source.
Project configurations are saved as a custom ".SPAGHYETI" file which are decrypted into JSON prior to parsing.
Editor created in-scene game objects can be saved as prefabs for repeated use.
Manual per-Scene asset and shader loading to reduce unnecessary file loads
Shader platform compatible versions are automatically updated per build type
For Emscripten WebGL builds, download the latest SDK release, run emsdk install tot, navigate to emscripten install directory, run emcmdprompt.bat and cd to the "web" directory in this tree. compile with that directory's MakeFile.
Requires install of Python 3 to run build scripts
Written by Ross Marinaro - Pastaboss Enterprise 🍝👌
Libraries used: GLFW / GLAD, GLM, GLText (embedded debug text), FreeType (in-app fonts) STB_IMAGE, MiniAudio, DearIMGUI, Box2D, nlohmann JSON
Other great external tools that work well with Spaghyeti Engine: UPX, Penguin Packer
Requires install of MingW (gcc) for Windows, although the goal is to be compiler agnostic
Notes:
When targeting specific entity from script use System::Game::GetScene()->GetEntity()
, if targeting a method from another script use System::Game::GetBehavior()
.
To Do:
undo/redo functionality
improve editor entity selection/mouse picking/raycasting
map editor
fix big .o files (audio.o manager.o game.o entity.o tilemap.o texture.o shader.o)
-sEXPORT_NAME="Example" window.Example(i).then(module => {})