summaryrefslogtreecommitdiff
path: root/README
blob: 9aff5594f634056c92568507412f52712207fa4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
-*- org -*-

#+TITLE The Chickadee Game Development Toolkit

* About

  Chickadee is a game development toolkit for Guile Scheme.

  Here's a simple hello world program:

  #+BEGIN_SRC scheme
    (define (draw alpha)
      (draw-text "Hello, world!" (vec2 260.0 240.0)))
  #+END_SRC

  The above program can be run with =chickadee play=:

  #+BEGIN_SRC sh
    chickadee play hello.scm
  #+END_SRC

  Here's what rendering a sprite looks like:

  #+BEGIN_SRC scheme
    (use-modules (chickadee graphics sprite))

    (define sprite (load-image "images/chickadee.png"))

    (define (draw alpha)
      (draw-sprite sprite (vec2 256.0 176.0)))
  #+END_SRC

  #+BEGIN_SRC sh
    chickadee play sprite.scm
  #+END_SRC

* Features

  Chickadee has the following features:

  - Hardware accelerated 2D/3D rendering engine
    - Sprites
    - Text
    - Vector graphics
    - Particle effects
    - Tile maps
    - 3D models
  - PNG, JPEG image loading
  - OGG, MP3, WAV audio playback
  - Fixed timestep game loop
  - Keyboard/mouse/controller input handling
  - Window management
  - Asychronous scripting
  - Math
    - Vectors
    - Matrices
    - Quaternions
    - Bounding boxes
    - Easing functions

* Dependencies

  - Guile >= 3.0.6
  - Guile-OpenGL >= 0.1.0
  - Guile-SDL2 >= 0.8.0

* Running examples

Examples in this repository can be run like so:

  #+BEGIN_SRC sh
    ./run-example sprite
  #+END_SRC

  See the =examples/= directory for the names of all the available
  examples.

* License

  GNU GPL version 3 or later