summaryrefslogtreecommitdiff
path: root/posts/2013-08-07-guile-2d.skr
diff options
context:
space:
mode:
Diffstat (limited to 'posts/2013-08-07-guile-2d.skr')
-rw-r--r--posts/2013-08-07-guile-2d.skr48
1 files changed, 48 insertions, 0 deletions
diff --git a/posts/2013-08-07-guile-2d.skr b/posts/2013-08-07-guile-2d.skr
new file mode 100644
index 0000000..f612977
--- /dev/null
+++ b/posts/2013-08-07-guile-2d.skr
@@ -0,0 +1,48 @@
+(post
+ :title "guile-2d - A 2D Game Development Framework for GNU Guile"
+ :date (make-date* 2013 08 07)
+ :tags '("foss" "gnu" "guile" "scheme" "gamedev" "wsu")
+ :summary "I have started work on a 2D game framework"
+
+ (p [This is the very first devlog entry for my pet project,
+guile-2d. As the title suggests, guile-2d is a 2D game development
+framework for
+,(anchor [GNU Guile] "http://gnu.org/s/guile"),
+a Scheme implementation that has the honor of being the official
+extension language of the GNU project. Guile is a language with a
+growing number of features, but it still lacks a large assortment of
+libraries. I like to do 2D game programming, and I saw a niche that
+needed to be filled. Python has Pygame, Lua has Love, but there's no
+fun and accessible game programming library for Guile. Guile-2d is
+working to correct that.])
+
+ (p [The goal of Guile-2d is to create an easy to use 2D game
+programming framework. Libraries like SDL give the programmer a
+rather low-level set of tools that they can use to build a game,
+guile-2d will provide high-level tools over low-level SDL and OpenGL
+for commonly used elements of 2D games: tile maps, sprite animation,
+particle systems, collision detection, vector math, A* pathfinding,
+etc. Such features will allow a game developer to very quickly
+produce a working prototype with guile-2d.])
+
+ (p [Guile-2d is a framework, which means that it has some opinion
+about what the right way to do things is. The most apparent example
+of this is the game loop. The game loop runs at 60 frames-per-second
+and uses fixed timestep updates. Those that have read
+,(anchor [Fix Your Timestep]
+ "http://gafferongames.com/game-physics/fix-your-timestep/")
+will know that this decision is a good thing.])
+
+ (p [Perhaps the most important feature of guile-2d is the ability to
+do “live coding”. When the game loop starts, a REPL
+\(read-eval-print-loop\) server is started. Using the great
+,(anchor [Geiser] "http://geiser.nongnu.org/")
+extension for Emacs to connect to the REPL server, one can modify
+their game as it is running. This gives users the power to evaluate
+some new code and see the changes reflected immediately in the game
+window. No need to restart the game unless you crash it!])
+
+ (p [This has been a brief overview of some of the features and goals
+of guile-2d. If this project interests you, you can check out the
+source code on
+,(anchor [Github] "https://github.com/davexunit/guile-2d").]))