-
Notifications
You must be signed in to change notification settings - Fork 1
Components
First see Entity Component System and Entities.
A component contains a piece of functionality that can be used across entities. Some examples include:
-
InputComponent
: Creates user input events on the entity, to which other components can react. -
RenderComponent
: Renders the entity to the screen. -
CombatComponent
: Gives health and attack stats to an entity. -
AITaskComponent
: Runs AI tasks on an NPC such as enemies. -
TerrainComponent
: Renders the map terrain on the screen.
All components should extend from the base Component class.
A component's lifecycle is the nearly same as the entity to which it is attached (See Entity Lifecycle). When an entity is created, updated, or disposed, then create()
, update()
, and dispose()
are called on each component attached to that entity.
What should be put in a component's constructor, and what should go in the create()
function?
The constructor will be called when you create the component to add it to an entity. This can be before all components have been added, and before the entity is added to the game world. create()
does not get called until the entity is added to the world.
Basically: Only setting constructor parameters and some basic initialisation should be done in the constructor. Everything else, including calls to getComponent()
, should wait until the create()
call. If the order that you add components to an entity matters, you've done it wrong.
When an entity is disabled, its components are not updated. However, components can be independently enabled/disabled as well. By disabling one or more components while keeping the entity enabled, we can modify that entity's behaviour during gameplay.
- Uniform Pixel Grid Resolution
- Storyline
- Instruction
- NPC info
- NPC Communication Script
- Inventory-System-and-Consumables
- Storyline User Test
- Traitor Clues
- Game Characters
- Player Profile User Test
- Player Eviction Menu Sprint1: User survey (Team 7)
- Player Eviction Menu Sprint2: User survey (Team 7)
- Sprint3 - Win/lose Condition: User survey (Team 7)
- Sprint4 - Polishing-tasks: User survey (Team 7)
- Transition Animation/Special Effects/Sound Effects: Feature Overviews
- Transition Animation and Effects: Design Process & Guideline
- Sprint 4 User Testing
- Transition Animation & Effect: Code Guideline-Sprint4
- Sound effect when players complete npc tasks and hover over npc cards
- Fixing the clue bug
- Music Test
- Player Eviction Menu: Design Process & Guideline
- Player Eviction Menu (Feature Overviews)
- Player Eviction Menu: Code Guideline - Sprint1
- Sprint 1 User Testing
- Detailed Eviction Card: Design Process & Guideline
- Detailed Eviction Card: Feature Overviews
- Sprint 2 User Testing
- Player Eviction Menu: Code Guideline - Sprint2
- Sprint 2 Inventory System and Consumables Items User Testing
- Sprint 2 Inventory System and Consumables Items Functionality
- NPC interaction testing plan sprint3
- NPC interaction testing results sprint3
- NPC Dialogue Scripts
- Code Guideline
- Win/lose Condition: Design Process & Guideline
- Win/lose Condition: Feature Overviews
- Sprint 3 User Testing
- Win/lose condition: Code Guideline - Sprint3
- Enemy List
- User Testing 1: Enemy Image Filter
- User Testing 2: Enemy Animation and AI
- User Testing 3: Basic Attack