flareteam / flare-engine

Free/Libre Action Roleplaying Engine (engine only)
http://flarerpg.org/
GNU General Public License v3.0
1.11k stars 187 forks source link

Horizontal scroll bar system for (at least) skill tree menu; hopefully scalable in arbitrary menu width #1808

Open WithinAmnesia opened 2 years ago

WithinAmnesia commented 2 years ago

"...So if the vertical scrolling is implemented in the skill tree, is horizontal scrolling on the lesser complex side of difficulty to implement? Is horizontal scrolling a switch of an axis or is there more to it than that (my guess would be yes yet I'm not sure how much more)?

dorkster 7 hours ago Maintainer

I don't think it will be too complex:

- Support creating a horizontal scrollbar in WidgetScrollBar
- Support defining the width of WidgetScrollBox contents in addition to height
- Add a horizontal WidgetScrollBar to WidgetScrollBox
- Ensure that gamepad navigation works. Left/Right is currently used to "exit" the WidgetScrollBox contents an move to a neighboring widget. This behavior would need to only happen at the left/right edges when navigating the contents."

-From: https://github.com/flareteam/flare-game/discussions/888#discussioncomment-2026198

dorkster commented 2 years ago

There's a problem with this in that the positions of the power icons are currently done relative to the top-left of the Powers menu. If we added a scrollbox, we'd need to either:

  1. Add a flag to power tree definitions that signifies if the coordinates are relative to the scrollbox or not
  2. Break the spec and require everyone to update their power tree definitions

2 is out of the question. 1 isn't great either IMO, but I think that would be the only way to maintain compatibility.

However, I made a fix to the tab UI so that we can now have unlimited tabs. To me, this solves the root problem of not having enough space to put powers.

WithinAmnesia commented 2 years ago

@dorkster It is no PoE skilldrassil but I think that I can make infinite tabs work.

I have this thing to solve / game-ify / wrestle / reckon : https://www.deviantart.com/withinamnesia/art/The-Jewelled-Eye-of-AGABAL-Jeweyel-915001367 Each colour represents a type of power (e.g. light is yellow, dark is purple etc.) and the placement of each other is relative to how they are related.

I am hoping to have the player find what kind of power they like and use it within ~5 play style archetypes: Wizard (Caster), Wanderer (Rogue), Warder (Cleric), Warrior (Fighter), Worlder (Hybrid / Scion / Jack of all trades).

I also hope to have every power type be able to 'do everything' role wise (damage, range, aoe, cc, melee, heal, buff, debuff etc.) but have them all have different flavours / ways of doing them. Kind of like how world power militaries around the world can do relative all of the same things yet have their own unique quirks and distinctions.

Also I have three types of energy(?) Physical (Health), Spiritual (Spirit), Magical (Mana).

So I'm trying to find a way to basically give a sort of wide ranging ~'lego kit' within an intuitive progression system / talent specialization tree to the player; for ~8+1 power types x 2+1 energy types x ~4+1 play style archetypes.

So no matter how I do this I need a lot of space. This should give that required space. So thank you very much :-).

WithinAmnesia commented 2 years ago

[Extra] Game design thoughts:

I am not sure how to exactly handle opposite powers / what to do with for example light verses dark; there seems to be an general expectation that these things are like oil and water. Maybe I will have to muck with resistances or passives or something like A ability requires B passive talent that raises X resistance but lowers Y resistance. Like if a person acclimatizes to say hot weather and then jumps into an ice cold body of water; that kind of 'shock' / oil and water effect.

Either way hopefully if infinite tabs can work than even if I go like 15 powers x 3 energies x 5 play styles = 225 tabs (worse case / nightmare scenario) in theory this still could work. That being said I better not do 225 tabs lol. Also I can probably put 4+1 play styles into one tab and have maybe 2 tabs (magical and spiritual). Or I could (somehow) jam everything for one power type into one tab and (hopefully) use the full screen size for the talent specialization window; and have have ~8+1 tabs? Having a single digit number of total tabs seems to be a lot more sane than having a three digit number of tabs at any rate XD.

I hope to have impactful abilities with ~100 player levels so maybe every 5 or 10 levels another rung of abilities to (hopefully) give balanced progression. I will probably go more of the route of more generic / low power fantasy power to try and get the melee/priest/ranged/caster balance as best chance as I can to stay relevant without ranged and caster just running the show as in most (A)RPGs (without making things too contrived like D&D late game melee non-sense). So I hope to have abilities that can be deeply invested into like 25 to 50 points into some abilities as an option to avoid 10 spells that are slightly different that do effectively the same thing.

Also with so many powers and play styles having less 'what ever' / 'fluff' abilities should help keep things feeling 'tight' / together / clean. Hopefully I can get the game more of a chance to have all play styles be viable / competitive with having less but deeper and more meaningful / impactful / 'key' / role and or play style defining abilities. Hopefully that should help with the lower fantasy to better combat power creep / unbalanced and or over dominating / fight against obsolescence / ~'meme-ify-ing' of play styles (e.g. melee and priest play styles in most (A)RPG's end game). In with to concentrate the flavor of the powers and play styles and hopefully take up less space in the talent specialization tabs / tree. So as to also avoid the player being overwhelmed navigating the skill tree menus. As like in PoE with the insanely huge skill tree menu navigation chaos. That is just stuff with mostly fluff and meme spec abilities and like with ~1/20 (<5%) of 'nodes' / abilities being of any real note / significance.

Basically I am hoping to give the player a sort of skill / ability / power / theme flavour / playstyle lego kit and still have all the depth and options but not too insane to look at where people just give up after one look like in PoE XD.