BackgroundWe should be able to effectively leverage two seemlingy disparate techniques to do simple, safe simulation in our virtual worlds: 2. Scala Traits Ontologies have been recognized as having applications to both the study of games, and to build games TraitsSolid - Any solid object Fluid - Any substance which conforms to its container. Liquid extends Fluid - Any liquid object Gas extends Fluid - Any gaseous object Powder extends Fluid with - Any powdery substance PureMaterial - Any chunk of a material, which when divided simply becomes two pieces of that material Flamable - can be burned Meltable - can be melted MadeOfWood extends Flamable MadeOfMetal extends Meltable MadeOfGlass extends Meltable OrdinaryObject - Any object which can be picked up, put down, thrown, poked with, has a finite size and weight, strength, etc. Round extends OrdinaryObject - Rollable Stackable extends OrdinaryObject - Has two flat opposing sides so that you can stack it, or place something on top of it. Container extends OrdinaryObject - can put things in it. Has internal volume, opening size. WaterTightContainer extends Container - Can hold liquids, and can be drunk from when containing liquids. AirTightContainer extends WaterTightContainer - Can hold gases ClearContainer extends Container - An inspection of the container also returns the contents, without opening it. LikelyLabeled extends OrdinaryObject - probably has a label CanSwing extends OrdinaryObject - A long object which can be swung at something. CanStabWith extends OrdinaryObject - A sharp object you can stab with CanCutWith extends OrdinaryObject - A sharp object you can cut with Tieable extends OrdinaryObject - Something which can be tied to other objects. Place - a location that one can walk into and out of, leave items, etc. Character - Any living part of the game. Player extends Character - The avatar of a user NPC extends Character - A non player character Attackable extends Character - Any character which can be attacked. Vocal extends Character - Able to talk to or hold a conversation Object heirarchySword => CanStabWith, CanSwing, CanCutWith, MadeOfMetal Shield => MadeOfMetal Staff => CanSwing, MadeOfWood Knife => CanCutWith, CanStabWith, MadeOfMetal Bottle => AirTightContainer, ClearContainer, LikelyLabeled, MadeOfGlass Sack => Container Room => Place Rope => CanTie, Flamable Orc => Attackable DrinkingGlass => WaterTightContainer, MadeOfGlass Horse => NPC Broom => Swingable, MadeOfWood CrystalBall => Round, MadeOfGlass |