Skip to content

Latest commit

 

History

History
76 lines (41 loc) · 2.56 KB

README.md

File metadata and controls

76 lines (41 loc) · 2.56 KB

🍝 <::SPAGHYETI SOUЯCE ЭNGINE::> 🍝

image info


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

Editor: image info image info image info

Test Game: image info


Written by Ross Marinaro - Pastaboss Enterprise 🍝👌

image info


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

image info


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 => {})