From 25c5eac5e6ca1035db1eddd7bea9ac78531da57e Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 28 Dec 2023 11:23:49 -0500 Subject: Delete manuals! Good riddance! These are hosted on files.dthompson.us now! --- manuals/sly/Introduction.html | 120 ------------------------------------------ 1 file changed, 120 deletions(-) delete mode 100644 manuals/sly/Introduction.html (limited to 'manuals/sly/Introduction.html') diff --git a/manuals/sly/Introduction.html b/manuals/sly/Introduction.html deleted file mode 100644 index c4eabcc..0000000 --- a/manuals/sly/Introduction.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - -Sly: Introduction - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
-
- -

1 Introduction

- -

Sly is a 2D/3D game engine written in the GNU Guile dialect of the -Scheme programming language. With the help of Guile, Sly provides all -of the essential building blocks for making video games, such as: -window management, input even handling, rendering, linear algebra, and -powerful scripting capabilities. Sly differentiates itself from -traditional game engines by providing a dynamic live codinng -environment and a functional API. -

-

For those unfamiliar with the term, “live coding” is the practice of -improvised interactive programming. Sly provides a suitable -environment for live coding by leveraging Guile’s cooperative REPL -server. When used with a powerful editing tool such as Emacs (with -the fantastic Geiser extension), programmers may evaluate arbitrary -code and see the effects of their modifications in real time. This -tight feedback loop allows for faster prototyping, greater -productivity, and most importantly, more fun. -

-

Functional reactive programming (FRP) is a technique used to model -time-varying values with pure functions. A pure function is a -function whose return value depends solely upon its arguments. They -also produce no side-effects, such as calling ’set!’ on a variable or -writing to a file on disk. Sly encapsulates time-varying values in -“signals”, a high-level data structure for controlling the flow of -events. Unlike imperative event callbacks, signals can easily be -composed to form new signals. By modeling game state with pure -functions and immutable data, a game can be seen as a function of -time. To play the game is to “fold” (accumulate a result) over -time. Constructing a game this way allows for deterministic behavior -that is easier to reason about and test than the accumulation of -side-effects seen in traditional game engines. The signal interface -is also declarative, meaning that the programmer describes what -the state of the world should be like at any given time, rather than -how to get there. -

-
-
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
- - - - - -- cgit v1.2.3