diff options
author | David Thompson <dthompson2@worcester.edu> | 2022-10-24 17:13:02 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2022-10-24 17:13:02 -0400 |
commit | 04b497387585a7c22253563fcfa45d0884bf53f2 (patch) | |
tree | 31af3cf76c70945003021e57d8a73cc3410320d3 /README | |
parent | 5fbcae53d524f5e902b76292e418048e541d28c5 (diff) |
Update README.
Diffstat (limited to 'README')
-rw-r--r-- | README | 69 |
1 files changed, 46 insertions, 23 deletions
@@ -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 |