don-tnowe / godot-wyvernbox-inventory

Action RPG-focused inventory system for Godot 3 and 4
MIT License
97 stars 4 forks source link

Level Scaling Experience Also Combat Integration And Attribute Statistics #23

Closed WithinAmnesia closed 11 months ago

WithinAmnesia commented 11 months ago

How can experience scaling based on character level be implemented into a Wyvern ARPG? Can Level Scaling Experience be a new Wyvern feature please? Also what plans and timelines are there for integrating Wyvern with an example of attributes, statistics, inventory, damage types, and resistance and combat with abilities and ability trees? You already have ~half of Diablo / WoW / PoE you should add some combat and attribute and statics combat system and have melee attacks as abilities / spells / powers like press X to swing like in Zelda / Flare and use standard WASD keys to move like most ARPGs and WoW and Zelda on Gamepad / PC.

This is from a lot of work with Flare. Here is an example experience table used in the Flare game engine to scale experience based on level of the player verse the encounters: xp_table.txt The experience scaling amount and level range can be adjusted in Flare with a table in the engine files like: agabal_experience_scaling_table(0-15).txt

Flare development documentation: Flare https://github.com/flareteam/flare-game/discussions/921 "Add XP scaling tables for scaling enemy reward XP based on enemy level." https://github.com/flareteam/flare-game/discussions/890 https://github.com/flareteam/flare-engine/wiki/Attribute-Reference#xpscaling

Bonus Flare Attribute and Statistic related engine file examples: combat.txt damage_types.txt elements.txt font_colors.txt hero_layers.txt loot.txt misc.txt primary_stats.txt resolutions.txt stats.txt qualities.txt sets.txt step_sounds.txt types.txt powers.txt power_tree.txt default.txt

Important Depth Feature: Can Wyvern support arbitrary resources like Health (Vigour) Spirit and Mana? Also if so with % values too like -12.345% [Arbitrary resource like 'Spirit' regeneration]? This is to support deep inventory and item systems where +1 and whole numbers from 1 to 100 are not enough with say 16+ equipment slots and 4+ equipment set types and 100+ item levels etc. There needs to be +/-XXX.XXX% support like +3.333% Mana regeneration or -15.125% Vigour Stealing or +123.456% Spirit etc. so as to expand the depth of inventory and overall deep game / adventure progression and support many play styles: (Tank Damage Support Healing etc. Clothing Light Medium Heavy armour weight classes etc 300+ item levels) with small intuitive values but great depth. As with like 123.456 is more intuitive than 12,456.000 for example. So to fit big values and deep ratios in small intuitive number formats there needs to be depth in the number systems to support for example +/-0123.456% in [X arbitrary defined resource]. Here is an example that big +/-0123.456% in [X arbitrary defined resource and attribute / statistic] system working with Flare engine files: resource_stats.txt The format is extra bolded in odd spots lol I am not sure why but probably github-ism acting up lol. Well its better to aim for progress not perfection. So bit by bit things will get better.

don-tnowe commented 11 months ago

Hello again!

I'm afraid experience/leveling is beyond the scope of both Wyvernshield and Wyvernbox. On it's own, it's simple enough to implement (on levelup apply a scaled StatModification, xp itself is completely separate) so I will only include it into the combined example.

A character controller and ability -activation- system is also beyond scope, but an example usage is in Wyvernshield's example. Skilltrees too, but actually already implemented in this addon!

A health/mana/energy/stamina/ward/rage/heal juice/whatever system isn't a thing here, but you can store them as variables and check stats while changing them. Wyvernshield's stats already support percentages, multipliers and increments as floating-point numbers, not integers, so you can already use it! My take, though: tiny stat increments like "+0.093% Mana Regen" don't add much depth to any game :/

What's definitely out is config with text files - it's user-unfriendly and I don't understand at least half of the numbers in your txt files. This is Godot, use custom Resources.

For future, I'd appreciate if separate topics were files as separate issues! It would make discussion less cluttered and give me a clearer to-do list!

WithinAmnesia commented 11 months ago

Ya thank you for doing your best and reading lots and lots. I put all the big features missing from Flare in the post in one spot but its a bit messy ya lol. Your idea is really good ya it should be separate topics for each feature. The text files are like different format for sure but they are a rough starting point / concept of what could be added to make Wyvern super great! Ya the +/-000.000% format by it self kinda boring but its useful for helping implement simple fractions and help round numbers like 66.667 (2/3) or like 0.125 (1/8). So its kinda boring but its needed for simple fractions but like random ones like 327.639 like feels bad lolol. But like 0.125% is 1/8th and it makes sense to have the feature just in case for big depth of progression.

Here's a little decimalization of simple fractions on a little list / chart / table lol: -1 / ∞ / undefined (1/0) 1.000 (1/1) 0.500 (1/2) 0.333 (1/3) 0.250 (1/4) 0.200 (1/5) 0.167 (1/6) 0.143 (1/7) 0.125 (1/8) 0.111 (1/9) 0.100 (1/10) 0.091 (1/11) 0.083 (1/12) 0.077 (1/13) 0.071 (1/14) 0.067 (1/15) 0.063 (1/16) 0.059 (1/17) 0.056 (1/18) 0.053 (1/19) 0.050 (1/20) 0.048 (1/21) 0.046 (1/22) 0.044 (1/23) 0.042 (1/24) 0.040 (1/25) 0.039 (1/26) 0.037 (1/27) 0.036 (1/28) 0.035 (1/29) 0.033 (1/30) 0.032 (1/31) 0.031 (1/32) 0.030 (1/33) 0.029 (1/34) 0.029 (1/35) (rounds up) That's pretty good for three decimal places it holds ~34 to ~36 (~35) fraction values even with rounding up.

Features and timeline for combined example?

don-tnowe commented 11 months ago

Features and timeline: ¯_(ツ)_/¯

I've got university and work and I'm not working on personal projects, so right now I can't say for certain.