Jump to content
IGNORED

Control schemes: multiple actions with a single button


Recommended Posts

Hey everyone! Here's something that has been puzzling me since I started designing a game for the 2600... How can I efficiently give a player 2 actions (or more, but for the sake of this discussion let's stick to jumping and shooting) when all I have is a single action button?

 

The first thing that came to mind was that quick button taps could be used for jumping, while holding it down a little longer would cause a shot to be fired. In the middle of a jump, the button would always shoot (unless I wanted double jumps or something). That doesn't seem very intuitive though... I guess most people associate how long the button is held down with how high the jump is, and with this scheme the height of the jump would simply not vary, and people would be frustrated from falling off ledges because their character shot when it was supposed to jump.

 

Another idea was to use "up" for jumping, but that's really awkward in a regular Atari controller, and doesn't always work when combined with "left" or "right". Also, it would not be possible to shoot upward without jumping first. Using "down" in any way doesn't seem any better, and you lose the ability to duck.

 

What do you guys have to say about this? What solutions have been used in existing games? Do many games even have more than one action? Would it make sense to support Master System / Genesis controllers in order to improve the controls, while still supporting the more awkward scheme for people who only have one button?

Link to comment
Share on other sites

It looks like you covered most of the control schemes possible with a single button. The only thing left would be to make the Button act as a shift trigger as in hold to run or stand and shoot with the joystick directions acting as fire buttons for the 8 directions while not holding the Button would allow you to run normally with Up as Jump.

 

There is also the double tap and double tap and hold control mechanism for the joystick which could work for Run activation or leaping forward. It works good on most controllers but I haven't tried this with a stock 2600 joystick. Also walking or running could act as a context for actions like walking jumps straight up but while running will make you leap diagonally forward.

 

The only other thing I can think of is context sensitivity based on proximity to world objects, where a U,D,L, R menu prompt comes up when standing on the right spot, which you select 4 actions from. Probably a hold Button activation too to make it less clunky.

 

It's not too difficult to support both standards as the wiring is the same by which I mean expanding the inputs for one player is based on the maximum buttons/switches possible through the 2:9-pin ports, so what would be Jump on your custom controller will be Up on the 2nd Player inputs plus any additional controls.

 

Raiders of the Lost Ark uses 2 stock joysticks which is rather uncomfortable unless you can tether them together in a secure manner. I think as long the inputs make sense and line up with the 2 stock controllers (Don't use Player2 Down for Jump.) then both standards will coexist just fine.

 

As far as continued support of one button control schemes I say do so when you can but you have to accept that it will likely be an approximation of the full setup as in just functional but not the ideal when dealing with complex control schemes.

 

I hope this helps. :)

Link to comment
Share on other sites

For the Harmony cart menu, I had the same problem. The solution was, that most of the actions are triggered when the button is released. This easily allows to combine a pressed button with joystick movements and also to check for long and short button presses.

 

Though maybe that's not suitable for a quick action game...

Link to comment
Share on other sites

When I was fooling around with Stella programming I made a little sprite guy who would jump when the button was released. The height of the jump was dependent on the duration of the button press. It felt very natural. It's like the character is "charging up". I would say to make quick taps fire your projectile and have long-presses make the character jump. I also recommend not triggering either action until the button is released. Maybe have an onscreen indicator queue the player that a button release will result in a jump. In my code, I had started a progress bar that grew the longer the button was held. I was just incrementing a variable and displaying the bit pattern so it wasn't exactly linear, but it was a start. I'll post my binary and code later if you want to look at it.

Link to comment
Share on other sites

Okay, I found my old project. The joystick moves "FleaMan" around the screen and the fire button makes him jump. Long-press to get more air. Tap for short hops. I'm sure this could be modified so that he shoots when the button is tapped. It's just a matter of establishing a counter that increments at a set rate when the fire button is pressed and reading the value when the button is released to determine the resulting action.

 

Just a heads up: nothing in this code is really optimized. If I remember correctly, I was trying to "go by the book" (Stella Programmer's Guide) with my horizontal positioning code, for example. Everything was a learning experience so I laid it out in the most newbie-friendly way I could. I did manage to squeeze in SkipDraw (even if I don't completely understand it).

 

FleaMan.asm

FleaMan.bin

Link to comment
Share on other sites

Thanks for the ideas (and examples!), guys. I'm not sure I like the idea of "charging" a jump... it might make intense platforming sections quite hard and frustrating (think collapsing platforms and the like). Charging shots makes a bit more sense in my head. Also, missing a shot is less problematic than missing a jump IMO. If you by any chance fail to shoot, you can quickly/easily try again, but missing a jump can easily result in you falling to your death.

 

Using the button as a shift trigger is a very interesting way to give new functions to the directional buttons, but using "up" to jump in a platformer doesn't work very well on the Atari IMO. It works great on a keyboard, but in most gamepads I can think of you can't smoothly switch from left/right to a diagonal, which would be necessary for jumping after running to build up speed.

 

I'll think about this some more, and will eventually try different schemes and see what works better. Thanks again for all the suggestions.

Link to comment
Share on other sites

What about pressing down to shoot?

Yeah, this is a very good solution if you can only shoot sideways (ducking is pretty useless too, so I don't mind giving that up). This doesn't work for shooting up and down though... if you have "up" shoot up and "down" shoot down, you don't have any way to shoot sideways.

 

Pressing down is usually pretty useless unless climbing a ladder anyway.

Heh, I do plan on having ladders, but I don't see a problem in disallowing shooting when climbing ladders.

Link to comment
Share on other sites

Maybe:

hold down for rapid fire down

hold up for rapid fire up

press down and left for rapid fire left and move left

press down and right for rapid fire right and move right

press up and left for rapid fire left and move left

press up and right for rapid fire right and move right

 

You lose diagonal shot but one can always make a spread shot weapon.

Link to comment
Share on other sites

  • 2 weeks later...
Thanks for the ideas (and examples!), guys. I'm not sure I like the idea of "charging" a jump...

 

Yeah, I don't like jumping after the button is released. I like the type of jumping below that is instant, but the longer you hold down the button, the higher you jump. Press the button quickly to only jump a little:

 

fake_gravity_platformer_test_by_random_terrain_2011y_03m_30d_1620t.bin

Link to comment
Share on other sites

Thanks for the ideas (and examples!), guys. I'm not sure I like the idea of "charging" a jump...

 

Yeah, I don't like jumping after the button is released. I like the type of jumping below that is instant, but the longer you hold down the button, the higher you jump. Press the button quickly to only jump a little:

 

fake_gravity_platformer_test_by_random_terrain_2011y_03m_30d_1620t.bin

 

How do you fire? ;)

Link to comment
Share on other sites

How do you fire? ;)

 

I was just talking about the jumping part of it :P , but I'd probably either fire by ducking and pressing the fire button or by double clicking. Ducking would probably be best. If I can remember how the program works, I can make a version that shoots while ducking.

Link to comment
Share on other sites

Genesis controler would give you an extra button.

Yeah, I considered supporting Master System / Genesis controllers, but if you are making an Atari game you're supposed to also support the original controllers. If the player doesn't own a Master System or a Genesis controller, he should still be able to control the game using a control scheme that doesn't completely suck, and doesn't put him at great disadvantage.

 

How about a keypad controler held sideways?

Unlike Master System / Genesis controllers, those are fairly rare (at least here in Brazil), so I wouldn't put that option at the top of my list.

 

Yup, that's how jumping is supposed to feel like in a game. IMO, basic player movement comes before attacking abilities, so I'd much rather make the shooting a little awkward than the jumping.

Link to comment
Share on other sites

This is the same as above, except now if you duck and press the fire button, you shoot in the last direction you were facing:

 

fake_gravity_platformer_with_duck_and_fire_button_2012y_05m_28d_0632t.bin

Edited by Random Terrain
Link to comment
Share on other sites

 

This link was pretty useful! Thanks for the demo, the controls felt good. I think I'll just have the button shoot if either up or down is pressed (and left and right aren't), that way you can shoot upwards too. While in the air, the button will always shoot in the direction you are facing, but you can use up or down to shoot in those directions. Sounds good enough. Now I just have to figure out how to change weapons (that might actually be done with items, like in Ghosts 'n Goblins / Ghouls 'n Ghosts, in which case I wouldn't have to worry about controls)!

Edited by tokumaru
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...