guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ANN] Chickadee 0.1.0 released


From: Thompson, David
Subject: [ANN] Chickadee 0.1.0 released
Date: Mon, 23 Jan 2017 22:41:57 -0500

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]