Mark Kollasch's Incomparable Game-Making Weblog

Words about the design and creation of interactive entertainment of all types.

12 May 2008

Classical Computer Science

It occurred to me, of late, that there is some considerable overlap between concepts in modern computer science and classical philosophy, in particular the ontological models of ancient Greek philosophers. There is a fairly obvious relationship between class inheritance and Aristotelian taxonomy. The abstract data type is nothing if not a practical example of Plato's concept of ideals (and, although this is more likely to be a coincidence, Plato regarded ideals as the ultimate truth, while in Lisp-derived languages and others, all types inherit from T or True).

And never you mind that any programming language is a formalized system of symbolic logic built upon a set of axioms. You already know that Zeno and Euclid invented those. Mathematical similarities don't count; there's nothing particularly insightful in pointing out that Pythagoras suggested everything could be represented numerically. There are plenty of other pertinent examples. Thales' explanation of change and substance (the fundamental substance of a thing remains the same although its attributes change) is preserved in mutable objects; Democritus' description of the atom is closely related to the discrete mathematics upon which all computer science relies; when Empodocles proposed the four classical elements, he was in fact suggesting the first-order primitives of the universe.

Naïve, low-detail models of the physical world are another common element in classical writing, with pre-Galilean science being what it was. The Greeks maintained such viewpoints because they made intuitive sense and were not subjected to particular scrutiny; modern software engineers do so by stripping away all the data not important to their current undertaking, for purposes of specialization and optimization. Even so, there is noteworthy similarity between classical physics and computing idioms. Of particularly striking interest is classical optics: the notion that vision and light is based on plain rays, rather than the modern model of photons and whatnot. A supposed debate among early students of optics was whether vision functioned by casting rays from the eyes to the objects being seen, or light sources casting rays which entered the eyes. Need I even point out the parallel to different ray tracing methods? In that light (ha!), John Carmack's fascinating work of late rather portrays him as a modern-day... I'm not entirely certain there is a suitable historic analogy for what he's doing right now, but it's nevertheless exciting.

Presumably, all of this mimicry of classical philosophy emerged unintentionally. People perhaps followed a similar thought process to the ancient sages, or, having been exposed at some point to the logical structure of their teachings, repeated them unawares. What might happen if we were to deliberately combine structured classical philosophy and computer science? What about other, later types of philosophy that build upon them? There are millennia of profound thought in human history, attempting to identify the true nature of the world. Since software simulation can present a model of the world which does not need to be accurate, so long as it is mathematically consistent, adopting their efforts to our craft may well introduce equally profound new models with distinct advantages, so that a little knowledge of history may elevate our craft beyond even what our own luminaries and sages have done.

Labels: , ,

06 February 2008

Mechanics Follow Metaphor?

Recently I discussed the challenge of ensuring that a game's metaphor reinforces its mechanics. An easy way of ensuring that this is true is by selecting a metaphor first and modeling it mechanically. This approach may be called simulation. While selecting the metaphor first may be a useful source of inspiration, that is not simulation, strictly speaking.

Certain considerations must be taken when using a simulative approach to game design. Simulation tends to be typically computationally expensive, which is prohibitive when not using a computer. It can be difficult, at times, to present information about the state of a simulation in a manner befitting a game (that is, clear and unambiguous, except where it needs to be obscure or unknown). Certain simulations' unique behavior comes from their subtleties, and inaccurate modeling may completely invalidate them, unless you so simplify them that it becomes pointless to call them a simulation any longer.

These technical and logistical risks are great, but they are negligible next to the psychological risk. If you are making a game out of a simulation, the process you simulate must be worthwhile as a game. Simulations proper have myriad uses throughout business, education, and science - but how many of them are really entertaining? However you define fun, a game has to have it. A person wouldn't play a game if they could get the exact same kind of fun from real life. This is why a game needs to differ from a person's real life in some significant way - and why it is so dangerous to make an accurate simulation that is also worthwhile as a game.

The real value of a simulation-game, I propose, is as a provider of vicarious experiences, be they of somebody else's mundanity or of a fantastic but internally consistent setting. The player of a simulation-game seeks novelty, which is a kind of fun. The difference between a simulation-game and a purer game with an exotic setting is that the simulation-game tells the user what it's like in lots of little ways, whereas the game proper asks the player to fill in the experience with his imagination. It's a blurry continuum, but the accuracy and detail of the presentation is the axis along which it is measured.

Labels: ,