-
Notifications
You must be signed in to change notification settings - Fork 1
Animal Overview
The animal system in the game serves as a core gameplay element, providing players with engaging challenges through diverse enemy encounters. Animals in the game are designed to act as hostile entities that challenge the player through combat. Each animal type has unique movement patterns, attack styles, and animations, all of which contribute to the player’s strategic decisions during encounters. By differentiating animals through configuration, the system allows for a wide variety of enemies that require different approaches to overcome.
All animals are created using the NPCFactory
class, which provides a create()
method to instantiate animals based on their specifications. The configuration for each animal, including its tasks, animations, and combat stats, is defined in a JSON file (NPCs.json
). The factory uses these configurations to build animals with various components that dictate their behaviour and abilities.
The behaviour and characteristics of each animal are defined in the NPCs.json
file. The configuration of this file is covered in the NPC Configuration page.
The following components are used in animal creation:
-
AITaskComponent
: -
AnimationRenderComponent
: -
ColliderComponent
: -
CombatStatsComponent
: -
DirectionalNPCComponent
: -
HitboxComponent
: -
NameComponent
: -
NPCAnimationController
: -
NPCConfigComponent
: -
NPCDeathHandler
: -
NPCHealthBarComponent
: -
PhysicsComponent
: -
PhysicsMovementComponent
:
The following components are added to NPC's if defined in the configuration file:
-
MeleeAttackComponent
: -
RangedAttackComponent
: -
AOEAttackComponent
:
If an NPC is defined to be a boss, the following components are added:
-
BossHealthDialogueComponent
: -
DialogComponent
:
- AI System: Animals use the AI Task system, where tasks are prioritised and executed based on their configuration. This allows animals to react dynamically to the player and environment.
- Physics and Interaction: Managed by physics components, animals interact with the game world and player through collisions and movement dynamics.
- Animation and Rendering: The AnimationRenderComponent synchronises animations with the animal’s actions, ensuring great visual representation of behaviour.
Design Choices
Utilities
Animals
Menus/screens
Character
- Character Animations
- Character's Inventory On Display
- Character's Inventory System
- Character's HealthBar
- Character's Interaction with Items
- Character achievements
- Saving Character
- Player-(and-other-NPC)-invincibility-frames
- Player Factory
- Scoring System
- Test Plan for Inventory System
- Test Plan for Player's Interaction with Items
- Test Plan for Player's Inventory Display
- Test Plan for Saving Character State
- Test Plan for Scoring System
Map
Weapon
- Weapon Overview
- Weapon Types
- Weapon Structure
- Weapon Stats Display
- Testing Plan for Weapon Factory
- Testing Plan for Firing Controller Component
- Testing Plan for Position Tracker Component
- Testing Plan for Weapon Animation Controller component
- Testing Plan for Concrete Melee Weapon class
- Testing Plan for Concrete Ranged Weapon class