HELLO my name is
HELLO my name is
HELLO my name is
HELLO my name is
HELLO my name is
HELLO my name is
HELLO my name is

Plato wrote that every object was an imperfect thing made according to someone's idea of a thing. Everything a carpenter makes is imperfect, not because the carpenter is terrible, but because the table he makes can't be as good as the table he sets out to make. This is what Platonic forms are — the perfect idea of a thing. Plato went further to establish a whole system of ethics on the idea that we should always strive to make things more and more perfect.

These concepts became more and more enshrined in the religious thinking of the 1300s or so, due largely to the work of Johnanes Scotus Eriguena. Platonic forms enter into Scotus' thinking by way of the notion that all souls are imperfect implementations of God's sinless existence, and that the task of a human being is to strive to get closer to God by adhering to the Christian moral code — this is an understanding of ‘soul’ according to Platonic forms.

In this conception of the universe, every creature is moving toward perfection, and every creature can only be understood when compared against its perfect form — the idea that was its genesis.

Thomas Aquinas wasn't a fan of the idea that God made souls just to damn them. The individual's will, he argued, must play a role. God has mercy and grace, but also justice and wrath. So too must His creatures. Our job, said Aquinas, is to use our reason to discover eternal law, and the imperfect law we craft while doing so is natural law.

This idea that the individual could discern natural law through observation was an early thread in the tapestry of natural rights, and arguably the root of the Enlightenment. This idea had Papal support thanks to a sloppy argument about the power in the person of the pope, so once Scholasticism took hold, the power of the individual was freely discussed among scholars of Canon Law, the complex set of rules devised by the Church and argued over by smart priests while everyone else was digging potatoes and forgetting the really important stuff like how to read and do mathematics.

The Franciscans saw this trend in the thinking of the Church and used it to bolster the argument that they should be allowed to take a vow of poverty. The Pope did not like the idea of poverty at all, so he opposed the Franciscans, by way of Papal Bulls and responses to them. To support their vow of poverty, the Franciscans argued that they could renounce ownership but still use things. The Pope argued that they could not do this because ownership is a universal feature of a human being.

Nuts to that, the Franciscans said. If a universal truth can be so easily negated, it cannot be said to be universal. A so-called ‘universal truth’ must exist only in the minds of human beings. William of Ockham reversed the order of things: he argued that human beings derive higher-level concepts from perceptual data rather than classifying viewed things according to innately-known categories.

A cat is a cat, the argument goes, because it has qualities that every other cat I've seen has had, not because I have an innate notion of a cat and I acknowledge this cat's ... catness. The important factor is that the individual creates the concept based on what he or she has seen. If all the cats I've ever seen had three legs and you've only ever seen whole cats, our conceptions of ‘cat’ are different.

This is the core of Nominalism — the view that every thing that exists is a particular thing with its own properties and that the properties it shares with other things allow us to craft classifications like 'cat'. These classifications cannot be seen as universal concepts, but merely as convenient mechanisms for organizing our world, the argument goes.

The act of programming makes us nominalists.

When coding something, you want to model a complex behaviour in as simple a way as possible. So you reduce real objects, concepts, or phenomena to sets of properties and methods that properly encapsulate them, then have them go at it.

For example, here's the 'Inigo' object from the text adventure game below:

var toon = Class({
    initialize: function (){
        this.experience = 0;
        this.level = 0;
        this.hitpoints = 30;
        this.maxhitpoints = 30;
        this.inventory = [];
        this.currRoom = 0;
        this.xptolevel = levelsXPReq[this.level];
        this.holding = "";
        this.basehit = 8;
        this.gameover = 0; 
    setCurrentRoom: function(newRoom){if(newRoom != this.currRoom){this.currRoom = newRoom;}},
    getCurrentRoom: function(){return this.currRoom;},
    take: function(objName){
	   	var theObject = rooms[inigo.getCurrentRoom()].takeObject(objName);
    drop: function(objName){
		var objIndex = this.inInventory(objName);
		if(objIndex != -1){
			return 1;
		return 0;
    inInventory: function(objName){
	    var i, objIndex = -1;
	    for(i=0; i levelsXPReq[this.level]){
		    this.experience -= this.xptolevel;
		    hpInc = Math.floor(Math.random()*(5*this.level)+(2*this.level));
		    this.maxhitpoints += hpInc;
		    this.hitpoints = this.maxhitpoints;
		    baseHitInc = Math.floor((Math.random()*3)+1);
		    this.basehit += baseHitInc;
		    this.xptolevel = levelsXPReq[this.level];
		    return "Woohoo! you gained a level!
You are now level "+this.level+".
Your hitpoints increase to "+this.hitpoints+".
Your base hit is now " + this.basehit + " and you feel stronger.
"; } return -1; }, toggleSword: function(){ if(this.holding !== "sword"){ this.holding = "sword"; return "You expertly draw your sword.
"; } else { this.holding = ""; return "You deftly slide your sword back into its scabbard.
"; } }, hit: function(damage){ this.hitpoints -= damage; if(this.hitpoints <= 0){return -1;} else {return 0;} }, die: function(){ return "

Auugh! You've been slain.

Now Westley will not be able to rescue Buttercup and she will marry Prince Humperdink. She'll be okay, but she'll never know the depth of Westley's love. Fezzik will be sad for a few minutes and then forget you. Vizzini … will just keep being Vizzini.This could have been a triumph, you know.

"; }, outcome: function(type){ var endmsg = ""; if(type == 'victory'){ endmsg = "

Wait what?

Well. You've killed the Man in Black. Huh. That wasn't supposed to happen. I guess Westley's mission will fail, Buttercup will marry Humperdink, Fezzik will continue to be the Brute Squad, and Inigo will return to being a rogue. Good job, I guess.

"; } else { endmsg = "

The Man in Black knocks the sword from your hand. You stand helplessly for a moment, then fall to your knees.

"; endmsg += '

You close your eyes and say, "Kill me quickly."

'; endmsg += '

The Man in Black says, "I would as soon destroy a stained glass window as an artist like yourself. However, since I can\'t have you following me either."

'; endmsg += '

He hits you on the head with the hilt of his sword. As you feel your consciousness slipping away you hear the Man say, "Please understand, I hold you in the highest respect."'; } this.gameover = 1; return "


"+endmsg; } });

Inigo is a complicated character. His father, Domingo, was a talented swordsmith with hipster tendencies. When the six-fingered man commissioned a blade then refused to pay for it, Domingo refused to hand it over, saying that it would belong to Inigo. Angered by this, the six-fingered man killed Domingo. Inigo, eleven years old, attempted to avenge his father but was easily disarmed by the six-fingered man. To teach him a lesson, the six-fingered man scarred Inigo's face and let him keep the sword. Inigo thus devoted his life to swordplay in order to avenge his father. After completing his training, he falls into a depression because he is unable to find his father's killer. He becomes a drunkard, working with common criminals to pay the bills, which is how he winds up at the Cliffs of Insanity where we find him.

It's a great backstory for a rogue character, but, beyond the fact that Inigo wields a sword, it has no bearing on the Inigo object in the game because it doesn't yield any properties that would be of use in the limited scenario presented here. This is how programming is nominal: you can ignore the truths about something that you don't need to model.

The interesting thing is that for the purposes of code re-use, you're at the same time trying to make classes that have all the properties whose values will vary from object to object. If there was a Westley object as well as an Inigo object, we could build a ‘human being’ class and give them all the properties and methods they'll need. That way, if you decided the NPCs needed to have more depth, you could spin off other instances of the ‘human being’ class, populate them, and have them do what you want.

But it's uniqueness within these categories that differentiates Inigo from Westley from Fezzik. This makes the exercise seem universal, but these categories exist because they are useful for solving the problem at hand. If this game spanned Inigo's entire life, it would be impossibly complex, but still limited to a specific functional scope, albeit one far larger than the one used here.

So. We can't escape nominalism. But doesn't that suggest that with a powerful enough computer and infinite programming time, you could create a scenario so general that all classes would have to be universal?

Maybe that's what conceptualists mean by ‘The Mind of God’.

Alright, here's Inigo. Have fun.

Inigo Montoya Simulator 0.0.42

Welcome to Inigo Simulator. This short simple game is based on the swordfight scene at the Cliffs of Insanity from the film, The Princess Bride. It is meant for illustrative purposes only and is in no way a complete text adventure game.

If you need assistance at any point, type 'help' for hints. To show a list of commands, type 'commands'.

Type 'start' to start the game.