Skip to content

GLFW based renderer and content creation tooling system with audio support.

License

Notifications You must be signed in to change notification settings

rossmarinaro/spaghyeti_source-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

GLFW based renderer and content creation tooling system with audio support.

Resources

License

Stars

Watchers

Forks

Packages

No packages published