From 41ac387ad02f23a26fae0a534e5dc25a523083b9 Mon Sep 17 00:00:00 2001 From: Jakub Date: Sun, 17 May 2026 11:21:33 +0800 Subject: [PATCH 1/3] Functioning egg --- engine/components.scm | 8 ++++---- engine/core.scm | 4 ++-- engine/drawing.scm | 8 ++++---- engine/guards.scm | 2 +- engine/input.scm | 4 ++-- engine/math.scm | 2 +- engine/scene.scm | 4 ++-- imugi.egg | 21 +++++++++++++++++++++ 8 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 imugi.egg diff --git a/engine/components.scm b/engine/components.scm index 87b12c8..ba3b3df 100644 --- a/engine/components.scm +++ b/engine/components.scm @@ -1,10 +1,10 @@ -(module (engine components core) () +(module (imugi components core) () (import scheme (chicken base) (chicken module) - (engine core) - (engine guards) - (engine math) + (imugi core) + (imugi guards) + (imugi math) (srfi 1) (srfi 99)) diff --git a/engine/core.scm b/engine/core.scm index 613aa9d..21d18de 100644 --- a/engine/core.scm +++ b/engine/core.scm @@ -1,9 +1,9 @@ -(module (engine core) () +(module (imugi core) () (import scheme (chicken base) (chicken module) (chicken sort) - (engine guards) + (imugi guards) raylib (srfi 1) (srfi 4) diff --git a/engine/drawing.scm b/engine/drawing.scm index 1b23039..a7057ec 100644 --- a/engine/drawing.scm +++ b/engine/drawing.scm @@ -1,10 +1,10 @@ -(module (engine drawing) () +(module (imugi drawing) () (import scheme (chicken base) (chicken module) raylib - (engine guards) - (engine math) + (imugi guards) + (imugi math) (srfi 4) (srfi 99)) @@ -282,4 +282,4 @@ (number->integer (v-y pos-vec)) size (use-color tint))) - ) +) diff --git a/engine/guards.scm b/engine/guards.scm index 844075b..c495e83 100644 --- a/engine/guards.scm +++ b/engine/guards.scm @@ -1,4 +1,4 @@ -(module (engine guards) () +(module (imugi guards) () (import scheme (chicken base) (chicken module) diff --git a/engine/input.scm b/engine/input.scm index 0cf6abe..9d63110 100644 --- a/engine/input.scm +++ b/engine/input.scm @@ -1,8 +1,8 @@ -(module (engine input) () +(module (imugi input) () (import scheme (chicken base) (chicken module) - (engine core) + (imugi core) raylib (srfi 99)) diff --git a/engine/math.scm b/engine/math.scm index ca82e91..5f1a186 100644 --- a/engine/math.scm +++ b/engine/math.scm @@ -1,4 +1,4 @@ -(module (engine math) () +(module (imugi math) () (import scheme (chicken base) (chicken module) diff --git a/engine/scene.scm b/engine/scene.scm index f272e02..8326ec0 100644 --- a/engine/scene.scm +++ b/engine/scene.scm @@ -1,8 +1,8 @@ -(module (engine scene) () +(module (imugi scene) () (import scheme (chicken base) (chicken module) - (engine core) + (imugi core) (srfi 1) (srfi 99)) diff --git a/imugi.egg b/imugi.egg new file mode 100644 index 0000000..c4c00e6 --- /dev/null +++ b/imugi.egg @@ -0,0 +1,21 @@ +((author "Jakub Nowak") + (synopsis "ECS system built on Raylib") + (version "0.1") + (license "AGPL") + (category graphics) + (dependencies raylib srfi-1 srfi-69 srfi-113 srfi-99) + (components + (extension imugi.guards + (source "engine/guards.scm")) + (extension imugi.core + (source "engine/core.scm")) + (extension imugi.math + (source "engine/math.scm")) + (extension imugi.components.core + (source "engine/components.scm")) + (extension imugi.drawing + (source "engine/drawing.scm")) + (extension imugi.input + (source "engine/input.scm")) + (extension imugi.scene + (source "engine/scene.scm")))) From 768fdf670041a65473e60016d959766992ea9d5e Mon Sep 17 00:00:00 2001 From: Jakub Date: Sun, 17 May 2026 11:35:01 +0800 Subject: [PATCH 2/3] Usage docs --- README.org | 19 +++++++++++++++++++ samples/bounce.scm | 12 ++++++------ samples/tic-tac-toe.scm | 12 ++++++------ 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/README.org b/README.org index c1ba429..ff441c2 100644 --- a/README.org +++ b/README.org @@ -2,6 +2,25 @@ Imugi is a framework for building games (primarily tactics games) with Chicken Scheme and raylib. The end goal of this framework is to create a game, also called Imugi, and release to show the capability here. +* Installation & Usage +Raylib must first be installed before you can get started with Imugi. + +Install raylib statically using the following commands: +#+begin_src shell + git clone --depth 1 https://github.com/raysan5/raylib.git raylib + cd raylib/src/ + make PLATFORM=PLATFORM_DESKTOP + make install +#+end_src + +The following dependencies are required on Debian: +#+begin_src shell + apt install -y libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev +#+end_src + +Once installed, you can import the Imugi modules required in your project. +When building, use the flags specified in ~all.options~ in this repository, which includes are the dependency links necessary. + * Architecture Imugi is an ECS engine. diff --git a/samples/bounce.scm b/samples/bounce.scm index 0d93c18..ad63ca1 100644 --- a/samples/bounce.scm +++ b/samples/bounce.scm @@ -2,12 +2,12 @@ (import scheme (chicken base) raylib - (engine core) - (engine components core) - (engine math) - (engine input) - (engine drawing) - (engine scene) + (imugi core) + (imugi components core) + (imugi math) + (imugi input) + (imugi drawing) + (imugi scene) (srfi 1) (srfi 99)) diff --git a/samples/tic-tac-toe.scm b/samples/tic-tac-toe.scm index 65b3ed3..e132789 100644 --- a/samples/tic-tac-toe.scm +++ b/samples/tic-tac-toe.scm @@ -2,12 +2,12 @@ (import scheme (chicken base) (chicken random) - (engine core) - (engine math) - (engine components core) - (engine drawing) - (engine input) - (engine scene) + (imugi core) + (imugi math) + (imugi components core) + (imugi drawing) + (imugi input) + (imugi scene) raylib (srfi 1) (srfi 99)) From 9cf36ab12c6ed384f42cd99aeaf1980ac656b4b4 Mon Sep 17 00:00:00 2001 From: Jakub Date: Sun, 17 May 2026 11:36:33 +0800 Subject: [PATCH 3/3] chicken-install --- README.org | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.org b/README.org index ff441c2..b042912 100644 --- a/README.org +++ b/README.org @@ -5,6 +5,8 @@ Imugi is a framework for building games (primarily tactics games) with Chicken S * Installation & Usage Raylib must first be installed before you can get started with Imugi. +Note: this guide assumes static linking for the Raylib library. + Install raylib statically using the following commands: #+begin_src shell git clone --depth 1 https://github.com/raysan5/raylib.git raylib @@ -18,8 +20,11 @@ The following dependencies are required on Debian: apt install -y libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev #+end_src -Once installed, you can import the Imugi modules required in your project. -When building, use the flags specified in ~all.options~ in this repository, which includes are the dependency links necessary. +Once raylib is installed, run ~chicken-install -s~ in this directory to install all dependencies and the Imugi egg itself. + +You can then import the Imugi modules required in your project. + +When building your project, use the flags specified in ~all.options~ in this repository, which includes are the dependency links necessary. * Architecture Imugi is an ECS engine.