From jbum wiki
Jump to: navigation, search

IPTSCRAE (iptScrae, iptScray - there is no standardized spelling) was the scripting language for The Palace. I developed the first Iptscrae parser for the Visions of Mars project, as an add-on for Idaho the multimedia authoring system I made for Warner New Media / Time Warner Interactive.

The name, iptScray, was a joke, an idea stolen from my friend Kevin Bjorke, who made a Forth interpreter he called orthFay back when we were CalArts students. The pig latin is a reference to the backwards stack order (aka reverse polish notation) that the language uses. Bjorke later because an Iptscrae expert in his own right, known on the Palace as Dr Xenu.

For The Palace, I added a number of chat-specific event handlers, so that scripts could be triggered to respond to (and/or modify) chat messages on the server <OUTCHAT> handled messages before they were sent to the server, and <INCHAT> handled incoming messages from the server. For example, in one room, a suit of armor would make silly responses to various trigger words. In another room, certain words would get automatically changed into other words to amusing effect (for example, "Internet" because "Pizza Thing", and "Palace" became "This thing that is eating my life").

In some rooms, Iptscrae events could trigger graphics events, causing a "laser" zaps at targets, and the like.

The underlying navigational architecture of the palace (that enabled doors to open, shut and lock, and portals to transform you to different rooms, and change your appearance) used Iptscrae handlers for all these events. All Iptscrae handlers were run client-side, part of our general philosophy of "fat client / thin server".

In certain rooms, visitors were permitted to run their own custom scripts which made for general chaos -- this feature was mostly turned off for well-trafficked areas.

A later innovation was the "AllScray" script, which enabled one person to make a script that would get executed in parallel on every person in a room. This was used, for example, to create annual fireworks shows.

As mentioned above, there is no standard spelling for iptSCRAY, and I made a point of using different spellings all the time, just for fun. Judging from the Manual, I believe Communities.com stuck to Iptscrae after my departure.

Once the Palace took off, it was generally acknowledged that Iptscrae was both a really cool feature, and a terrible language, syntactically. The main reason for using Forth-like languages is that they are astoundingly simple to implement (the first interpreter I made was an afternoon of work). That ease-of-implementation is balanced by horrendous ease-of-use (a common tradeoff in software). By the time The Palace matured, it was too late to replace it easily, so we stuck with it. Despite its user-unfriendliness, a large number of young non-programmers cut their teeth on it, and went on to bigger and better things, and I am gratified to have received some nice letters from a lot of these folks.

Here's a Wikipedia Article on the language.

Here is the Official Iptscrae language guide