As a thought exercise, here's what I think the functional spec for a Golem is, as envisioned by a software developer:
A golem has the following capabilities and features:
- basic voice recognition (ex. bring this cage to the study and set it on the table)
- basic object recognition (ex. it knows what a door is, can differentiate between wooden chest and iron box when you give it a command)
- collision avoidance (by default the golem avoids walls and stepping on things. Othewise you'd have a lot of broken stuff and it would walk through your walls to take the shortest path)
- environmental self preservation (the golem will not walk into lava or off a cliff and if pushed will endeavor to restore itself to the ledge it was on)
- defensive self preservation (if attacked, it will dodge or block a blow so as to minimize damage to itself)
- locational memory (the golem knows the layout of all the rooms it has been in, and knows where all the objects are so it can choose the most efficient route to any location when directed)
- common object manipulation (the golem knows how to open/close a door and will do so in order to pass through the door, it does not know how to use a crossbow)
- naming memory (if the owner starts naming persons and objects, the golem will remember the name so the owner can reference the person or object by name.)
- simple combat capability(the golem can be ordered to fight or activated in threat mode and will swing a weapon or punch, the golems speed and strength compensate for any shortcomings in prowess)
- intruder classsification (the owner can designate what constitutes an intruder and what does not (like the owner's family) so it knows when to enter Threat mode from a security mode.)
- sensory capability (the golem can hear and see in 360 degrees (unless the model has specific eyes/ears) and uses this information to follow its directives
The golem has a number of modes. By default the golem is in Rest mode, not moving. It will take no action until the owner has given it a command.
For a golem to be dangerous and able to fight, it must be given a direct command to fight or put into one of the 2 security modes, Guard or Patrol.
In Guard mode, the golem stands motionless (or whatever pose the owner put it into before telling it to guard). When an intruder enters the room, the golem will enter Threat mode. The context of the command given to guard will impact the extent the golem will remain in Threat mode. If told:
"Guard this Room" the golem will remain in Threat mode until the intruder has left or is dead.
"Guard this box" the golem will remain in Threat mode until the intruder is dead or has left the vicinity of the box. This means the golem will follow the box, so long as it can sense it. it will enter Patrol mode if it loses sensory data on the box, in order to regain control of the box.
In Patrol mode, the golem will walk the perimeter of the defined environment. if it detects an Intruder (as defined by the owner, however nebulously), it will enter Threat mode. If it loses sensory contact with the intruder, it will resume Patrol mode.
Threat mode can only be reached when the golem is in one of the 2 security modes Patrol or Guard or by a direct command to attack from the owner. This is a safety feature for the owner. The owner can easily cancel Threat mode by telling the golem to Stop or Rest which will put it into Rest mode.
In Threat mode, the golem becomes dangerous. It will punch or slash, bludgeon or thrust with a weapon at the target. From the 2 security modes, the target is the entity identified as the Intruder, otherwise it is whomever the owner declared or pointed at.
The golem will fight until it is dead, the target is dead or the target escapes its senses.
The golem will effiectively pursue an enemy to within the area denoted by the owner as a function of atttempting to close to melee distance with the target.
The golem will always take the shortest path to the target, going around any obstacles. Thus it cannot be lured into an obvious pit between it and the target.
Please take care in following the assembly instructions. Always keep your golem in working order and follow the maintenance instructions.
We hope you enjoy your golem and may you have centuries of problem free service.
From "Golems for Dummies, 13th century edition"