devilutionX icon indicating copy to clipboard operation
devilutionX copied to clipboard

Controller Improvements

Open stefanmielke opened this issue 3 years ago • 18 comments

I have been playing the PSOne port and find the controller to have a few differences from this port, so I made a few changes that are in the PSOne port but are not present here that improve the way the game feels when using a controller.

Changes made:

  • Do not move to attack if the player has a melee weapon equipped and the monster is not close enough to get hit
    • The player will keep its current direction and just attack
    • It's preferred when you are waiting for enemies to come to you, so you can just keep attacking and the player will hit the enemies as they change position
  • Try to follow walls when moving
    • Eases navigation across the map

PS: I plan to make a few more changes for the controller to feel better, but I'm trying to understand how open you guys are to these types of changes before that.

stefanmielke avatar May 04 '21 02:05 stefanmielke

Another difference with the PS1 port and this is probably the best change, is that the player moves in pixel increments. You can press the dpad for a second and the player will move 2-3 pixels then stop. The way it works on PC is you move one tile at a time, which makes movement very clunky. This feature is a bit tricky to implement though.

galaxyhaxz avatar May 04 '21 03:05 galaxyhaxz

It'd be nice if the first one was optional. Not following enemies is convenient in some circumstances, but I'm pretty sure I'd want to shoot myself in the face if I have to manually try to follow enemies that run away while using an analogue stick with a melee character.

BartyMae avatar May 04 '21 09:05 BartyMae

I thought on doing that at first (maybe having a setting for the minimum distance), but in the end I decided not to mostly based on my time playing warrior on the PSOne port and some of the time spent on this one.

Is there anyone else here that actively plays using a controller? Would be nice to gather more opinions on this.

stefanmielke avatar May 04 '21 12:05 stefanmielke

@glebm might have an opinion

AJenbo avatar May 04 '21 13:05 AJenbo

I'd need to play test this to have an opinion -- it's hard to say

glebm avatar May 04 '21 14:05 glebm

Is there any actions you guys want me to do? I can put that as a config if you think we can move forward with this and then come back to this later (also ok with waiting if we want to come up with something that's more solid in the end).

Do you guys have a playtest group or something to test new ideas out? I couldn't find many reviews of the controls on youtube videos, just one (playing on an n3ds) that complained that we should lower the value to go after the monster automatically.

stefanmielke avatar May 04 '21 14:05 stefanmielke

@stefanmielke Not in particular, but I think a few people who use controllers should playtest this before we merge it in. If it's simply better, don't think we need a setting

glebm avatar May 04 '21 15:05 glebm

sounds good to me!

I'll wait for this to be playtested then, thanks!

stefanmielke avatar May 04 '21 15:05 stefanmielke

I think this might be something that should be an option. Unless we can find a good way to switch between them as with shift+click on mouse+keyboard controls

AJenbo avatar May 04 '21 17:05 AJenbo

@glebm and @AJenbo, fixed some of the problems and also added the "move to interact" as an option in the ini file (we can remove later if we are fine with the approach or once we do "shift+click" for the controller).

stefanmielke avatar May 07 '21 22:05 stefanmielke

I just playtested this for a little bit on 3DS so here's my initial assessment.

Follow walls when moving

Having the game be a little more forgiving against walls was a bit of a blessing and a curse. It was easier to move along walls so I didn't feel like I was constantly getting stuck on nothing, but it was also a bit harder to maneuver my character through doors and arches because he'd be just as likely to try to move along the wall if I wasn't accurate with the analog stick. It might be better if he could get stuck on corners.

Also potentially worth noting, this movement logic does not appear to work on the Sarcophagi in Cathedral.

Ultimately, I'd say this change is an improvement, but could also still be improved upon.

bMoveToInteract

It was a bit awkward because the character doesn't turn to look at his target when swinging until the enemy is right up in his face. This meant I was frequently swinging at nothing and then would suddenly turn around to swing at whatever just approached.

As for my personal opinion, I don't think I would ever play with this option on. Currently, even without this option, you can briefly move the analog stick after the last swing to avoid chasing down the next target. If I just wait for the enemy to approach, then start swinging, and finally use the analog stick to cancel when they're dead, I get the same effect without also eliminating the option to automatically chase down monsters.

This would definitely be better if it could be incorporated as a button combination, similar to Shift+Click on mouse and keyboard, or even as a separate button or a toggle. I think this option would be most comfortable on L2 and/or R2 (even though o3DS doesn't have them 😦). If we're reluctant to change the default controller layout, maybe this could be like an "extended action" that is not mapped by default, but could be manually mapped to a button to replace the default action.

StephenCWills avatar May 11 '21 04:05 StephenCWills

Try to follow walls when moving

I don't think i understand how this is suppose to help, it's already annoying that you are locked in to the tile grid, if the player is additionally snapping to the 4 directions of walls it sounds like you would have and even less responsive experience.

AJenbo avatar May 11 '21 06:05 AJenbo

You might want to split up the two behaviors so that they can be refined and merged independently.

AJenbo avatar May 11 '21 06:05 AJenbo

Try to follow walls when moving

I don't think i understand how this is suppose to help, it's already annoying that you are locked in to the tile grid, if the player is additionally snapping to the 4 directions of walls it sounds like you would have and even less responsive experience.

It usually helps navigating the dungeon when using a controller, so you're not expected to always having to use diagonals (that are not really great on a dpad). And again, something that's present on the PSP port that's not here.

stefanmielke avatar May 11 '21 13:05 stefanmielke

I have a suggestion for controller usage. I have been playing a ton over the last week (and this project is amazing btw) but I find casting spells is a little cumbersome on controller especially with no hot keys. Would it be possible to use the right analog stick as 4 (or better yet 8) hockey’s for spells. This would make playing a mage so much better!

I guess this could also be done using the dpad but I am not sure how many people use the dpad for movement.

Just a thought. I have no coding experience though so honestly have no idea how tough this would be :)

kevixm avatar May 16 '21 15:05 kevixm

I have a suggestion for controller usage. I have been playing a ton over the last week (and this project is amazing btw) but I find casting spells is a little cumbersome on controller especially with no hot keys. Would it be possible to use the right analog stick as 4 (or better yet 8) hockey’s for spells. This would make playing a mage so much better!

Hold select to use the 4 right buttons as spell hotkeys

https://github.com/diasurgical/devilutionX/wiki/Game-Controller-Scheme

AJenbo avatar May 16 '21 19:05 AJenbo

I have a suggestion for controller usage. I have been playing a ton over the last week (and this project is amazing btw) but I find casting spells is a little cumbersome on controller especially with no hot keys. Would it be possible to use the right analog stick as 4 (or better yet 8) hockey’s for spells. This would make playing a mage so much better!

Hold select to use the 4 right buttons as spell hotkeys

https://github.com/diasurgical/devilutionX/wiki/Game-Controller-Scheme

My nimbus controller doesn’t have select. Just a menu button here. Good to know though :)

kevixm avatar May 17 '21 17:05 kevixm

Maybe you could map L2 for it :/

AJenbo avatar May 17 '21 18:05 AJenbo