summaryrefslogtreecommitdiff
path: root/projects.scm
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2021-10-07 20:17:50 -0400
committerDavid Thompson <dthompson2@worcester.edu>2021-10-07 20:17:50 -0400
commit0e699be281c8dea53e589e08a5831837e0eae7ea (patch)
tree4266aebec927b13ca56410be1901e3ee78dff49e /projects.scm
parent38daa330f2194de5f39cd41b270c89d7b2e94427 (diff)
Updates for Chickadee 0.8.0 and Guile-SDL2 0.7.0.
Diffstat (limited to 'projects.scm')
-rw-r--r--projects.scm94
1 files changed, 70 insertions, 24 deletions
diff --git a/projects.scm b/projects.scm
index 8fdd861..6e05296 100644
--- a/projects.scm
+++ b/projects.scm
@@ -116,7 +116,8 @@ following modules:")
#:license "GNU LGPLv3+"
#:manual? #t
#:releases
- `(("0.6.0" ,(date 2021 04 13))
+ `(("0.7.0" ,(date 2021 10 07))
+ ("0.6.0" ,(date 2021 04 13))
("0.5.0" ,(date 2020 04 07))
("0.4.0" ,(date 2019 06 02))
("0.3.1" ,(date 2018 10 16))
@@ -221,6 +222,7 @@ and smile, because you've just generated your first Haunt site!"))
#:repo "chickadee"
#:guix-package "guile-chickadee"
#:manual? #t
+ #:irc-channel "#chickadee"
#:description
`((p "Chickadee is a game development toolkit for "
,(anchor "Guile Scheme" "https://gnu.org/s/guile") ".")
@@ -230,47 +232,91 @@ parenthetically inclined game developers need to make games in
Scheme.")
(p "Here is the obligatory “Hello, world” program:")
,(highlight-scheme
- "(use-modules (chickadee)
- (chickadee math vector)
- (chickadee graphics font))
-
-(define (draw alpha)
+ "(define (draw alpha)
(draw-text \"Hello, world!\" (vec2 260.0 240.0)))
-
-(run-game #:draw draw)
")
+ ,(centered-image "/images/chickadee/screenshot-hello-world.png"
+ "Hello world example screenshot")
(p "And here's how to draw a sprite:")
,(highlight-scheme
- "(use-modules (chickadee)
- (chickadee math vector)
- (chickadee graphics sprite)
- (chickadee graphics texture))
-
-(define sprite #f)
+ "(use-modules (chickadee graphics sprite))
-(define (load)
- (set! sprite (load-image \"images/chickadee.png\")))
+(define sprite (load-image \"chickadee.png\"))
(define (draw alpha)
(draw-sprite sprite (vec2 256.0 176.0)))
+")
+ ,(centered-image "/images/chickadee/screenshot-sprite.png"
+ "Sprite example screenshot")
+ (p "Chickadee can render vector paths:")
+ ,(highlight-scheme
+ "(use-modules (chickadee graphics path))
+
+(define gradient
+ (radial-gradient #:start-color tango-light-sky-blue
+ #:end-color tango-dark-sky-blue
+ #:radius 240.0
+ #:origin (vec2 240.0 240.0)))
+
+(define painter
+ (let ((filled-circle (with-style ((fill-color gradient))
+ (fill (circle (vec2 240.0 240.0) 240.0)))))
+ (translate (vec2 80.0 0.0) (corner-split filled-circle 4))))
-(run-game #:load load #:draw draw)
+(define canvas (make-canvas painter))
+
+(define (draw alpha)
+ (draw-canvas canvas))
+")
+ ,(centered-image "/images/chickadee/screenshot-vector-path.png"
+ "Vector path example screenshot")
+ (p "And it can also render 3D models:")
+ ,(highlight-scheme
+ "(use-modules (chickadee graphics light)
+ (chickadee graphics model)
+ (chickadee graphics skybox))
+
+(define model (load-gltf \"Suzanne.gltf\"))
+(define camera-position (vec3 0.0 0.0 3.0))
+(define world (make-identity-matrix4))
+(define view (look-at camera-position (vec3 0.0 0.0 0.0) (vec3 0.0 1.0 0.0)))
+(define projection (perspective-projection (/ pi 3.0) (/ 4.0 3.0) 0.1 5.0))
+(define skybox
+ (make-skybox
+ (load-cube-map #:right \"right.jpg\"
+ #:left \"left.jpg\"
+ #:top \"top.jpg\"
+ #:bottom \"bottom.jpg\"
+ #:front \"front.jpg\"
+ #:back \"back.jpg\")))
+
+(define (draw alpha)
+ (with-projection projection
+ (draw-skybox skybox view)
+ (draw-model model
+ #:model-matrix world
+ #:view-matrix view
+ #:camera-position camera-position
+ #:skybox skybox)))
")
- (p "Features include:")
+ ,(centered-image "/images/chickadee/screenshot-3d.png"
+ "3D example screenshot")
+ (p "Other features include:")
(ul
(li "extensible, fixed-timestep game loop")
- (li "OpenGL-based rendering engine")
- (li "keyboard, mouse, controller input events")
- (li "vectors, matrices, bounding boxes, easing functions, etc.")
+ (li "keyboard, mouse, and controller input events")
+ (li "vectors, matrices, bounding boxes, and easing functions")
+ (li "audio playback")
(li "asynchronous scripting"))
(p (small ,(anchor "chickadee sprite by Refuzzle, CC0"
"http://opengameart.org/content/winter-birds"))))
- #:requirements '("GNU Guile >= 2.1.4"
- "Guile-SDL2 >= 0.6.0"
+ #:requirements '("GNU Guile >= 3.0.0"
+ "Guile-SDL2 >= 0.7.0"
"Guile-OpenGL >= 0.1.0")
#:license "GNU GPLv3+"
#:releases
- `(("0.7.0" ,(date 2021 04 13))
+ `(("0.8.0" ,(date 2021 10 07))
+ ("0.7.0" ,(date 2021 04 13))
("0.6.0" ,(date 2020 11 19))
("0.5.0" ,(date 2020 04 08))
("0.4.0" ,(date 2019 06 04))