Je comprends le schéma ECS et ce qu'il vise à résoudre. Cependant, j'ai du mal à trouver le meilleur moyen d'identifier les composants. Par exemple, je travaille sur un jeu où vous avez un vaisseau et vous pouvez attaquer d'autres joueurs/npc et collecter des ressources.Plusieurs propriétés dans le même composant ECS
Ai-je besoin d'un composant pour chaque propriété ou puis-je regrouper propriétés non apparentées dans le même composant?
Par exemple, avec une composante par propriété, il ressemblerait à ceci:
// Components
Position {
int x, y;
}
Velocity {
int speed;
double direction;
}
Sprite {
Image[] images;
}
Health {
int health;
}
Name {
String name;
}
Resource {
// Tag for resources.
}
// Entities
MapEntity {
Position position;
Sprite sprite;
}
ResourceEntity {
Position position;
Sprite sprite;
Resource resource;
}
ShipEntity {
Position position;
Sprite sprite;
Velocity velocity;
Health health;
Name name;
}
Avec plusieurs composants par propriété, il ressemblerait à ceci:
// Components
MapObject {
int x, y; // Position
Image[] images; // Sprite
}
Resource {
// Tag for resources
}
Velocity { // separated component for static map entities
int speed;
double direction;
}
Ship {
int health
String name;
}
// Entities
MapEntity {
MapObject mapObject;
}
ResourceEntity {
MapObject mapObject;
Resource resource;
}
Ship {
MapObject mapObject;
Velocity velocity;
Ship ship;
}
Je ne pense pas que cela fera une différence, mais j'utilise le framework Ashley de LibGDX.