Compare commits

...

4 commits

Author SHA1 Message Date
Jakub
6b5615ddf3 Merge branch 'master' into feature/resource-texture-drawing 2026-05-17 13:34:24 +08:00
Jakub
9cf36ab12c chicken-install 2026-05-17 11:36:33 +08:00
Jakub
768fdf6700 Usage docs 2026-05-17 11:35:01 +08:00
Jakub
41ac387ad0 Functioning egg 2026-05-17 11:21:33 +08:00
11 changed files with 73 additions and 28 deletions

View file

@ -2,6 +2,30 @@
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.
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
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 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.

View file

@ -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))

View file

@ -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)

View file

@ -1,11 +1,11 @@
(module (engine drawing) ()
(module (imugi drawing) ()
(import scheme
(chicken base)
(chicken module)
raylib
(engine core)
(engine guards)
(engine math)
(imugi core)
(imugi guards)
(imugi math)
(srfi 4)
(srfi 99))

View file

@ -1,4 +1,4 @@
(module (engine guards) ()
(module (imugi guards) ()
(import scheme
(chicken base)
(chicken module)

View file

@ -1,8 +1,8 @@
(module (engine input) ()
(module (imugi input) ()
(import scheme
(chicken base)
(chicken module)
(engine core)
(imugi core)
raylib
(srfi 99))

View file

@ -1,4 +1,4 @@
(module (engine math) ()
(module (imugi math) ()
(import scheme
(chicken base)
(chicken module)

View file

@ -1,8 +1,8 @@
(module (engine scene) ()
(module (imugi scene) ()
(import scheme
(chicken base)
(chicken module)
(engine core)
(imugi core)
(srfi 1)
(srfi 99))

21
imugi.egg Normal file
View file

@ -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"))))

View file

@ -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))

View file

@ -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))