Sunday, July 16, 2017

Controller setup.

I'm currently working on doing some of the core aspects of all my games, in GM2. First up is gamepad support with adjustable buttons.

Since this is not an afterthought, but an actual attempt to do it as well as possible, I thought I'd ask you guys about some stuff before I start.

1. What are some common complaints you have about controller setup options in games? (can be visuals/aesthetics)
2. What do you see as essential features?
3. Are there any features that seem obvious to you, but are absent in everything?

So far my initial thoughts are
- There should be options inside and outside of the game.
- The screen should be traversable with keyboard, gamepad, or mouse.
- Adjust or disable rumble entirely
- Include visual representation of controller that clearly indicates if a controller is detected and what buttons are being pressed.
- Game must be able to detect controllers being plugged in at any time after the game has started.
- Don't skimp on presentation. Even an option menu should be satisfying. Might have some kind of character dedicated to options.

For now, I'll be doing a couple quick sketches deciding on layout fir the actual screen. Even though I'm doing it first, I assume it will be a tab of a larger options menu.

33 comments:

  1. I think your initial thoughts list covers most of the things needed. If anything, I would add re-mappable buttons through the game options. Like it asks for a button to be pressed or a specific action and then remaps it once one has been pushed.
    Also I think a menu character would be pretty cute addition. Wouldn't have to be anything too extravagant if you wanted but I think it be endearing.

    ReplyDelete
  2. I realize it's likely outside your control in GameMaker, but I'd just like to make sure that Gamecube controllers (Mayflash Gamecube Controller Adapter) are supported. It seems that some games, such as Gang Beasts, only support X-Box controllers and completely ignore these other fairly common controller types.

    ReplyDelete
    Replies
    1. It depends how they're detected. If they are direct input then they will be detected automatically, since GM can do directinput and xinput.

      If it's anything driver related, though, then there's nothing I can do. All I have is a nintendo adapter so I couldn't test mayflash specifically.

      Delete
  3. Proper D-Pad support, that's the common dinput problem. Huge amount of GameMaker and every goddamn RPGMaker games are using the left thumbstick and just can't detect the D-Pad at all, even if you're able to remap the controls.

    ReplyDelete
    Replies
    1. Seconded, though I should point out the player should have the option to use either the d-pad or thumbstick. Some players prefer one or the other, and you can satisfy everyone by supporting both.

      Delete
    2. Tripoteur VentripotentJuly 16, 2017 at 8:51 PM

      It's true that the D-pad seems to work differently than the controller's other buttons.

      In many, many games, I can't bind directions to the D-pad. I have to tell the game to use letter keys for directions and then bind those letter keys to my D-pad using JoyToKey.

      I have no idea why it works that way, but it does.

      Delete
    3. D-pads are usually sent as hat-switch codes instead of axis or button codes. Some gamepads let you switch how they work (2 axes / hatswitch) but not all of them.
      So it's probably a matter of even taking these into account at all.

      Delete
    4. Well, at least in my in-development games, I make it so you can use the d-pad or the joystick. In GM, the Dpad is represented as essentially a stick being held in one of 9 directions.

      However making it mappable would be different, since the way I have it now they are simply interchangeable at any time.

      Delete
  4. 1 hand mode on keybord is possible ? >:3c

    ReplyDelete
  5. If you're going to have a character for menus, my vote is for Pause Girl or Kuro if you see her as your 'mascot.'

    ReplyDelete
  6. I don't remember if your other games had this or if your new game will, but make it so if you have multiple actions mapped to one button you can split them up.

    ReplyDelete
  7. To me, the only thing I care about in a control scheme is that everything be comfortable and natural-feeling.

    ReplyDelete
  8. 2. What do you see as essential features?
    3. Are there any features that seem obvious to you, but are absent in everything?

    Sound options (lots of games like to hit you with max volume intros), graphic quality options, consideration for colorblind folks.

    ReplyDelete
    Replies
    1. ThatWeirdGuyWithaWeirdHatJuly 18, 2017 at 10:52 PM

      Seconded

      Delete
  9. A lot of games offer fully customizable controls, but if you're a first-time player, you may not know what's important to map to which button - even something as seemingly obvious as jumping might vary wildly on the control hierarchy depending on how important it actually is, how high/far you can jump, etc. So going in blind, you may do more harm than good by just re-mapping every key/button.

    The alternate is specific control schemes. You know, like in layout B, your jump and shoot buttons are reversed from layout A, and layout C moves the shooty stuff entirely to the shoulder buttons... that sort of thing. This works great, in theory, because the game maker should have the best idea of what actions are most important, but even the best layout won't work for every person.

    All of that's pretty obvious stuff, but what I can't remember seeing is the option to modify a default layout. Like, controller scheme B would be perfect if only you could flip around the shoulder buttons. So... schemes plus customization. Hope that made sense!

    ReplyDelete
  10. Being able to adjust the deadzones on control sticks, you see this in some emulators like dolphin and it caters to anyone with a kind of broken control stick (But not broken enough to want to replace) Though this might be more of an advanced option

    ReplyDelete
  11. A quality of life thing I always enjoy with controller options is an auto-map or mapping wizard, which automatically runs through every command and asks for a button to assign it to. I usually only go into the controller options to do a complete remap, so minimizing the time I spend in that menu is a big plus.

    ReplyDelete
  12. 1. What are some common complaints you have about controller setup options in games?

    When attack (jump) is also decide (cancel). I want to set it individually.
    When one action can only be assigned to one button. I want to assign it to multiple buttons.

    ReplyDelete
    Replies
    1. Didn't think of this. My default is generally to just make it so all the buttons are forward in intro menus, but it would be possible to have in-game stuff customizable.

      Delete
  13. ThatWeirdGuyWithaWeirdHatJuly 18, 2017 at 10:50 PM

    A glaring problem I had with control scheme is the fact that I couldn't set it up the way I wanted to. I like my attack button being set to the X button on my controller but with how most games are made it's usually always A or Y. And I especially hate having my start/pause/menu button set to my R3 or B button.

    ReplyDelete
    Replies
    1. with directinput controllers it's actually not possible to know which buttons the controls end up on. Which is another reason why you need customization keys.

      Delete
  14. The ability to change the fps to 30 if the game normally runs at 60, I'm running a higher end pc now but not forgotten are the days of having low spec pc only able to run even small games at max around 25, and if a game runs at 60 it would be too slow to be bearable.

    ReplyDelete
    Replies
    1. To do that you need to implement "delta time", which is a totally different way of programming certain things. Or at least, it still seems alien to me.

      For now, I'm focusing more on making things optimized, since there's no reason any PC shouldn't be able to run such graphically unintensive games. However, once I've done that I'll probably start to implement delta time in future games, since it has mechanical uses as well, such as slow motion. It's also a bit more essential in 3d games.

      Delete
  15. Mapping multiple buttons to the same function is really handy and can make some stuff much more comfortable

    ReplyDelete
  16. Greetings. ^^

    As already stated, your initial thoughts cover most of things. I also like the idea of the menu character. It sounded really nice and somewhat unique. ^^ Being able to configure dead zones for analog sticks is also rather important, as well as being able to use the bumper buttons, if you chose so. It would also be nice to be able to map stuff on special buttons like the X-Box-, Steam- or Logitech-Buttons you see on controllers nowadays. Most games just ignore them and I don’t know why. It might be a possibility that there is a reason for that, but if not, I’d like to see these buttons usable. ^^

    Also a nice to have would be some kind of small ‘test area’ accessible at any time in the menu without screwing up your progress to ‘test out your button layout’. This is a very optional thing, but I kinda’ like the idea of being able to test out your layout before starting or continuing your game where you left of.

    I guess that covers my thoughts about it. Most other things I’d add where addressed above. Anyway, I’m glad to see you in deep thought about such vital things most devs actually don’t really look into too much. ^^ Keep up the good work.

    Best regards.

    ReplyDelete
    Replies
    1. As far as I know, hardware buttons and home buttons aren't mappable.

      As for a test screen, I'll have to think about it. Maybe I'm just a little too worried about where the player first gets to control the character.

      Delete
  17. Bro. Kyrieru. When dev's like team Zeta succeed you. You gotta tell yourself,"Houston, we have a problem."

    You have so much talent that so many people dream of. And it's at your fingertips and the edge of your brain like its nothing to you. Step back. Don't outdo yourself striving. Remember that your fans made you pursue. Be more responsive.

    ReplyDelete
    Replies
    1. Lol Zeta.

      I've said it before, but I post when there's something to post. There is no lack communication with those who ask, or contact me. If I feel I have a relevant topic to talk about, I do, but otherwise it would be wasting time I could be spending working.

      I'd prefer that people forget I exist and have the games come out sooner. Unless I'm going around being a dick to players, people will judge the games on their own merits.

      Delete
  18. Mamono Assault ForceJuly 21, 2017 at 12:50 PM

    When using a controller: Allow the user to set a "Dead-Zone" for the controller's axis (aka, the thumbstick on the xbox controller), such that until the axis input exceeds the dead zone, no action will be performed.

    This is something Joytokey allows its user to do, and it's so handy for when an old controller has a leaning stick or broken trigger because this setting renders both usable again.

    ReplyDelete
  19. I really enjoy when a game allows mee to switch between keyboard and controller without having to adjust anything in a menu or close/reopen the game, even adjusting any on-screen button prompts appropriately when you switch.

    ReplyDelete
  20. Separated sound/music options, that can each be toggled as a percent instead of on/off. Think Kooooonsoft Witch Girl's options menu specifically regarding sound/music.

    Also maybe a quick zoom toggle?

    ReplyDelete
  21. One example of some nice controller setup is in smash bros for wii U. It's nothing groundbreaking, but it is very quick and easy to use. It makes sense immediately. It stores the configurations for each controller type separately so it still remembers settings even if you swap between different types of controller. I'm sure there are videos of it online, it's probably worth a check.

    ReplyDelete
  22. The best controller setup I've seen was in Jamestown.

    At the start of the game you just hold a button for a given action and it worked flawlessly.

    ReplyDelete