This is the README.ORG file for the Blocky programming language. It contains general information about the project as well as an index of important files in this source distribution. More information about Blocky can be found at the Blocky home page, blocky.io.
The included file “COPYING” contains full licensing information, including the text of the GNU General Public License, Version 3.
See the included file INSTALL for installation instructions. A programmer’s guide may be found in the file GUIDE.ORG.
Blocky is a visual programming language for Common Lisp paired with an Emacs-like user interface. In addition to borrowing ideas from GNU Emacs, the language design is heavily influenced by existing research environments such as PureData, Squeak, Self Morphic, MIT Scratch, Berkeley’s BYOB project, and more recently Jens Moenig’s Smalltalk Elements.
My ultimate goal is to create an industrial-strength object-oriented visual Lisp by importing the “abstraction” concept from PureData. Such a “visual Lisp macro” facility enables much more powerful blocks to be defined in terms of simpler ones, interactively. In addition there are some improvements, such as native OpenGL support throughout, and of course the advantage of compiling your block diagrams to optimized machine code via SBCL. (Don’t forget Quicklisp either.)
I also wish to enable unfettered inquiry into computable knowledge, and to support radical autonomy of creative expression. So I have built Blocky first and foremost as a human language activity supported by free software, not as an app or platform—because language is a human right.
For more information on the design of Blocky, see http://blocky.io/design.html
For a quick start to getting familiar with Blocky internals, see the included file GUIDE.ORG (or read the first parts of the online Blocky reference manual) to get an overview of the language syntax. Then look through BLOCKS.LISP and branch out from there. I’ve placed cross references wherever possible.
Emacs users may find BLOCKY.EL useful in making Emacs behave better while editing Blocky sources and game modules.
Here is a quick index of the various files:
- COPYING: Licensing information, including full GPLv3 text
- INSTALL: How to obtain and build Blocky from source
- rgb.lisp: X11 color set
- keys.lisp: SDL key symbol translation table
- math.lisp: bresenham’s and other algorithms
- logic.lisp: several CL tools adapted from PAIP
- dance.lisp: rhythm tools for USB dance pads and other controllers
- prototypes.lisp: a custom Self-like object system underlying Blocky
- console.lisp: basic device and file operations for SDL, OpenGL, etc
- blocks.lisp: core Blocky language model and default block behaviors
- halo.lisp: generic GUI object handles, in the style of Squeak Morphic
- windows.lisp: generic interactive viewer for buffers
- text.lisp: generic emacs-like textbox editing control
- trees.lisp: drop-down menus and tree tab widgets
- listener.lisp: Lisp data entry and command processing
- system.lisp: treating the system and session like an object
- worlds.lisp: places where gameplay happens
- shell.lisp: drag-and-drop enabled editor shell
- path.lisp: A-star pathfinding on a grid
- meta.lisp: visual macros for implementing blocky-in-blocky
- library.lisp: standard blocks library
- blocky.el: emacs lisp configuration for editing blocky source
- blocky.asd: ASDF system definition
- blocky-init.lisp: user-specific startup configuration file for blocky
- tasks.org: current task list and plans, in org-mode format
- blocky.org: write-up of some future plans for Blocky
- standard.blocky: directory with included fonts/images
- example1.blocky: hello world example
- example2.blocky: second example
- build-unix.lisp: build script for unix
- build-win32.lisp: build script for win32
Blocky is (C) Copyright 2006-2011 by David T. O’Toole <email@example.com> This program is dedicated to our beloved Yogi, who died 2006-10-06.