diff --git a/COLLABORATION.org b/COLLABORATION.org new file mode 100644 index 0000000..64e444e --- /dev/null +++ b/COLLABORATION.org @@ -0,0 +1,20 @@ +#+title: Collaboration + +Imugi can be easily built without any local chicken scheme installation by using the devcontainer spec included in this repository. + +* Using the Devcontainers CLI +First, run ~npm install -g @devcontainers/cli~ to install the devcontainers CLI tool. + +This requires a working Docker installation, the steps to which can be found [[https://docs.docker.com/engine/install/][here]]. Also assign your user to the ~docker~ group to avoid having to use ~sudo~ with docker and devcontainer commands. + +Once both of the above are installed, the devcontainer can be started with ~devcontainer up --workspace-folder .~ in the repository root. This will build a Debian Trixie container including all Chicken dependencies, and also build Raylib as a static library. We prefer to build with static linking in order to make distribution less annoying. + +Once the devcontainer is running, enter it with ~devcontainer exec --workspace-folder . bash~. This will put you at the repository root. + +* Running Tests & Samples +From the ~build~ directory, run ~csm -program ~ to build a particular module, the ~./~ to run it. + +Any module defined in the ~samples~ or ~test~ directory can be run like this, either to show an example game or to run tests for a particular engine module. + + If you are running the devcontainer on an X11 Linux host, running the compiled module should forward the window to your hosts X11 display. YMMV for Wayland and non-Linux hosts. + diff --git a/README.org b/README.org index b81e1ec..c1ba429 100644 --- a/README.org +++ b/README.org @@ -184,16 +184,3 @@ Functions for evaluating the render queues. ~evaluate-render-queue~ evaluates a (create-window process: (next-frame) close-predicate: (window-should-close?)) #+end_src ~create-window~ creates a window using the window parameters described above, sets the target frames per second, then enters a loop which runs the ~process:~ function (~next-frame~ by default) on each frame, unless ~close-predicate:~ (Raylib's ~window-should-close~ function by default) returns true, in which case the window is closed. - -* Dependencies -The following Chicken dependencies are required: -- raylib -- SRFI-99 -- SRFI-113 -- SRFI-69 -- csm -- SRFI-78 - -* Running -From the ~build~ directory, run ~csm -program test.engine .. && ./test.engine~ to run engine tests. -