In our Thang Component System architecture, the Systems fulfill three roles.
- Systems are unto Levels as Components are unto Thangs. For example, if I want my Level to have gravity, I add the
Movement
System and configure its gravity to 9.81 m/s^2. - They also serve as namespaces for the Components. As an example, the
Physics
System doesn't actually do anything on its own yet, but it was a good place to putphysics.Physical
Component, which controls the size, shape, rotation, and position of all physical Thangs. - They can coordinate behavior across those Components. For example, the
Collision
System will look at all the Thangs which have thecollides
property set and update its Box2D-based collision simulation once per frame, instead of each Thang with aCollides
Component trying to figure out its own collision interactions.
You can also live-edit the code for any System directly within the Systems tab of the Level editor, just like in the Component example. The same caveat applies: because we don't yet safely sandbox System code and haven't quite finished those permissions, you can't actually edit System yet as a non-admin. So to edit them and add new ones, [install the local server](Developer Environment) and create a local account there, which will automatically be an admin account. Then [send us](Developer Organization) the System edits for review and addition to the live site.
To see all the entity data for, say, the Movement
System, I can just go to http://localhost:3000/db/level_system/movement.
- Home
- Archmage Home
- Artisan Home
- Adventurer Home
- Scribe Home
- Diplomat Home
- Ambassador Home
- Archmage General
- Mission statement
- Coco Models
- Coding Guidelines
- Cookbook
- File system
- JSON Schema
- Technical overview
- Testing
- Third party software and services
- Artisan General
- Building A Level
- Coding Guidelines for Artisans
- Editing Thang Components
- Important Artisan Concepts
- Keyboard Shortcuts
- Artisan How-To Index
- Adventurer General
- Scribe General
- Diplomat General
- i18n
- i18n Glossary nb
- i18n Glossary ru
- i18n Glossary es-419
- Ambassador General
- Dev Setup
- Dev Setup: Linux
- Dev Setup: Windows
- Dev Setup: Mac
- Dev Setup: Vagrant
- Dev Setup: Issues
- Game Engine
- Component
- Multiplayer
- Surface
- System
- Thang
- Thang Component System
- Tome
- World
- Artisan Tabs
- Components And Systems
- Scripts
- Settings
- Thangs
- Other
- Aether
- Client models
- Developer organization
- Educational Standards
- Events, subscriptions, shortcuts
- Chat Room
- Chat Room Rules
- Permissions
- Project Ideas List
- Treema
- Versioning
- Views
CodeCombat | Home | Blog | Forum | Teachers | Legal | Contribute