"RUN RIGHT AND JUMP" in ZIL

Recommendations for syntax & routine to allow the player to type in…

RUN RIGHT AND JUMP
RUN RIGHT AND JUMP OVER X (X being the object you want to jump over)
RUN EAST/WEST AND JUMP
RUN EAST/WEST AND JUMP OVER X

Thanks

Adam

Looking to code the parser equivalent of…

image

Adam

I’m not sure what you want to accomplish but in the old Infocom parser (but not in the ZILF parser) the verb RUN is a synonym for GO and in Zork I, for example, JUMP and JUMP OVER are implemented but doesn’t do anything meaningful. AND in this context is a divider between two statements, the same as ..

RUN EAST AND JUMP results in the player moving E and then JUMP.

West of House
You are standing in an open field west of a white house, with a boarded front door.
There is a small mailbox here.

>run north and jump
North of House
You are facing the north side of a white house. There is no door here, and all the windows are boarded up. To the north a narrow path winds through the trees.

Wheeeeeeeeee!!!!!

>run east and jump over house
Behind House
You are behind the white house. A path leads into the forest to the east. In one corner of the house there is a small window which is slightly ajar.

That would be a good trick.

>

To expand JUMP and actually be able to JUMP over something you only need to change that routine.

I guess you want something else to happen?

1 Like

Looking at your example you could code RUN RIGHT (decouple RUN from GO) as HOLD STICK RIGHT and JUMP as PRESS JUMP BUTTON.

Thanks Henrik.

I’m picking up on the conversation that was started on Facebook, creating a game that wouldn’t normally work in the context of a text adventure i.e Donkey Kong, Pong etc

So to enable the player to type RUN RIGHT (or maybe EAST) and JUMP OVER PIT and have the parser recognise it.

Adam :slightly_smiling_face:

Ah, of course it does. Doh. Ok… maybe a way to only allow the jump to result in a successful outcome if run was actioned before it then; I guess?

I don’t know. I guess it’s possible to define an object with “AND” as an adjective, so that “EAST AND JUMP” is a single object. But that still leaves you with the problem of determining how many of those words were used in the command.

I know some Infocom games (e.g. the Witness) allows you to “COMPARE object AND object” by defining the command to take multiple objects. So they could presumably have used one object for the direction and one for the jump. But the trick used there was to check the number of objects (P-PRSO) in the pre-action and I couldn’t get that to work with the ZILF standard library. Not at a quick try, at least.

But as Henrik pointed out, if I typed “RUN EAST AND JUMP” I would probably expect that to be interpreted as two separate commands.

1 Like

I’d just say

STICK UDUDLRLRABAB

For Up Down Left Right buttonA buttonB

You can do SF2 combo as well. Maybe an easier propect to simulate with Inform, as opposed to something positional across rooms.

Aren’t there non-traditional programs already? Space Invader, Tetris, Snake, just to name a few.

1 Like

Yes, there’s the arcade pack :slightly_smiling_face:

This is all I was looking to do here to be honest. For fun I wanted to program a small level from the game Super Meat Boy in IF format. :smiley:

Adam

1 Like

My understanding is that Super MeatBoy doesn’t run left/right, but run forward and change direction. I think you needto store a state somewhere.

Walk = walk
run = run
Jump = jump
Do nothing = wait
Left/right/back = change heading w/ walking/running
Down = slide down on wall

Walk + jump = directional jump
Run + jump = leap

Some timing, such as when sticking to wall, may cause auto slide down randomly.

Something like that?

1 Like

I played it a good while back, I’ll need to play it again to make sure. But yeah I’ll need to get creative with the directions. I thought maybe to substitute North for Up, South for Down, West for Left and East for Right.

Adam

1 Like

If that joystick model is what you want, perhaps you could turn the RUN verb into something you can turn on or off. For instance, RUN EAST, you’ll continue running east until you STOP. While this is happening, you can JUMP.

Not ZIL-specific, but I’ve had this general idea floating around in my mind for a long time.

2 Likes

That’s a good idea! Thanks! I’ll have a play around with the code and see what I can come up with.

Thanks

Adam