"[...] We should be able to play a side-scrolling shooter on a Game Boy, figure out one cool aspect of it, and apply that idea to the 3D simulation we're building. Or take a game we'd love if it weren't for one annoying part, understand why that part is annoying, and make sure we don't make a similar mistake in our own games. If we reach this understanding, evolution of design across all genres will accelerate. But understanding requires that designers be able to communicate precisely and effectively with one another. In short, we need a shared language of game design." Doug Church Gamasutra July 16, 1999 Vol. 3: Issue 28
"Do you want to see the digital rain?" Bot.75H3Y3 of MesoEgo's MetalRage
by Joćo Pedro Neto
I want to present some insights about Game Design. My two main sources of inspiration lie in books and discussions (I strongly encourage you to do both things) Herein, we will see some material about concept definitions and about scripting languages for games. But this can change, like everything in the Internet! If you find something to say about this document, please email me. Click to get the zipped content of these files [~65k].
NB: these are now quite old webpages (around 2000)
"Why everything must end in the beginning?"
Nowadays, there is a big tendency to make configurable games. Games are increasly modular and extendable in order to stretch out the lifespan of the game itself (remember for how long people still played Doom or Quake?). Some examples are on First Person Shooters (Quake II, Unreal, Half-Life, ...), Wargames (Myth II, WarCraft 2, StarCraft, ...), MUDs (LPMUDs, ...) and even Board Games (Zillions of Games). This is logical, because many people found out that they do not only want to play the game, they also want to change it! Making new levels, new monsters, new weapons...
So, in recent years, games are shipped with editors that customize a lot of stuff. A new trend are scripting languages. They are becoming more than a fashion. They are perfect for extendable games, because the user can produce configurable code at a higher level, leaving the complexity of the kernel code (a company property and usually not available), and still benefit from its features. Two good examples are LPC and UnrealScript.
The LPC language customizes an entire environment for a MUD. It is divided into three parts (the Kernel, a virtual machine running interpreted code; a Library made in LPC, that customizes the atmosphere and other typical stuff of the system ; and User Code, where the MUD Gods and Wizards shape the actual game).
UnrealScript is the scripting language of Unreal, with it, it's possible to modify and extend Unreal to a very high degree. Each object behavior in the game is programmed in UnrealScript, and with its Object Oriented Programming (OOP), game modifications (MODs) are very fast.
"To achieve goals and themes."
I think the main point is to give you some ideas! First, I want to define some concepts in order to create a working vocabulary. I will use everytime I can, the most common terms in AI and Computer Science. Having this set of definitions, it is possible to create a set of simpler sub-problems, and so, be easier to examine each one of them. Divide and Conquer, they say... Hmmm... Is that designing?
Second, I want to start a fruitful discussion on how should a script language be used for Game or System Design. This has several distinct parts:
Next Section : General Concepts