Seeking advice for RPG game design.

Suppose you’re developing an RPG game where players have a series of skills attributed to their characters. Let’s assume these skills can be described using a unified data structure. As players progress in the game, they continuously acquire new skills. How should this structure be designed for optimal results? If each skill is a ComponentData, should these data be attached to the player’s entity as a list?

Additionally, is using an object pool reasonable within an ECS system? For example, if you’re dealing with player bullets or effects, could an object pool be employed to reduce the overhead caused by frequent initialization?

I suggest prototyping a very small game in ECS that does not involve any sort of complex data structure or skill system to get familiar with how ECS works first. What you are suggesting doesn’t make any sense, but you wouldn’t know that until using the API first.

Only for managed objects. Otherwise, there’s generally better options.

I’d suggest creating separate entities for skills because it’s easier to trigger the skills when they are separate entities. You can just have a tag component like ActivateSkill that you can add to the skill’s entity and have a system that reacts to existence of that component.

You should analyze your skills to find common patterns in their data and/or logic. As for my experience, it’s quite rare to have singular entity due to special data/logic. That means most skills and status effects can be generalized so a system can process multiple entities at once.