I'd like to introduce a project I've been working on, called Burro Engine. This is an experiment where I tried to write an interactive fiction game engine rather like the popular Twine game engine, except using GTK3 instead of the browser as the rendering engine.
Burro Engine is written in a mixture of C and Scheme, and it uses an embedded Guile interpreter: the game scripts are written in a subset of Scheme. This subset consists of the procedures in (ice-9 sandbox) plus a handful of procedures provided by Burro itself. The use of 'ice-9 sandbox' is to provide some security from maliciously written game scripts. It builds and runs, but it is early. See the TODO.org for information on what needs to be done. There are no docs yet, but, the game script in "games/demo.burro" https://raw.githubusercontent.com/spk121/burro/master/game/demo.burro If you've spent enough time staring at Scheme, and SXML, then the game script should be 'self-documenting', lol. I don't really like how the game scripts turned out. They are still too complicated and intimidating looking. I need to figure out how to make them much simpler. There is a gameplay video of me playing the demo at https://raw.githubusercontent.com/spk121/burro/master/game/screencast01.webm You can browse the repo at https://github.com/spk121/burro You can clone the repo with git https://github.com/spk121/burro.git You can download the repo at https://github.com/spk121/burro/archive/master.zip There is no proper release yet. The proper release will occur when I've completed the associated game. The game is called "Visiting Day", an interactive fiction about the experience of visiting one's child in jail. -- This program was built with many dependencies gtk+-3.0, version 3.22 gio-2.0, version 2.54 glib-2.0, version 2.54 cairo, version 1.15.10 pango, version 1.40.13 pangocairo libpulse, which is part of pulseaudio 11.1 libpluse-mainloop-glib, but this is probably going away vorbisfile, version 1.3.5 guile-2.2 Thanks, Mike Gran