cxong/cdogs-sdl

Separate sprint/switch button

Opened this issue · 9 comments

Switch and sprint buttons could, and it's arguable if even should, be separate button.

Link to original request at http://cxong.github.io.

Copying the original request here:

I love your work and truly appreciate all the contributions you've made to this game. C-Dogs has been part of my childhood. I first played it in 1998, when I was 4 years old. I'm f**king 25 now! LOL.

HOWEVER, there's this problem I've always had with the game that is yet to be addressed even after all these years, and my hopes are resting on you to sort it out:
I always found it weird that the SAME button used for running, also switches between weapons! Like, that problem alone has led to many annoying deaths I've suffered while playing, and I know almost everyone complains about it too.
I'm hoping you can remap the controls and give a SEPARATE button for running, and a separate button for switching between weapons. If the grenade can be remapped and given an individual key of its own, then running and switching between weapons should be separately driven.
I'm on my knees, bro. Please, grant us this request.

Again, I love your work and pray you keep growing from strength to strength. Cheers.

  • Chinedu

Something to consider.

cxong commented

Yes, this has been mentioned by others too in the past. I think it's a good idea, but will require some thought. Issues:

  • Default key mapping should have separate sprint and switch buttons
  • Must retain the ability to use a combination switch/sprint button
  • Consider key layout; currently it is Z switch/sprint X shoot A map S grenade. What keys would make the most sense here? Research similar games
  • Same problem with game controllers
  • Also need to update mouse controls - replace mouse2 with just a sprint command; mouse wheel already switches
  • Would it make sense to also add a dedicated strafe button? Currently it is an option where you can only switch or strafe. If so also need to consider key layout

Good questions, lemme try to answer what I think and propose.

* Default key mapping should have separate sprint and switch buttons
  • Yes, I'd propose new sprint and switch buttons
* Must retain the ability to use a combination switch/sprint button
  • Indeed, I wouldn't touch the default button configuration at all
* Consider key layout; currently it is Z switch/sprint X shoot A map S grenade. What keys would make the most sense here? Research similar games
* Same problem with game controllers
  • I'd consider keeping the new buttons in <unset> state until user explicitly sets them. Those are optional
* Also need to update mouse controls - replace mouse2 with just a sprint command; mouse wheel already switches
  • Makes sense
* Would it make sense to also add a dedicated strafe button? Currently it is an option where you can only switch or strafe. If so also need to consider key layout
  • IMO, yes

See mock:
kuva

I renamed button1 and button2, but other ideas are welcome. button1/shoot format could also be used. What do you think?

I'm willing to look if I could also implement it if we find a solution we can agree. :)

Edit: Updated mock.

cxong commented
  • Just to clarify: if there is no existing configuration, the sprint/switch buttons should be separate. Otherwise the old config will be used
  • I'd add a separate strafe button in a separate issue, to keep this one smaller. This also means we retain the existing sprint/strafe config options. So initially, the sprint button will also strafe depending on the config, and the command name would be "sprint/strafe"
  • Keep using the switch command for picking up guns
  • Update co-op AI to use separate sprint or switch commands
  • Just to clarify: if there is no existing configuration, the sprint/switch buttons should be separate. Otherwise the old config will be used
  • I think all of those buttons can be used as user wishes, independently. I don't think there is a need to maintain "configuration". New buttons are not assigned before explicitly set by the user. If user wishes to use current behavior, it works just like it used to. If user sets additional button, then it can be used, but it doesn't affect other buttons. If there are special behavior in UI, just implement it so that what ever special use button2 has had, new separated buttons should do the same action, I think, so that user doesn't need to use the old button2
  • I'd add a separate strafe button in a separate issue, to keep this one smaller. This also means we retain the existing sprint/strafe config options. So initially, the sprint button will also strafe depending on the config, and the command name would be "sprint/strafe"
  • So button2 has had three actions? Sprint, strafe and switch? If that's the case, then yes, we should have
    • shoot (old button1)
    • sprint/strafe/switch (old button 2)
    • sprint/strafe
    • switch
  • Keep using the switch command for picking up guns
  • Yes
  • Update co-op AI to use separate sprint or switch commands
  • Can't AI work exactly like it works now, since the proposal does not change how button1 and button2 work, just rename them?

What do you think?

I'll update the mock later.

Is there strafe action? Strafing means going from side to side. Do you mean sprint? So button2 is just switch and sprint? If that's the case, I think the mock above would be sufficient. What do you think?

cxong commented

Yes there is a strafe, although it is hidden in the game options and must be enabled. It replaces sprint with strafe.

Was the strafe included in original version? Could it be removed as an attempt to streamline the controls? It doesn't sound very useful if it replaces sprint. Then this task would be simpler.

cxong commented

It was a feature of Cyberdogs; I would rather not remove it

Ok, go it! I thought it might have been added later.