Hello Guilers, Chickadee is a game development toolkit for Guile Scheme built on top of SDL2 and OpenGL that aims to provide all the features that parenthetically inclined game developers need to make 2D (and eventually 3D) games in Scheme, such as:
* extensible, fixed-timestep game loop * OpenGL-based rendering engine * keyboard, mouse, controller input * REPL-driven development model Some of you may be familiar with another game engine of mine called Sly and confused about why I wrote Chickadee. While FRP is an interesting programming paradigm, it doesn't seem to be applicable all the time and has significant disadvantages (increased GC pressure, for example). Furthemore, the cooperative multi-tasking implementation I wrote back in 2013 for Sly now has stiff competition, specifically Andy Wingo's Fibers and Chris Webber's 8sync, and Guile itself now has a much better concurrency story. So, it seemed like a good idea to extract the event loop, rendering engine, and linear algebra modules from Sly, improve upon them, and release a new library. This way, one could combine Chickadee with 8sync to make games using the actor model, or use Fibers, or maybe in the future use FRP with a new implementation of Sly. This initial release implements the basic game loop, high-level GL wrappers for things like shaders and vertex arrays, a simple rendering engine that minimizes OpenGL state changes, efficient sprite rendering via batching, an anti-aliased line segment rasterizer, and optimized 4x4 matrix and 2 dimensional euclidean vector math procedures. There is a reference manual, but it is very incomplete so any users at this point should feel comfortable with diving into the source code. In the future I hope to provide 3D graphics abstractions, 3D/4D vector math, a quaternion data type, signed-distance field font rendering, audio playback, outlined/dashed line segment rasterization, and simple polygon rendering. Chickadee targets the upcoming Guile 2.2 series, so Guile 2.1.x is required to compile and run Chickadee programs at this time. It is my hope that Chickadee will be for Guile what Love2D is for Lua. tarball: https://files.dthompson.us/chickadee/chickadee-0.1.0.tar.gz signature: https://files.dthompson.us/chickadee/chickadee-0.1.0.tar.gz.asc homepage: https://dthompson.us/projects/chickadee.html Bug reports, bug fixes, feature requests, and patches are welcomed. Happy hacking! - Dave