unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* [ANN] Sly 0.1 released
@ 2015-11-13 13:48 David Thompson
  2015-11-13 13:56 ` Amirouche Boubekki
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: David Thompson @ 2015-11-13 13:48 UTC (permalink / raw)
  To: guile-user

Greetings Guilers,

I am happy to announce the release of Sly 0.1.  I've been sitting on
this code for a long time now, and it's great to finally release it.

Download
--------

0.1 release tarball: http://files.dthompson.us/sly/sly-0.1.tar.gz
SHA1: 9936a8f6ac62a276919134cb92546620475a1c29

About Sly
---------

Sly is an experimental 2D/3D video game engine written in pure Guile
Scheme.  It builds upon OpenGL and SDL to provide a fun, hackable
environment for writing games.  Think of it like Emacs but for games.
Unlike traditional game engines which focus on imperative
object-oriented programming with mutable data, Sly exposes a functional
interface and promotes the use of persistent, immutable data structures.

The REPL takes center stage in Sly, as it should.  Rather than the
traditional edit, compile, restart cycle of game development, games
written in Sly can be easily changed at runtime thanks to the integrated
REPL server.  To develop a game with Sly, you start with a blank screen,
connect to the REPL server, and iteratively build the game model and
interactive features.  Using Emacs + Geiser for this is a joy, BTW.

Video game state changes are very asynchronous which manifests in most
game engines as a collection of event-based callback functions, or
"callback hell" for short.  In Sly, this is abstracted and formalized
into a "functional reactive" programming interface.  "Signals" are
used to represent time-varying values, and hackers can use analogs of
the usual functional friends (map, fold, filter, etc.) to transform
signal values with respect to time.  The result is a more declarative
program that automatically responds to state changes.

This initial alpha release of Sly features many example programs
(found in the 'examples' directory) to show off basic features.  This
includes things like a Minesweeper clone, a 2048 clone, and Conway's
game of life.

Sly is still a young project with many limitations:

* No 3D model loading
* Half-baked interface to GLSL shaders
* Slow rendering engine
* No sound effects or music
* No lighting
* No sprite batching
* No instanced rendering
* Still using SDL 1.2 instead of the much improved SDL 2.0
* Incomplete documentation

Help wanted!  I've learned a lot about OpenGL so far, but I could use
more hands to help improve the renderer's feature set and performance.

Sly is licensed under the GNU GPL version 3 or later, because there's
enough permissively licensed game engines as it is.

In lieu of a mailing list or bug tracker, feedback and bug reports can
be sent directly to my personal email address.  Please join #sly on
Freenode for friendly discussion about the project.

More information, including (incomplete) documentation, can be found
on Sly's home page: <http://dthompson.us/pages/software/sly.html>

My search for a more enjoyable way to build video games was what lead me
to the Guile community just over 3 years ago now.  It's been quite the
ride!  I hope that you enjoy Sly and see the potential for its future
development.

Happy hacking!

-- 
David Thompson
GPG Key: 0FF1D807



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-11-20 22:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-13 13:48 [ANN] Sly 0.1 released David Thompson
2015-11-13 13:56 ` Amirouche Boubekki
2015-11-13 17:30 ` Christopher Allan Webber
2015-11-13 17:50 ` Nala Ginrut
2015-11-13 18:23 ` Andreas Rottmann
2015-11-13 18:31   ` Thompson, David
2015-11-15 12:58   ` 宋文武
2015-11-16 10:31 ` Stefan Husmann
2015-11-16 22:04   ` Thompson, David
2015-11-20 22:00 ` jordan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).