Design Principles Flashcards
How many levels of functionality are there? Which ones are these?
There are 4. From closest-to-hardware to furthest-from-hardware: - Driver - Mudlib - World Definition - Instantiation
Describe the Driver functionality.
- Most basic part of the virtual world software
- Consists of Operating Systems Interfaces
- Also of Interpreter Components
- Makes two foundation concepts available to higher levels (objects and players)
- Handle Load Balancing, instancing, phasing, …
Describe the Mudlib functionality.
- Handles the physics of the virtual world
- Term not used at today’s MMOs
- Handles some higher, game-specific concepts (magic system, combat system and economic system)
Describe the world definition functionality.
- This (plus driver and mudlib) is what’s needed to start running the game.
- Known as world model or static database.
- Fully descriptive of the virtual world
- Defines new functionality consequent on the physics
- Acts as a template for creating instantiations of the virtual world.
- Implicitly describes all game states that can occur
Describe the instantiation functionality.
- It’s each running instance of a virtual world.
- Data values that make worlds different between each other.
- Only real-time component of a virtual world
- Most of it is to do with player activity.
Define the three levels of Data Definition.
- Hard-coded (C, C++, Java,…) -> Game Engine
- Soft-coded (scripting language interpreted by the hard code)
- Explicit data (values that can’t be executed)
What are the codebase differences between Virtual Worlds?
Mushes and Moos -> Game engine is just the Driver;
LPMUDS -> Driver + Mudlib
DikuMUDS -> Driver + Mudlib + World Definition
What are the advantages of the DIKUMUD and MUSH/MOO approaches?
DIKUMUD:
- Ease to use
- Run-time efficiency
- Fewer bugs
MUSH/MOO:
- Flexibility
- Expressiveness
- Variety
What’s the difference between virtual worlds and web pages in their client/server connection?
Virtual Worlds are asynchronous:
- Client sends request to server, server updates its database and server sends a request to client, then client updates the screen.
Describe how the data flow works.
- User types something
- Client packages it and sends it to server
- Server receives it and figures what it means
- Server processes it as a command.
- Server packages results & sends to clients
- Client receives the results as instructions
- Client processes its instructions
- User decides what to do next
Define inheritance.
Offspring objects get all their parents characteristics.
They can also have new ones or override these.
Objects at the top are more abstract.
Define the 2 types of inheritance.
Single: Form of a tree; Runs fast; Fairly Simple.
Multiple: Form of directed graph; Doesn’t run fast; Very expensive.
How are maps usually defined?
Areas concern content.
Regions concern geography (sometimes ownership).
Zones are collections of 1+ regions.
How do Virtual World stop players from walking off the edge of the world?
- Wrap-around
- Physical boundary
- Emotional boundary
- Big Stick (swimming fatigue).
- Notice
- Invisible Wall
- No boundary
Describe the level of detail of today’s MMOs. Explain why this happens.
They are superficial. Reality works at a greater level of detail than MMOs.
Graphics cover for lack of immersiveness; players are expecting things as they are used to them and breaking expectation breaks immersion.
How is time defined in Virtual Worlds?
Most of the times it’s linearly compressed.
It’s also the fashion in mmos to have inworld events that coincide with real-world events.
Night and day are usually cosmetic.
Define a quest.
A quest is a stand-alone piece of goal-oriented content:
– If doing it is required to win the game, it’s a story quest
– If not, it’s a side quest