Long before the announcement of DFTU I had an idea of skill system, and not long before announcement I finally decided to try it. It's an experiment and probably won't see much use even when I'll finish it, but I simply can't bear it being only an idea in my head anymore. And it was very good surprise, that the game I wanted to test my ideas in the most, got new life in the engine that I've chosen for my experiment. So thank you for making it possible.
What I've made so far:
- Attributes - you check against them whenever you're doing any action. Each time it checks maximum value and current tension, depending on them it returns how much of the attempted action is successful and how much failed, success raises tension and is used to power action, fail is used to make undesirable or just random results from the action. Depending on tension attribute slowly raises or atrophies over time, and if tension raises over the maximum value, it damages attribute. Both damage and atrophy are stored, so it's faster to remember/heal, than it's to learn new. Tension is quickly decreasing, but there's also accumulation, which raises and decreases slowly, and acts like a minimum value for tension, so you cant just catch your breath and be fully restored after hard work.
- Binding menu - sort of spellmaking in TES 1-4, but also for any other action. It lets you bind action to the hotkey and set its power/range/etc.
- Some sample actions - not much, just some basic movement, fire ball, fire touch and levitation.
- More actions - more targets for spells (on self, spray, around, aura, like those you can see in TES games), climbing, parkour, marks for distant spells like teleportation, summoning and just channeling of spells, whatever else I'll feel like doing.
- Effects - some system to deal with various continuous spell effects and maybe even AI (since effects like fear are closely tied with AI).
- Interaction with others - make attributes responsible for character's temper and let them work like other actions: eg. your character interacts with some introvert NPC, you choose something in dialogue that depends on attributes of introvert, first it checks yours, then result is checked against attributes of NPC and if both are successful, NPC likes you more, if you failed NPC thinks that you're insincere, if NPC failed, it triggers response depending on what exactly was attempted.
I'll post the code if someone's interested, but first I'll need to clean it from embarrassing things I've made while learned C# and Unity.