summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2022-10-24 17:13:02 -0400
committerDavid Thompson <dthompson2@worcester.edu>2022-10-24 17:13:02 -0400
commit04b497387585a7c22253563fcfa45d0884bf53f2 (patch)
tree31af3cf76c70945003021e57d8a73cc3410320d3 /README
parent5fbcae53d524f5e902b76292e418048e541d28c5 (diff)
Update README.
Diffstat (limited to 'README')
-rw-r--r--README69
1 files changed, 46 insertions, 23 deletions
diff --git a/README b/README
index dfba2d1..d55794a 100644
--- a/README
+++ b/README
@@ -4,53 +4,76 @@
* About
- Chickadee is a game development toolkit for Guile Scheme. It comes
- with built-in support for 2D/3D games using SDL and OpenGL, but is
- generic enough to be used with any I/O backend, in case you are
- writing a text adventure or want to render your Roguelike to a
- terminal!
+ 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:
- - Generic fixed timestep game loop
- - Plug in any input/output system!
- - Built-in SDL + OpenGL game loop implementation
- - Get started writing games quickly!
- - 2D/3D rendering engine via OpenGL
- - Keyboard/mouse/controller input via SDL
- - High-level OpenGL interface
+ - Hardware accelerated 2D/3D rendering engine
- Sprites
- - Shapes
- - Fonts
- - GLSL shaders
- - Tiled maps
+ - 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
- - Axis-aligned bounding boxes
+ - Bounding boxes
- Easing functions
- - Scripting
- - Coroutines
- - Time-based scheduling
- - Generic A* pathfinding algorithm
* Dependencies
- - Guile >= 2.1.4
+ - Guile >= 3.0
- Guile-OpenGL >= 0.1.0
- - Guile-SDL2 >= 0.3.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