-
Notifications
You must be signed in to change notification settings - Fork 11
Mob Types
###Overview All of the enemy type parameters are defined in src\content\mobs\mob_types.json. These mob types are referred to by mob spawn tables, which are in turn used by mob spawners in the map layout. The mob type defines all of the tune-able parameters of a mob's abilities, perception of the world, and constraints on their behavior. Animation and other visible properties are all configured inside the Unity editor.
###Mob Type Format
{
"mob_types_set": [
{
"mob_type_name": "character_tread_gray", // Internal name of the mob, use for lookup
"label":"TreadBot v0", // UI display name of the mob
"max_health": 100, // Maximum health of the mob
"max_energy": 100, // Maximum energy mob can hold
"speed": 1, // Movement speed of the mob (wu/s)
"vision_cone": // Vision cone parameters
{
"distance":5, // Vision cone range (wu)
"angle":90 // Vision cone angle (degrees)
},
"perception": // Parameters for search and target selection
{
// Number of turns to wait before giving up on search
// after losing sight of the target
"orphan_turn_timeout":1,
// [The most salient of our perception props becomes out target
// These weights affect the salience scoring calculation]
// Weight given to target distance in salience score
"saliance_distance_weight":1.0,
// Weight given to target energy in salience score
"saliance_energy_weight":1.0,
// Weight given to target health in salience score
"saliance_health_weight":1.0,
// Weight given to prop status in salience score
"saliance_status_weight":1.0
},
"abilities": // AI ability parameters
{
// Amount of energy that can be drained from an energy tank per turn
"energy_tank_drain_per_turn":50
}
},
...
]
}
###Mob Spawn Table Format
{
"mob_spawn_table_set": [
{
// Name references in mob spawners in map
"mob_spawn_table_name": "character_tread",
// Weighted list of mob types
// Weights are all summed and then normalized on import
"entries": [
{
// matches mob type name in mob type table
"mob_type_name": "character_tread_gray",
"weight": 2 // character_tread_gray is spawned 2/3 of the time
},
{
"mob_type_name": "character_tread_green",
"weight": 1 // character_tread_green is spawned 1/3 of the time
},
...
]
},
...
}
Server Project Organization - How the files in the server project are arranged
Mob Types - Format for the mob type definitions
Room Templates - How the room templates are validated and stored in the DB
Navigation - How AI navigation is computed on the server
AI Decision Making - How AIs make decisions in response to players moves
Request Processors - How incoming JSON requests are processed
Database Query Layer - How database queries are structured and cached
Standalone And Embedded Web Server - How the stand alone and client embedded web server are structured
ASPX Web Service - How the IIS hosted web server is structured
Client Project Organization - How the files in the client project are arranged
UI System - Wrapper around Unity immediate mode UI and UI event handling
Asynchronous Request System - How JSON requests are sent to the web server
Game Event System - How the game state changes as a result of player actions
AI Path Finding and Steering - How the AI compute a path and drive toward path waypoints
IRC and Push Notifications - How chat and server push notifications are routed through IRC