Compare commits

..

5 commits

Author SHA1 Message Date
9f1bde8ac6 Font and texture resource loading 2026-05-17 13:37:50 +08:00
3f0e1985b3 Basic resources 2026-05-17 13:36:51 +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. 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 * Architecture
Imugi is an ECS engine. Imugi is an ECS engine.

View file

@ -1,10 +1,10 @@
(module (engine components core) () (module (imugi components core) ()
(import scheme (import scheme
(chicken base) (chicken base)
(chicken module) (chicken module)
(engine core) (imugi core)
(engine guards) (imugi guards)
(engine math) (imugi math)
(srfi 1) (srfi 1)
(srfi 99)) (srfi 99))

View file

@ -1,9 +1,9 @@
(module (engine core) () (module (imugi core) ()
(import scheme (import scheme
(chicken base) (chicken base)
(chicken module) (chicken module)
(chicken sort) (chicken sort)
(engine guards) (imugi guards)
raylib raylib
(srfi 1) (srfi 1)
(srfi 4) (srfi 4)

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,8 @@
(module (engine scene) () (module (imugi scene) ()
(import scheme (import scheme
(chicken base) (chicken base)
(chicken module) (chicken module)
(engine core) (imugi core)
(srfi 1) (srfi 1)
(srfi 99)) (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 (import scheme
(chicken base) (chicken base)
raylib raylib
(engine core) (imugi core)
(engine components core) (imugi components core)
(engine math) (imugi math)
(engine input) (imugi input)
(engine drawing) (imugi drawing)
(engine scene) (imugi scene)
(srfi 1) (srfi 1)
(srfi 99)) (srfi 99))

View file

@ -2,12 +2,12 @@
(import scheme (import scheme
(chicken base) (chicken base)
(chicken random) (chicken random)
(engine core) (imugi core)
(engine math) (imugi math)
(engine components core) (imugi components core)
(engine drawing) (imugi drawing)
(engine input) (imugi input)
(engine scene) (imugi scene)
raylib raylib
(srfi 1) (srfi 1)
(srfi 99)) (srfi 99))