pufmat / skillsmod

A Minecraft mod that adds a fully configurable skill system to the game.
Other
36 stars 10 forks source link

Design Concerns/Feature Requests #20

Open reuy opened 1 year ago

reuy commented 1 year ago

My friend and I looked at the API for our own project. This looks great and is much more configurable than Reskillable, but we have a few suggestions or use cases we see missing here:

pufmat commented 1 year ago

Thanks for a lot of great features. I need some time to think about the best way to implement them.

pufmat commented 1 year ago

Here are my thought on some features.

The tree seems bidirectional, with no way to specify one-way relationships. While this is pretty neat, it can also lead to players traversing some trees in the wrong direction. I recommend adding an optional Json field to every skill pair, specifying if the two skills' relationship is first-to-second, second-to-first, or bidirectional.

I think two-way connections are easier for players. Adding one-way connections would require them to be visually different from two-way connections. I have also come up with an alternative solution to add an option that would make all connections in a category either one-way or two-way. While a visual difference would not be required, skills must be placed in a such way to clearly represent their order.

There seems to be no ability to specify exclusive perks in a branching point on the tree, save for the at roots themselves. This precludes situations where you can force a player to specialize at a certain point in their progression. However, if we were able to dynamically specify more requirements, we could implement this ourselves - for instance, via mutually exclusive gamestages.

I think that player should somehow be informed what skills/paths will become locked after certain skill is unlocked. However, I still haven't come up a way to visually indicate this.

Reskillable worked by allowing players to buy skill points in a Category using XP. There is no way to implement this as there is no button function to allow players to do this. My own use case requires this; while it's cool that we can specify the ways each Category levels, some, including me, would like to have a system where players get to choose what Category they level by playing the game the way they want, rather than playing it the way that Category demands.

Due to current user interface design, all categories must either have their own experience or share global experience. The problem is that someone might want to create categories that are available only for specific class/role or something. In that case it would be impossible to have experience configured differently for each class/role. This is because every category would use global experience. Ideally it should be possible to share experience between certain categories only. I have no idea yet how to represent this in both config and user interface.

It is not that I don't want to add these features. I really want to, but they come with their own problems and concerns which have to be resolved before implementing these features.