dkfans / keeperfx

Open source remake and Fan Expansion of Dungeon Keeper.
https://keeperfx.net/
GNU General Public License v2.0
776 stars 77 forks source link

Accessibility options/settings #3470

Open Spatulade opened 1 month ago

Spatulade commented 1 month ago

It would really be worth adding a load of settings/options players can turn on and off to help with accessibility (these would be off by default), including:

PieterVdc commented 1 month ago

for colourblind mode, I'd suggest it would be a mode that forces player specific tilesets for terrain unique shapes they offer are ideal for any type of colourblindness, as for the healthflowers etc, idk that would need to be seen

PieterVdc commented 1 month ago

also this PR looks like a duplicate of #2793

elemanzer commented 1 month ago

@Spatulade

Keeper spells can be cast at full power immediately while holding ctrl.

Regarding this, I had an idea for an implementation that would benefit both those needing accessibility and those that don't:

PieterVdc commented 1 month ago

the main issue is balance reasons, can't just allow spamming full level spells without a charge just as fast as low level ones, as that would allow players to kill a bunch of enemies without even giving him any chance to respond whatsoever

elemanzer commented 1 month ago

@PieterVdc

It's already possible to spam full level spells after a single charge using a mechanic present in both keeperfx and old DK. After fully charging a spell once, release left click for a split second before holding down left click again. The spell will both be applied to a creature and the cursor will remain fully charged. You can see it in action below where I speed up a full training room in very little time.

My suggested implementation would change very little about what's already possible in the game while making things more accessible for those who need it. It would also allow actually using mid tier spells in a way that hasn't been possible before. For e.g. hunting imps with lvl 2-3 lightning instead of either lvl 1 or lvl 9.

https://github.com/user-attachments/assets/f6e30b35-211d-4960-9abb-14b998ffef22

Spatulade commented 1 month ago

Haha, didn't mean to bring up the old "full power cast" debate again. My point was, I don't want it to be implemented in the game as default, because this would change a lot in terms of balance and it would upset people. I meant specifically to have it be some campaign/level pack cfg or launcher setting that can be turned on or off (if a launcher setting, it could possibly even require -alex to be on as well).

Good point about colourblind mode - I was just throwing it out there, I don't think we'd be able to do much until we have enough people with colourblindness who find it an issue anyway.

Also sorry for duplicating the other PR, my bad! I forget what I've raised before. If there's a way to merge these two tickets then feel free!

EDIT: I just closed the other issue and copy/quoted your initial message below.

walt253 commented 1 month ago

A player (Vinsky) mentioned accessibility/epilepsy friendly stuff in tech support. Do we have an issue or PR open for this? A lot of these could be sorted by swapping out sprites and palettes, but it would be probably easy to make it a togglable config. The easy stuff to swap out is:

  • flashing buttons for e.g. imprison, flee, creature limit, room/spell/trapdoor selected, "here they are" flashing on minimap when you hover over stuff - can be changed from a flicker to a solid highlight. Not sure how the game handles the room/spell/trapdoor selected brightness (looks like it's done ingame instead of new sprites), but I know imprison and flee and creature limit face are all different sprites, so it should just be a simpler code change or making a build that swaps some of the sprites over.
  • Lightning strike palette - just call the standard palette instead
  • neutral room flashing on minimap- being worked on, (but slowing it down or having it a solid colour is good)
  • Not sure if other neutral stuff like flashing creature flowers are an issue because they're small but we'd need feedback

Other accessibility or related stuff:

  • Regarding creature limit, I mentioned before but what are people's thoughts on actually displaying the creature limit? If there is a lot of objection it could be some togglable value defined in map scripts (0 is standard, 1 is "it tells you it once you've hit it" and 2 is always on). Hoping that would be really easy (and if it is feel free to point me at where to look!)
  • Do we have enough people who are colourblind who have issues distinguishing any colours ingame? qqluqq made a palette maker, and I realised the gamma values are actually other palettes, so if we wanted to add colourblind palettes, at absolute worst we could add or replace one of the gamma ones.

If the code changes are hard, is it worth making a "accessible build" that swaps out flashing sprites, lightning palette and changes palette?

(We have a PR for neutral flashing open already, I know)