Requesting help with Doom Parser

So, this has been percolating for some time. Two games and some private conversations fueled this most recent fever dream. Earlier this year I ran into MyHouse.WAD:

Which is a mod of Doom, an early first person shooter. It isn’t your typical experience, and I was struck by how well the author used environmental story telling and player expectations to tell a compelling narrative. The game is a trip and is waaaayyyy deeper than you would expect.

I also played a game called Enclosure 3-D not too long before that:

It’s basically a Sierra-style graphical parser game with an admirable 3D face-lift. The effect really breathes some life into the medium, IMO.

Well, the two started jelling in my brain and I initially approached @inventor200 to feel out the plausibility of what I had in mind. They checked for very basic plausibility and then gave me some specific leads to follow up on. From there, I started discretely sniffing around the community at the ZDOOM forums. I managed to start some DM threads and was able to verify that I had no real technical barriers to what I wanted to do. Not only did I not have any insurmountable technical barriers, but they made some solid suggestions for improvements and also rendered significant assistance on the technical end, which was super generous.

So, now things are starting to come along and we have a very very rudimentary mock-up that still needs plenty of TLC. He then asked a deceptively good question. Now what?

Write a game, right? Well, that’s not quite it. You see, this is a new sort of fish. It isn’t really a FPS, nor is it a text adventure, per se. It’s capable of telling a story and game dynamic appropriate to either genre, but that feels inappropriate. We feel the game should be built around things only it could do, rather than simply adopting one style or the other. Which is why I find myself here. I need some brainstorming help.

I’m hoping y’all might be kind enough to humor me on this.

The game engine works like typical Doom, retaining the 3D graphical world model and many of the built in ways to interact with it.

For example:

Arrow Keys: Move (although contemplating a remapping to WASD for a few reasons.)
Shift (held) while moving: Run
Alt (held) while moving: Strafe (move sideways)
Spacebar: Activate Switches, Open Doors etc…
Tab: View the Map
Escape: View menu

At the same time, there’s a direct parser mode that can be called up by selecting the tilde (~) button, which then allows you to type in commands and press enter to submit them. Hitting tilde again switches out of parser mode. Now, the interesting thing, IMO, is the fast mapping. Using the verb “Map” followed by an “A” “S” or “D” before any command string assigns that whatever is typed after “Map X” to that key without actually performing that command. That means, outside of parser mode, you could press that key to effect that assigned command line.

That means, for example, you could do the following:

Press ~
Type: Map A Steal Key
Press ~
Run into a room with a ton of enemies, sprint past the big bad nearly indestructible meanie, slap “A” when brushing past them to snag the key off them, and then get out of dodge before you die.

This means you don’t need to try to typing out parser commands during live action sequences nor do you need to allow a pause function to submit commands similar to a console commands menu for many PC games, which breaks the tension and pacing like a deflated balloon. Don’t need “steal key” anymore? No problem. All commands mapped to all three keys could be remapped whenever to whatever just by submitting a new “Map X” command in parser mode.

Also, this is one reason I’m considering remapping the movement arrows to WASD. As things are, you would need to move a hand to ASD while navigating with the arrow keys. That is awkward as well as makes dual mouse use virtually untenable if desired. However, we discussed switching the fast mapping keys from ASD to ERF, as the three keys are immediately next to WASD which would be convenient if that controlled movement from the same hand. Not to mention all three keys have a history of prior use with many other WASD setup FPS.

With all that said, I’m sure you all might be feeling the possibility of some of the emergent gameplay that Fast Mapping custom parser commands would allow in a 3D first-person world. The problem is we’re drawing a blank on how to demonstrate the new possibilities of this setup. This is why we’re trying to avoid making a Doom game with occasional parser commands. We also want to avoid making Zork that you happen to navigate with the Doom engine.

I know it’s a big ask, but would anyone be willing to spitball some ideas/suggestions? Good, bad, whatever is fine. We’re just drawing blanks at the moment.

Thanks again for humoring this.

10 Likes

I would entertain a third option for typing, which is to simply slow the game down. I think it would keep the possible tension (seeing enemies making their way to you, maybe 3rd-person view), but you don’t have infinite time. You get, maybe 8 seconds to type a command as you see a progress bar of sorts decrease rapidly. Also, it wouldn’t slow things down too much, if you get my meaning.

To avoid having the feature be abused, I would allow the parser input (~) to be called up any time. However, only after 5 seconds or so (after the last command entered) would it allow for “bullet-time” typing. Otherwise, it still allows you to type, but with the world running at full speed.

The concern I have with the other two options is: (1. real time) dying a lot while trying to execute a command and having to know beforehand what to cue up in the command shortcut keys or (2. when paused) players lose the tension and are less panicky and use it as a pause feature to think of tactics in the middle of a fight.

3 Likes

I’d imagined doing something like that except that, rather than mapping commands to a key, the prompt would stay on the screen while you moved, so it would always be the enter key that you’d be hitting mid-action.

Anyway I think System Shock is kind of a model for “what if Doom had more affordances”. I’d probably do a Thief demake.

5 Likes

This is a good suggestion, but I have no idea how I would even start to implement this. Consider it noted as a good idea and a pin put in it. Although, I’d still like to allow fast mapping of parser commands even with a bullet time option as it allows preplanning and strategy.

With that suggestion aside, do you have any other thoughts? Especially interested in any puzzle/gameplay loops that fast mapping and/or just parser commands would allow that could be fun to explore.

3 Likes

We haven’t gotten to it yet (again, very very rudimentary demo) but the thought was a call-up key. As things are in vanilla Doom, hitting the Enter key in gameplay calls up the last message in the top left of the screen. We were thinking we could list the three mapped commands for a second or two in the top right by the same function. Thus, tap Enter to glance at the which commands are mapped to which key at the moment. I originally had something very close to what you’re suggesting, but my partner from ZDoom pointed out the advantages of key mapping and the flexibility of having a list of multiple commands.

As for System Shock, tbh, I’ve never played it, although I’m familiar with the series from a cultural osmosis point of view.

3 Likes

IMO there’s only one thing to do with this (really neat-sounding!) approach: answer the age-old plea, “if only you could talk to the monsters.”

OK, this is mostly a joke, but since I think the Doom engine is likely not well-suited to medium-dry-good manipulation and implementing logic puzzles in Doom just for the sake of it would mostly just have novelty value, there could actually be something here! Like, per the Edge review, you could implement a keyword-based dialogue system a la Ultima that would allow you to befriend certain factions of enemies, or betray them, in a way that would have an impact on the gameplay (I think monsters can be set hostile to each other, right?) Or dialogue could reveal secrets or give clues…

EDIT: System Shock and Thief are both classics – definitely worth playing today! – but I’m not convinced either provide much of a north star on what to do with a text parser, as their mechanics are very focused on movement and weapon/tool use which typing would only slow down.

4 Likes

That is a solid suggestion. It complicates the hell out of things, but it’s probably worthwhile.

This is the crux of the problem. There’s something new to be done here and creating funky Portal in Doom isn’t it.

4 Likes

Most games have a USE button right beside the KILL button already so what is it that makes this more interesting? (And you definitely don’t want to be playing guess the verb in the middle of a firefight, I think.)

If the game were to slow down a bit (like Resident Evil zombie speed), the game could be more of a 3D adventure and lean on puzzle tropes of regular text adventures. I don’t immediately see how to merge fast-paced game play with the methodical nature of parser commands, thus maybe slowing down the game might promote more ideas.

One game that I wish was a 3D parser adventure is Firewatch. What a fantastic adventure that was!

You have something that’s worth exploring, for sure. I’m sure some solid ideas will come once the concept has settled into people’s minds for a bit.

2 Likes

Yeah, that’s part of the issue. First person 3D games have had a long time to iterate on this and really stretch this to its logical limits. re-implementing these same functions as a less intuitive parser design design seems like a bad way forward. I’m ruminating on what can’t I do in such a model already that might be fun to explore.

True, but I had some thoughts on that. Let me quote another bit first:

I was thinking perhaps an interaction between commands. Like (off the top of my head) having one slot have “trip” and another have “Handcuff enemy” (assuming you had handcuffs in your inventory). You could then go into a room, run up and trip an enemy and then quickly handcuff them before they quickly stand back up. The rapid back and forth between these two commands in active gameplay would mean having them premapped to two different keys would make this as fast as two quick button presses. You could then try this, and then the other enemies turn on and kill their restrained fellow, denying you a prisoner to interrogate. You would then need to try again, but purposely either eliminate all but 1 enemy in an area, or defend your recently restrained enemy from others after restraining them. There are definite problems with the scenario I just painted, but I think it paints the sort of interplay between quick unique commands that could exist. I just can’t figure out how to apply it.

With that said, I do agree that slowing the game down, or at least having varied pacing between more rapid intense sections, has some value here.

I’ve watched an overview on YouTube but I’ll have to make time to play it.

I hope so, lol, because I’ve been chewing on this for awhile and I keep running into a brick wall mentally.

2 Likes

I guess I just feel like the dog chasing the car who unexpectedly actually caught it and now isn’t certain what exactly they hoped to do at this point. I know there’s potential, but I guess I assumed the way forward would be obvious, but it has proven not to be so.

3 Likes

Some games allow you to map shortcuts to the d-pad on the controller so creating your own custom shortcuts sounds pretty neat. If you kept it VERB + NOUN and the player pre-mapped it all before a fight, I wonder what interested actions you could do in the middle of a fight? I think the fun would be from all the undocumented things players could discover in a 3D shooter backdrop. The discovery aspect would be quite enticing, I think.

I keep seeing a lot of item related tactics though and I wonder how to get out of that mindset. For example, many games already let you map items to the d-pad so essentially, they are already a “parser-shooter” limited to USE ITEM commands.

The command text itself could be shown in text in the middle of the screen when the command is invoked. (TRIP ENEMY) That would make it feel more connected to a text adventure. I would also encourage good amounts of terse text descriptions when examining things; a text box in the middle would suffice. As long as you bring as much text adventure elements to the 3D shooter, I think the idea will be presented well.

3 Likes

See what I mean! It’s deceptively harder than it looks!

I think that’s well said. Keeping it more verb oriented and less object oriented might be more fruitful. Thanks for saying that. I am excited about bringing the discovery aspect of parser games to a FPS.

Oh, good point! Noted, thank you!

This was something I was imagine as a discovered function. Like, you could simply look around like any game, but you could try > examine door or > look at Demon or > smell blood and receive a text response of that action appear onto the screen, allowing more depth than many would assume is present in the game. Ostensibly, you could play the entire game without examining or licking anything, but these would allow for additional information and hint at potential other options/solutions/etc.

2 Likes

Exactly. This isn’t your grandpa’s Doom! You’re going to find clues and discover secrets well beyond the “bumping into every wall you can” standard fair.

If you go “Full Demon” mode, you’ll discover clues to open a portal to another dimension by harvesting things from corpses that you had no idea were even useful. Need the crushed bone powder from a Lost Soul?

Lostsoul_sprite

I guess you could skin them and dry them out near a source of heat, then crush them with a hammer? Who knows, but now you are given a goal and a seemingly endless path to achieve that goal. That’s what I like about text adventures; goal-orientated puzzles. It wouldn’t be such a bad thing for players to discover things years after the game’s release.

3 Likes

ahahaaaa! I love it. That is definitely in spirit. I think you’re getting the vibe. I don’t want to lose the spirit of the FPS with this. FPS’s have strengths and I want to leverage the strengths of both mediums instead of simply making a fancy parser game.

Agreed and this is definitely the intent. “Wait, what!? You can do that!?!?” is a reaction I would love to pop up over and over through either accidental discovery and/or sharing amongst players.

3 Likes

My inclination would be to remove objects from the parser entirely. You have a dozen or so verbs to choose from, and they operate on whatever’s under your reticle when you activate them. So you’re choosing what particular verbs you want to have access to, a bit like choosing your weapon loadout in a classic FPS.

3 Likes

So, we had a discussion about this. We were weighing the benefits of having it be location triggered, like being near enough to something, or targeted on the reticle. There’s pros and cons to both and we were contemplating being able to switch back and forth between both modes, but that seems like a layer of confusion for minimum benefit. We figured location based had the least likelihood of missing, if somewhat less precise. Also, he said this version was easier to implement. The other had to do with hidden invisible custom weapons associated with various verbs, which is apparently a can of worms. I don’t know enough to argue the point, tbh.

The point about removing/minimizing objects and focusing on more verb based interactions seems like a good one fwiw.

Edit: Okay, so the location based thing sorta works the same way doors do, in the kindly dumbed down for pinkunz explanation I got. Like, you can look at a door from across the room and press space and nothing, but if you get next to the door and press space, presto! This would utilize the same sorta idea. (I’d also like to acknowledge I wouldn’t be anywhere near as far as I got without the help, so this is definitely me standing on someone else’s shoulders fwiw. I would have been months or more figuring this all out.)

2 Likes

Quadrilateral Cowboy has this with a command prompt, including the ability to map certain actions to a key.

IIRC it is a single ‘blink’ key, and the fact that you can blink more than once allows you to map more than one action to that key. That could help you address the key binding issue. I guess it would be possible to map actions to mouse gestures, too.

Additionally: in QC, you control devices — not the player character — through the command prompt.

That avoids some complications your game might have. For example, players will probably find it more useful to tell a fixed gun turret to shoot for five seconds than to tell their character to run for five seconds (assuming that your game would allow the player to assign ‘run’ to a key).

QC is also moddable. Unfortunately that never really took off.

2 Likes

I like this idea… In short, it looks like having a normal FPS game with more puzzly elements, and maybe not ~ because you’d have to push shift for that on some laptops (eg. mine), so like tab? (That’s too nitpicky.)

But like you push a button during the game and a bar is toggled (I’d say having some text output area always on screen might be useful). Slower time limits but it gets harder, and (to be super nitpicky) use TADS’s autocorrect features, since it’s a pain to get that one misplaced letter and die.

I really like this. But split up USE into GET SHOVEL, DROP SHOVEL, DIG WITH SHOVEL, HIT ZOMBIE WITH SHOVEL, PRY OPEN DOOR WITH SHOVEL…

3 Likes

Anyone remember Strife?

It used the original DOOM engine. It didn’t have a parser or puzzle elements, but it was much more RPG-like, including an inventory and friendly NPC’s with quests.

4 Likes

The aspect of it I’m thinking of never really made it into the cultural osmosis view, and that’s the free mouse cursor (as opposed to mouselook), along with the fairly complicated posture system. Of course first-person RPGs were doing the free mouse cursor thing too, but System Shock brought it all together to make a very physical, leaning around corners, crawling, fiddling with relatively complicated objects game. It just had more affordances than a Doomclone, and deployed them in a more adventurey way than RPGs. Although the choice to make it playable using only the mouse limited how freely arcade action could mix with clicking on stuff in the world.

What I think is interesting about putting a parser into an action game is that it makes it possible to interact with things that the engine isn’t really capable of representing. You’re adding another layer to the world model. In a text adventure, you move through space on a room level, and interact with objects on a finer level. In Doom there’s more nuance to the movement level, but the object interaction level isn’t really included. This would be a way to “zoom in” textually on things that couldn’t really be discerned or manipulated in Doom.

I think it’s fairly common in older RPGs to “zoom in” in this way, although they don’t model the level in detail. I’m also thinking of a moment in Cave Story where you find a small object in the grass (a ring or a key or something). What if, instead of just walking past it and being told you picked it up, you had to go find a stick and explicitly fish it out of a hole or something? I think you’d have access to some moods you can’t create just by printing, “You found a ring!”

Really the interactions could be fairly standard adventure stuff. The difference would be that rather than getting from interaction to interaction via NSEW they would be connected by arcade maneuvering. So you could ask, what kind of actions can you come up with that will motivate non-standard arcade maneuvers? In Doom your movements are governed almost entirely by tactical needs, with the occasional switch that must be reached. It can’t go much beyond that because it can only use level features the engine is capable of representing. A parser would be a way to abstract everything the engine doesn’t support well, tying it in to the engine by determining scope from position in the engine.

Just making the player type under pressure is fairly novel too.

3 Likes