- Home /
Theory for individual skill based levelling system
Hello,
I am developing an RPG in which I would like to ask for some advice. I have decided to implement a skill-based system similar to that of Runescape's, instead of the bland old one level governs all. My question is mainly to prevent myself hitting a major bump in the road at a later date. In my previous prototype, I used a scriptable object in order to create the skills individually in the editor, so I could name them and manage sprites for gui etc. easily enough for my non-programming-savvy friends to help. I then grouped them inside a class via a public array. Finally I went on to create a public enum containing the names of the skills each pointing to an integer index in the array. This method relies on me placing the skills into the correct indexed slot of the array via the editor. I have a bad feeling about this approach, as it screams unreliable, or even that there's a better way to be storing these skills. I would rather not store them each under individual variables, as this seems time wasting, as well as I think relying on indexes could get tedious should I add more skills later on. I would of course then go on to assume that creating a search function to use whenever I would assign exp to the skill upon performing a certain action would be the best method, however that introduces comparing strings or again, relying on indexes, and is it really necessary to search for that skill when performing repetitive actions? Such as killing an enemy to grant some kind of combat exp? As I write this question it actually seems a kind of silly problem as I feel I am completely missing a simple design structure. Any words of advice are appreciated though!
Cheers, Gavin
Your answer
Follow this Question
Related Questions
Design pattern: Loading custom data into prefab objects 0 Answers
Store card data 1 Answer
Where can I get some pathfinding reference for my AI? 1 Answer
Are ScriptableObjects good for non-visualised models? 2 Answers
Static Initialization 1 Answer