Skip to content
This repo is no longer supported. Code refactored and new repo js-screens created.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
Lander.msh
LunarLander.msh
README.md
ffmpegsumo.dll
icudt.dll
libEGL.dll
libGLESv2.dll
mesh.jison
mesh.js
meshbase.html
meshbase.js
nw.exe
nw.pak
package.json

README.md

#Introduction

Mesh Workshop is an interactive programming system (IPS) in the style of IPSs of old, such as Interlisp and Smalltalk. Its design was inspired by the innovative work conducted at institutions like Xerox PARC, where the basic elements of the GUI desktop OS as we know it today were worked out, having been inspired by the work of Douglas Engelbart at Stanford (many of Engelbart's colleagues went on to work at PARC). Yet Mesh is different because it has been designed for a specific purpose: to enable the creation of rule systems - or "core" rulesets - for text-based strategy games.

An IPS can be thought of as a cominbation of an OS and an integrated development environment (IDE). If you ever owned a Commodore VIC-20 or 64, or one of the many other "micros" of that era, you already have some experience working with a rudimentary IPS derived from Microsoft BASIC (often rebranded; Commodore licensed the product, adapted it somewhat, and called it Commodore BASIC). Remember how the command line (such as it was) operated? You could perform a system-related task such as opening a file, as well as enter a line of BASIC code, all from the same prompt. If you entered a direct command such as "LET A=10", then that variable would be stored within the system itself. Unless redefined either on the command line or within a program, A would continue to equal 10. This is known as a "persistent" environment, though admittedly Microsoft BASIC was not all that persistent: as soon as you turned the computer off, all such information would be lost.

A real IPS, then, is more advanced than this. I will cite three key differences here. First off, IPSs almost always offer GUI-style environments - typically windowed - to the user. This is partially a result of the legacy of PARC, and partially because such systems are so modern and useful (when designed correctly). The second difference is that, as already hinted at, IPSs offer persistent environments in the form of "images". An image is a file that has logged all the changes you have made to a given system, including global variables, location and content of windows, and any and all code. Images may be saved and loaded, so that you may pick up right where you left off each time you start a new session. You can even take your image with you and use it elsewhere.

The third difference is somewhat more complicated: the typical IPS allows the user to alter the very structure of the system itself. This is possible because the system was programmed using the same language offered to the user. In other words, every aspect of the Smalltalk IPS, to take one example, was designed and built in the Smalltalk language. This code is made available to the user, so he or she may customize the system as much as they please. There are limitations, of course: certain fundamental elements will inevitably be black-boxed. There is no way, as far as I know, to set it so that all Smalltalk workspace windows come out shaped like octogons, or sing the Star-Spangled Banner when you open them up. But you can still do a lot.

####Games

As I alredy stated above, Mesh Workshop was designed to allow for the creation of text-based strategy game rule systems. What exactly do I mean by this? Well, you may or may not be familiar with the text strategy game classics of the 1970s and 1980s, beginning with programs such as Lunar Lander and Hamurrabi. Think of Civilization on the command line. Civilization, in fact, was partially inspirted by a text-based game called Empire. Instead of clicking on units and then clicking on orders, you typed in everything you wanted to do using simple commands. In the earliest games, you usually just typed in numbers in response to specific questions asked by the computer. Later games became more complicated than this. Graphics were eventually added, but I will likely deal with that in a subsequent version of Mesh. For now, I want to get the text stuff right.

Mesh Workshop, however, is not intended to serve simply as a means to create strategy games. There are plenty of other languages that can do that. What Mesh is intended to do is allow the user to develop their own platforms upon which to build such games. Think of the "core" rule systems offered for most pen-and-paper RPGs. Such rulesets provide mechanisms and structures by which to shape the gaming experience. But they are not games in and of themselves. To play such RPGs, you need to purchase or design a specific campaign (or related construction) that takes the rules and provides vital contextual details. Think of Mesh Workshop as a system in which core rulesets for strategy games may be designed (as well as the games themselves).

####Why Games? The IPSs suffered because there were other products that were much easier to use.

I should probably emphasize that this is not at all a bad thing. Classical music has no overtly practical use, yet we're not about to throw out all our pianos. A soccer ball can't prepare a budget or a slideshow presentation, but we're not going to scuttle the EPL or cancel the World Cup. Classical music and soccer/football are celebrated and loved by millions of people. Practicality is overrated, or perhaps misunderstood.

You can’t perform that action at this time.