Game Development Community

dev|Pro Game Development Curriculum

"Vespers3D"

by Rubes · 12/30/2005 (6:20 pm) · 6 comments

So after deciding in my last .plan to pursue a new genre of computer gaming, 3DIF (3D Interactive Fiction), I've been working in bits and pieces trying to incorporate a text parsing engine into TGE. Progress has been slow but rewarding. Designing a text parsing engine is not exactly the kind of thing I'd wish on a person, but at least I don't have to reinvent the wheel. The INFORM parsing engine is widely used and refined, and although I can't just port the code directly over, it does make life tremendously easier.

Mostly, I've been working on text parsing, the interface between nouns and world objects, and different ways of adapting concepts from Interactive Fiction into the 3D world. For example, the concept of "scope" is a big one in IF. It roughly refers to the compass directions, what you're carrying, and what you can see. Usually, that means the objects that are in the same "room" as the player. But in the 3D world, "rooms" are not quite as concrete as in the IF world. Which objects fall within this definition? All objects within a particular range? And doesn't that range differ depending on the action the player wants to perform? Examining an object could be done at a fair distance, while taking an object might not. Lots of issues like that to resolve.

In my last .plan, I talked about working towards a "proof-of-concept" minigame, a small example of 3DIF that would demonstrate some of the many possibilities of this new genre. I am happy to now report that the content of this minigame has been settled.

For this minigame, I am enlisting the help of Jason Devlin, author of the IF game "Vespers". Vespers received first place in the 2005 IFComp, the annual competition for short text adventure games. All of this year's contestants (along with all necessary adventure interpreters) can be found at the official IFComp download site. The Vespers game file can be found here. Even if you're not interested in this type of project, I urge you to give Vespers a try. It's an outstanding IF game, and since it's part of the IFComp, it can be completed in two hours or less!

As one reviewer described it:

Quote:
Vespers is a murder mystery. You are the high priest of a monastery, close to a village named Rovato where a deadly plague has infested the populace. You've closed the gates of the monastery to the dead and dying in the hopes of saving yourself and your fellow monks...but to no avail as the plague has reached you all the same. The game begins with all of the monastery's monks beginning to show signs of the plague. The future looks bleak.

The murder mystery side of things comes about before long, with the monks at the monastery turning on each other. Have they been driven mad by the plague? Or is something more sinister at work?

So this will become the basis for my "proof-of-concept" minigame, which will be called "Vespers3D". Once the basics of text parsing are incorporated into TGE, then work will begin on incorporating the specific aspects of Vespers into the game. The goal will be to eventually have a fully working 3DIF version of Vespers (or at least part of it, perhaps the first day's action). This "proof-of-concept" will then be distributed to the public, with my target right now being IGC 2006, if I'm incredibly lucky.

There is now a project page for Vespers3D, and soon I'll be looking for some help with it for anyone interested. Specifically, I'll be looking to see if there are any modellers out there willing to lending a hand.

I'm excited to see where this project leads.

Oh, and for those who like screen shots, here's one that shows some exciting text parsing at work:

homepage.mac.com/rubes/sample.jpg

#1
12/30/2005 (7:06 pm)
I think this is a really cool idea, mainly because of my love for IF. But for this, I would initially suggest a PoC using a simpler ray-tracing engine such as a base Wolf-3D-esque tracer. And rather than "rooms", utilize "perspective traces". That way, anything you raytrace along a 2D line will be included in the current perspective. I would also lock the traditional NSEW directions into a Bard's Tale format (though having the ray-trace overhead and utilize angle degrees for NW/NE/SE/SW in extension and then for full control of what is held within perspective and ray distance. Just to simplify and then extend.

I thought once about creating a tutorial for TorqueScript called BeyondTorque, which was a port of Beyond Zork to TGE using the GUI. I had map making in place, but text-parsing made me want to beat someone to death with a keyboard.

This just seems like a cool project. Good luck!
#2
12/30/2005 (8:33 pm)
Thanks, David, your comments are always appreciated. I have to say, though -- embarassingly enough -- I think I read your first paragraph about four times and I still have practically no idea what you're talking about. :-)

I agree, text parsing is an evil practical joke. If it wasn't for INFORM (or perhaps TADS), there's no way I'd try this. INFORM itself is difficult to piece apart, especially because it's written in some language I've never seen before, but the concepts are all there. Some of them are horribly complex. However, INFORM was written as an adventure creation system designed to allow and/or capture as much variation and creativity as possible, which contributes to most of its complexity. I'm not designing this to be a generic system, so a lot of that complexity can presumably be avoided. I hope.

I really have no idea where this project will lead. But with a really good IF story backing it up, I think it will be really interesting to find out.
#3
12/31/2005 (5:46 am)
I used inform many years ago, great little IF compiler. For anyone interested in making an IF game for old times sake (and as Rubes mentions theres still an active following with yearly comps) have a look at the Inform Beginner's Guide www.inform-fiction.org/manual/about_ibg.html as well as the official inform manual which can be downloaded along with inform from www.inform-fiction.org/

@Rubes: I know you're looking through inform for text parsing, have you considered researching any extra parsers? For example Phantasmal is a mud lib for DGD which has pretty good text parsing. There are also several other muds with varying levels of text parsers. Although I pretty much agree that inform has a great parser, it just might be worth checking a few more anyway.
#4
12/31/2005 (7:41 am)
@Gary: Interesting thought, and I agree. I did look at a couple of parsers to begin with, but I stuck with specific text adventure compilers like INFORM and TADS, since those are the ones used most in the IF community. I hadn't even considered MUDs, but that's a good idea.
#5
12/31/2005 (8:19 am)
I'd also love to know what David means... it sounds exciting but I have *no idea* what he's on about.

Ian
#6
12/31/2005 (9:50 pm)
MudOS has some fairly advanced verb parsing code, and it's written in C. The Lima mudlib makes extensive use of this verb parsing functionality, and might be useful for educational purposes.