Welcome to the home of the Slage project.
Slage is a framework for creating online games, quickly, easily and without you needing to run a complicated server.
Slage was originally being designed for use with the SQ7.org project, but is build around an extendable architecture which should make it easy for most projects to use.
It's core goal is to make game design easier both for experienced game-design professionals, as well as those unfamiliar with programming languages.
It is designed to be easy to use, without dumbing down features, or restricting what a user can do.
Slage is designed to make the construction of both commercial and amatuer games easier as well as more flexible. You are encouraged to download and try Slage, and see how it fits the needs of your game. If you think it sucks, and `Product X' is so much better, then by all means, use Product X. If you think it's a good start, but could use `Feature Y', then please either submit the code which makes Feature Y a reality, or contact us to discuss rates for implementing the feature for you.
Slage works by allowing a game designer to define a scene using a series of objects, defined in XML. These objects define every thing in the game that's interactable- Characters, Inventory Objects, Background Objects (Clickevents).. Each element can be fully define in XML- It's name, location, size, and it's images and animation. All of this can be done without recompiling Slage- Only editing a text file.
Where the interesting part of the Slage engine comes in is defining behavior of the objects- What the object actually does. Each action that can be berformed, such as Looking at an object, Taking something from a scene and adding it to inventory, or closing a door is defined by a Handler.
What a handler does is to translate the event requested by the XML, into something that happens in-game. It can be thought of as an interface between XML and Gamecode.
Another analogy might be that a handler is an arbitrary method, which we pass data into via XML.
Each action, such as Look, or Talk, has a handler, which is written in java, to perform certain actions when an object calls it. For instance, in the XML for a dog, you might register the Look handler, and tell the handler that when dealing with the dog, Look should respond with "It looks like a dog."
You could later add another handler for Talking to the dog, and tell the handler what to use as a reply.
The beauty of the handler system is that it allows game creators unfamiliar with java to write XML to use existing handlers, but experienced programmers can write a handler for any custom event, so they never lose flexibility.
For instance, if you had a light switch in a scene, you could write a quick handler in java that flipped between two different background images. One with lights, the other without. You're never locked in to existing handlers, but are allowed and encouraged to use them to speed up common tasks.