Context-sensitive buttons in ZX Spectrum game...?

Propose new game/software design concepts or new game/software ideas. They can be as whimsical as you like, just be careful you don't ask someone to make it for you...
Post Reply
User avatar
Cheez26
Microbot
Posts: 123
Joined: Sat May 04, 2024 2:36 am
Location: Midwestern United States
Contact:

Context-sensitive buttons in ZX Spectrum game...?

Post by Cheez26 »

You know what I loved about Conker's Bad Fur Day for the N64? The use of a context-sensitive button...especially in humorous situations.
Imagine playing a platformer one day and you press that exact button to do a different thing depending on the context of the situation.

I'm not talking QTEs that plague modern graphic adventures. I prefer a cutscene to stay a cutscene (although I could blame Sam & Max and Telltale for popularizing that in the adventure game context). I'm talking a single button used to activate cutscenes and certain types of actions that derail the gameplay just for a moment.

tl;dr I want context-sensitive buttons on my story-based ZX Spectrum platformer. It can't be that hard, right?
Chelsea E., a Speccy fan from the U.S.
Also a musician and a beginning games developer.
🏳️‍⚧️ p r i d e 🏳️‍🌈
User avatar
ParadigmShifter
Dynamite Dan
Posts: 1024
Joined: Sat Sep 09, 2023 4:55 am

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by ParadigmShifter »

Well that's just Ocarina of Time which was probably first game to do that right. Not that hard to design and program.
User avatar
Cheez26
Microbot
Posts: 123
Joined: Sat May 04, 2024 2:36 am
Location: Midwestern United States
Contact:

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by Cheez26 »

ParadigmShifter wrote: Sat May 18, 2024 10:20 pm Well that's just Ocarina of Time which was probably first game to do that right. Not that hard to design and program.
Okay, but what about in something other than ASM?
Chelsea E., a Speccy fan from the U.S.
Also a musician and a beginning games developer.
🏳️‍⚧️ p r i d e 🏳️‍🌈
AndyC
Dynamite Dan
Posts: 1452
Joined: Mon Nov 13, 2017 5:12 am

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by AndyC »

It's not that hard to do in any language. It's probably harder to design a logical way of conveying to the player when it's worth pressing the button though. Much easier on modern systems where you can cheaply overlay button prompt images (especially if you had the good sense to colour the buttons!)
User avatar
ParadigmShifter
Dynamite Dan
Posts: 1024
Joined: Sat Sep 09, 2023 4:55 am

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by ParadigmShifter »

Well OoT was written in C.

You want specific objects to communicate to nearby spaces the actions they have available probably so if you are standing there it adds it to your available actions. May want priorities for the actions then obvs.
User avatar
Cheez26
Microbot
Posts: 123
Joined: Sat May 04, 2024 2:36 am
Location: Midwestern United States
Contact:

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by Cheez26 »

@AndyC Yeah, it does seem weird to do this in the context of something like Manic Miner/Jet Set Willy derivative, but I do want to tell a somewhat decent story through something other than a text or graphic adventure.
Chelsea E., a Speccy fan from the U.S.
Also a musician and a beginning games developer.
🏳️‍⚧️ p r i d e 🏳️‍🌈
User avatar
Joefish
Rick Dangerous
Posts: 2088
Joined: Tue Nov 14, 2017 10:26 am

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by Joefish »

I think one of the things to note is these examples are all 3D games, where it's your proximity to a particular object that triggers the context-sensitive button. To make that work there are range calculations going on all the time.

I suppose with a 2D game you could tag tiles on a map for where different events can occur, such as only using a key directly in front of a door, but also with a check that you have the right key to use.

The problem then is, working out which object to use in a particular situation no longer becomes a puzzle, as the game is picking the answer for you. In fact, it can be very frustrating in a game when you're in the right spot and you think you have the right object, but the game won't even let you try it as there's something else more specific you need. Resident Evil 2 is terrible for this, for example.
dfzx
Manic Miner
Posts: 705
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by dfzx »

Joefish wrote: Sun May 19, 2024 12:03 am I suppose with a 2D game you could tag tiles on a map for where different events can occur, such as only using a key directly in front of a door, but also with a check that you have the right key to use.
I wrote a game a few years back called Wonky One Key, which is a 2D platormer with a single control key. It works exactly as you describe: if any part of the player's sprite is on one of the jump pads, the space key invokes a jump; otherwise the space key invokes a change in direction.

I'm not sure this aids the OP's idea of "decent story telling" though. :lol:
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
Timmy
Manic Miner
Posts: 263
Joined: Sat Apr 23, 2022 7:13 pm
Location: The Netherlands

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by Timmy »

Well, of course my game Heart Stealer had also an one key version.

Although this was so long ago, I can't remember what kind of things it does. Probably different kind of jumps.

But yeah, as the Spectrum Joystick only has one button, almost every single game has context sensitive buttons. Basically from shoot-em-ups to regular shooters, from platformers to arcade adventures, from puzzle games to fighting games, you'll find that a single button has multiple uses.

In fact, it's probably harder to find games that doesn't do it.
User avatar
Joefish
Rick Dangerous
Posts: 2088
Joined: Tue Nov 14, 2017 10:26 am

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by Joefish »

There are ways to get more out of one button. Holding it down, for example, to lob a grenade in Commando. And the charged shot in R-Type (note there a nod to good gameplay - when you first press the button you fire a shot, then it counts up the hold. Meaning not every shot is charged, and ordinary shots fire off the instant you tap the button, rather than release it).

In a maze adventure, if FIRE is actually an attack button, holding it could bring up a menu. You'd just have to design things such that hitting critical contextual objects or NPCs doesn't damage them or cause other adverse effects. Like in a Zelda game where hitting the wrong button or standing in the wrong place smashes up a signpost instead of reading it!

The Sacred Armour of Antiriad has something a bit more complex. Whilst running, FIRE is the jump button. But standing still, you press UP to jump, and FIRE will prepare to throw a rock, then you press left or right to actually chuck it. It works fairly intuitively once you get the hang of it, but you do need to read the manual carefully to get the hang of it. Without it, you'd struggle to make sense of it. And by far the easier option is to have a joystick with a second button wired into UP.

Rick Dangerous is another one with a complex control; you press FIRE, then push in a direction for a particular action (DOWN = Dynamite, UP = Shoot, RIGHT or LEFT = Jab.

For a Run'n'Gun / Platformer with UP to Jump, DOWN might be an optional control, also DOWN+FIRE (Hysteria), unless of course it's a Crouch / Prone control. And obviously that doesn't help in an overhead maze game with open four-directional movement.
User avatar
Pobulous
Dynamite Dan
Posts: 1424
Joined: Wed Nov 15, 2017 12:51 pm

Re: Context-sensitive buttons in ZX Spectrum game...?

Post by Pobulous »

Lots of games use proximity to an interactive object to switch the firebutton from attack to interact.

Spy vs Spy uses a single firebutton to mean search, attack, place trap, open door, close door, move ladder, move carpet depending on context
Post Reply