From 04b497387585a7c22253563fcfa45d0884bf53f2 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 24 Oct 2022 17:13:02 -0400 Subject: Update README. --- README | 69 ++++++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 23 deletions(-) (limited to 'README') 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 -- cgit v1.2.3