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

86 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 (png), shaders (glsl text), json, csv, and raw byte encoded binary and compressed files.

Build assets can be either embedded or referenced.

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

Uses Unix tool xxd for byte encoding assets

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:

truetype implementation

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