guix: Update to latest guile-sdl2 commit.
[chickadee.git] / README
CommitLineData
98dc87a0
DT
1-*- org -*-
2
3#+TITLE The Chickadee Game Development Toolkit
4
5* About
6
cdac3f14
DT
7 Chickadee is a game development toolkit for Guile Scheme. It comes
8 with built-in support for 2D/3D games using SDL and OpenGL, but is
9 generic enough to be used with any I/O backend, in case you are
10 writing a text adventure or want to render your Roguelike to a
11 terminal!
12
13 Here's what rendering a sprite looks like:
98dc87a0
DT
14
15 #+BEGIN_SRC scheme
7a9b0758 16 (use-modules (chickadee)
4c971695
DT
17 (chickadee math vector)
18 (chickadee render sprite)
cdac3f14
DT
19 (chickadee render texture)
20 (chickadee sdl))
98dc87a0
DT
21
22 (define sprite #f)
23
24 (define (load)
4c971695 25 (set! sprite (load-image "images/chickadee.png")))
98dc87a0 26
7a9b0758 27 (define (draw alpha)
cdac3f14 28 (draw-sprite sprite #v(256.0 176.0)))
7a9b0758 29
cdac3f14 30 (run-game/sdl #:load load #:draw draw)
98dc87a0
DT
31 #+END_SRC
32
33* Features
34
cdac3f14
DT
35 Chickadee has the following features:
36
37 - Generic fixed timestep game loop
38 - Plug in any input/output system!
39 - Built-in SDL + OpenGL game loop implementation
40 - Get started writing games quickly!
41 - 2D/3D rendering engine via OpenGL
42 - Keyboard/mouse/controller input via SDL
43 - High-level OpenGL interface
44 - Sprites
45 - Shapes
46 - Fonts
98dc87a0 47 - GLSL shaders
cdac3f14
DT
48 - Tiled maps
49 - Math
50 - Vectors
51 - Matrices
52 - Quaternions
53 - Axis-aligned bounding boxes
54 - Easing functions
55 - Scripting
56 - Coroutines
57 - Time-based scheduling
58 - Generic A* pathfinding algorithm
98dc87a0
DT
59
60* Dependencies
61
62 - Guile >= 2.1.4
63 - Guile-OpenGL >= 0.1.0
dfce31fd 64 - Guile-SDL2 >= 0.3.0
98dc87a0
DT
65
66* License
67
68 GNU GPL version 3 or later