Vespers3D: Living the Adventure
by Rubes · 10/16/2006 (1:34 pm) · 12 comments
Vespers3D - Living the Adventure
Recap:
Vespers3D is our attempt to bring old-school text-based adventure games (interactive fiction) into the world of real-time first-person 3D -- a new genre we are calling 3D/if (3D interactive fiction). It is based on Vespers, Jason Devlin's fantastic text game that won numerous awards this past year from the IF community, including Best Game at the IFComp'05 and the XYZZY awards this past March. Vespers provides a compelling setting and a powerful storyline for a game that will, in the end, be somewhat like Myst with a fully interactive 3D environment and good old-fashioned text command input (and output).
It's been a few months since my last .plan, so I thought I'd give an update on our progress.
New Company Name
For starters, we now have a final name for our company. Originally, we chose the fairly utilitarian 3D/if Designs, but after some further investigation and discussion, we decided on Orange River Studio. The name is something of an homage to the original adventure game ("Colossal Cave") and its "Orange River Chamber" containing the little bird:
"Orange River" also happens to be a nice description of the awesome slot canyons here in Utah, so I like to think of it as a tribute to that, as well. Better logo to follow.
Game Progress
Thankfully, I have had more time to focus on things other than the text parser, which seems to be pretty stable right now as long as I don't mess with it. As a group, we have been spending time predominantly on appearance and interface, and the beginnings of some real content.
Interface
One of the tricky things about incorporating text input into an FPS-style game is to try and make it as simple as possible for the players to provide that input. It's likely that we won't find a lot of people immediately excited about having to move between the mouse and keyboard, and some of the feedback I got from the last Utah Indie Game Developers meeting indicated this. So I've tried to make things easier for the player through custom command input.
Single key commands are pretty straightforward...for the most part. Right now I'm basically just assigning certain common commands to specific keys. O is assigned to OPEN, so to open a door all you need to do is click on the door with the mouse and hit the O key. The I key is assigned to INVENTORY, X is assigned to EXAMINE, and so on -- commands familiar to most text IF players. That's easy enough. I've thought about doing more (allowing players to define any command for any key, including entire strings assigned to individual keys), but I think that was the first warning sign of feature creep. I decided to keep things simple for the player. After testing, if players are craving more, I could then add it in.
I've already done this to some degree with the mouse buttons and TAB key. Right now, the left mouse button is used for selecting objects, but that leaves the right and middle mouse buttons free for custom commands. I've already implemented text commands for setting these: SET RIGHT BUTTON TO [command] or SET MIDDLE BUTTON TO [command]. At this point, I just allow the player to choose from a small subset of commands like INVENTORY, LOOK, EXAMINE, and TAKE. I've also done the same for the TAB key, which is handy for making commands like INVENTORY quick and easy.
Setting the buttons and tab key with text commands
Loading and Opening Sequence
I've also been spending time cleaning up and customizing the loading and initialization process when the game is launched. I began my work with the starter.fps mod, so that means going back and removing of a lot of the existing framework. There is no mission selection in Vespers3D; once the game is launched, I need it to go through the splash screens and right to loading the main mission. Once everything is loaded, then we can have some fun with a nice opening title sequence and main menu.
I had always had a vision for an opening sequence: a camera would emerge from behind the mountains to reveal the monastery from a distance, and the title image and main menu would appear over this as the camera panned around high above the monastery.
The monastery emerges from behind the mountains as the game opens
Implementing this was a great learning experience for me, since it really forced me to finally become comfortable with GUIs, pathed cameras, path design (oh that wacky spline control), screen fading, GUI fading, and who knows how many other things. We still need to start populating the surrounding terrain (what I would give for that Forest Pack), but so far I'm really pleased with the result. It has a nice cinematic feel to it as the camera circles around.
The main menu overlies the fly-by opening sequence
Most of the main menu content is still absent. But, when the player selects "Start Game", we can proceed directly into the game without another loading screen. We first play another brief camera sequence as the introduction to the game; it includes an opening monologue by the player character that sets the tone for the game. The camera sequence finishes by moving through the window to the player's bedroom, where it then fades into the control camera attached to the player and the game begins.
Monastery
N.R. Bharathae continues his incredible progress on the monastery, and specifically on the church and its entry portal. In addition to his talent for modeling and textures, he has a great flare for lighting and color. The lighting of the church portal, as well as the interior lighting in the different parts of the monastery, really does an amazing job setting the game's atmosphere.
A view of the church from the cloister
Once the colonnade around the cloister is implemented, most of the main work on the monastery should be close to done except for details and clean-up. Then it's on to populating the structure with the environmental DTS items that will make it come to life, such as church pews, beds, tables, and so on. Another long road ahead.
Other Content
Most of the rest of my focus has been on implementing the basic content of Vespers. One of the most common commands used in text IF games is the LOOK command, which describes the player's surroundings and provides information about room contents and exits. At first, I thought this command would be unnecessary in a 3D game; after all, if you want to look around, just look around! But then Jason convinced me that there really is a benefit to including it. At its most basic level, the LOOK command is informational, but it's hard to overlook the narrative components to the output -- much more information can be conveyed than just contents and exits, some of which can't be conveyed by images alone.
LOOKing in the kitchen
While images, lighting, and music can really do a nice job setting the tone for a game, sometimes the written word can provide a certain depth that the others cannot achieve.
I've gone through similar processes for commands like LISTEN and EXAMINE, and even SMELL; although they are not vital to completing the game and rarely offer clues to the game's solution, they still help provide an extra dimension to the game. Other commands I've been implementing include ENTER, SEARCH, EAT, and SLEEP: commands that generally require little visual/3D response, mostly just a text response.
One interesting command that has brought up some discussion is the LOOK UNDER command. Text IF players love the LOOK UNDER and LOOK BEHIND commands; there's always a sense that goodies are hidden under or behind things. Even if that's not the case, you still need to account for players wanting to look around. But what about implementing this in 3D?
There are probably different ways to approach this. One is to implement a crouch position for the player, and to force the player to use that in place of the LOOK UNDER command -- just look under the bed yourself to see if anything is there. But again, is there a place for text output in this case? Certainly you can do more than just respond with "You find nothing of interest", like in the text version of Vespers:
Nothing spectacular, but it is consistent with the rest of the game and is more eloquent than your basic default response. How, then, to implement this? Provide a crouch position and allow the player to type LOOK UNDER [object]? What if they type LOOK UNDER while not in the crouch position? What about objects that you can look under, but the game doesn't allow you to crouch low enough to actually see under the object? Ah, the continuing adventures of translating text into 3D.
The Road Stretches On
We still have a long road ahead of us, but it's fun to see the game start to really evolve from a generic text/3D hybrid engine into the actual implementation of a game and it's story.
The Utah Indie Game Developers meeting is coming up this week, so I'll be showing the progress we've made since the last meeting a couple of months ago. Aside from that, we have a tremendous number of tasks to work on.
Jon Jorajuria is helping us with sound effects, speech, and music, and hopefully we'll have some of that to show off soon, especially the opening monologue.
N.R. Bharathae continues to finish up work on the monastery, with some big challenges ahead including the main stained glass windows and the church ceiling frescoes, both of which actually change appearance over time during the course of the game. And then, of course, comes the task of populating the monastery with all of the other necessary objects and decorations, and there's a nice long list of those.
But perhaps the most challenging task of all is one that hasn't been addressed yet: implementing the NPC characters, including their variety of animations. This is something that I would like to start soon, but we currently don't have any character modelers/animators on our team. If this project sounds intriguing to anyone with some experience (or looking to gain experience) in character modeling and animation, please do contact me at the e-mail address in my profile. We would love to add more people to the team, and would love to have more people use this project as a means of showcasing their talent!
Recap:
Vespers3D is our attempt to bring old-school text-based adventure games (interactive fiction) into the world of real-time first-person 3D -- a new genre we are calling 3D/if (3D interactive fiction). It is based on Vespers, Jason Devlin's fantastic text game that won numerous awards this past year from the IF community, including Best Game at the IFComp'05 and the XYZZY awards this past March. Vespers provides a compelling setting and a powerful storyline for a game that will, in the end, be somewhat like Myst with a fully interactive 3D environment and good old-fashioned text command input (and output).
It's been a few months since my last .plan, so I thought I'd give an update on our progress.
New Company Name
For starters, we now have a final name for our company. Originally, we chose the fairly utilitarian 3D/if Designs, but after some further investigation and discussion, we decided on Orange River Studio. The name is something of an homage to the original adventure game ("Colossal Cave") and its "Orange River Chamber" containing the little bird:Orange River Chamber
You are in a splendid chamber thirty feet high. The walls are frozen rivers of
orange stone. An awkward canyon and a good passage exit from east and west
sides of the chamber.
A cheerful little bird is sitting here singing.
> THROW LANTERN AT BIRD_"Orange River" also happens to be a nice description of the awesome slot canyons here in Utah, so I like to think of it as a tribute to that, as well. Better logo to follow.
Game Progress
Thankfully, I have had more time to focus on things other than the text parser, which seems to be pretty stable right now as long as I don't mess with it. As a group, we have been spending time predominantly on appearance and interface, and the beginnings of some real content.
Interface
One of the tricky things about incorporating text input into an FPS-style game is to try and make it as simple as possible for the players to provide that input. It's likely that we won't find a lot of people immediately excited about having to move between the mouse and keyboard, and some of the feedback I got from the last Utah Indie Game Developers meeting indicated this. So I've tried to make things easier for the player through custom command input.
Single key commands are pretty straightforward...for the most part. Right now I'm basically just assigning certain common commands to specific keys. O is assigned to OPEN, so to open a door all you need to do is click on the door with the mouse and hit the O key. The I key is assigned to INVENTORY, X is assigned to EXAMINE, and so on -- commands familiar to most text IF players. That's easy enough. I've thought about doing more (allowing players to define any command for any key, including entire strings assigned to individual keys), but I think that was the first warning sign of feature creep. I decided to keep things simple for the player. After testing, if players are craving more, I could then add it in.
I've already done this to some degree with the mouse buttons and TAB key. Right now, the left mouse button is used for selecting objects, but that leaves the right and middle mouse buttons free for custom commands. I've already implemented text commands for setting these: SET RIGHT BUTTON TO [command] or SET MIDDLE BUTTON TO [command]. At this point, I just allow the player to choose from a small subset of commands like INVENTORY, LOOK, EXAMINE, and TAKE. I've also done the same for the TAB key, which is handy for making commands like INVENTORY quick and easy.
Setting the buttons and tab key with text commandsLoading and Opening Sequence
I've also been spending time cleaning up and customizing the loading and initialization process when the game is launched. I began my work with the starter.fps mod, so that means going back and removing of a lot of the existing framework. There is no mission selection in Vespers3D; once the game is launched, I need it to go through the splash screens and right to loading the main mission. Once everything is loaded, then we can have some fun with a nice opening title sequence and main menu.
I had always had a vision for an opening sequence: a camera would emerge from behind the mountains to reveal the monastery from a distance, and the title image and main menu would appear over this as the camera panned around high above the monastery.
The monastery emerges from behind the mountains as the game opensImplementing this was a great learning experience for me, since it really forced me to finally become comfortable with GUIs, pathed cameras, path design (oh that wacky spline control), screen fading, GUI fading, and who knows how many other things. We still need to start populating the surrounding terrain (what I would give for that Forest Pack), but so far I'm really pleased with the result. It has a nice cinematic feel to it as the camera circles around.
The main menu overlies the fly-by opening sequenceMost of the main menu content is still absent. But, when the player selects "Start Game", we can proceed directly into the game without another loading screen. We first play another brief camera sequence as the introduction to the game; it includes an opening monologue by the player character that sets the tone for the game. The camera sequence finishes by moving through the window to the player's bedroom, where it then fades into the control camera attached to the player and the game begins.
Monastery
N.R. Bharathae continues his incredible progress on the monastery, and specifically on the church and its entry portal. In addition to his talent for modeling and textures, he has a great flare for lighting and color. The lighting of the church portal, as well as the interior lighting in the different parts of the monastery, really does an amazing job setting the game's atmosphere.
A view of the church from the cloisterOnce the colonnade around the cloister is implemented, most of the main work on the monastery should be close to done except for details and clean-up. Then it's on to populating the structure with the environmental DTS items that will make it come to life, such as church pews, beds, tables, and so on. Another long road ahead.
Other Content
Most of the rest of my focus has been on implementing the basic content of Vespers. One of the most common commands used in text IF games is the LOOK command, which describes the player's surroundings and provides information about room contents and exits. At first, I thought this command would be unnecessary in a 3D game; after all, if you want to look around, just look around! But then Jason convinced me that there really is a benefit to including it. At its most basic level, the LOOK command is informational, but it's hard to overlook the narrative components to the output -- much more information can be conveyed than just contents and exits, some of which can't be conveyed by images alone.
LOOKing in the kitchenWhile images, lighting, and music can really do a nice job setting the tone for a game, sometimes the written word can provide a certain depth that the others cannot achieve.
I've gone through similar processes for commands like LISTEN and EXAMINE, and even SMELL; although they are not vital to completing the game and rarely offer clues to the game's solution, they still help provide an extra dimension to the game. Other commands I've been implementing include ENTER, SEARCH, EAT, and SLEEP: commands that generally require little visual/3D response, mostly just a text response.
One interesting command that has brought up some discussion is the LOOK UNDER command. Text IF players love the LOOK UNDER and LOOK BEHIND commands; there's always a sense that goodies are hidden under or behind things. Even if that's not the case, you still need to account for players wanting to look around. But what about implementing this in 3D?
There are probably different ways to approach this. One is to implement a crouch position for the player, and to force the player to use that in place of the LOOK UNDER command -- just look under the bed yourself to see if anything is there. But again, is there a place for text output in this case? Certainly you can do more than just respond with "You find nothing of interest", like in the text version of Vespers:
>LOOK UNDER BED Mould creeps from the blackness, but you find nothing else.
Nothing spectacular, but it is consistent with the rest of the game and is more eloquent than your basic default response. How, then, to implement this? Provide a crouch position and allow the player to type LOOK UNDER [object]? What if they type LOOK UNDER while not in the crouch position? What about objects that you can look under, but the game doesn't allow you to crouch low enough to actually see under the object? Ah, the continuing adventures of translating text into 3D.
The Road Stretches On
We still have a long road ahead of us, but it's fun to see the game start to really evolve from a generic text/3D hybrid engine into the actual implementation of a game and it's story.
The Utah Indie Game Developers meeting is coming up this week, so I'll be showing the progress we've made since the last meeting a couple of months ago. Aside from that, we have a tremendous number of tasks to work on.
Jon Jorajuria is helping us with sound effects, speech, and music, and hopefully we'll have some of that to show off soon, especially the opening monologue.
N.R. Bharathae continues to finish up work on the monastery, with some big challenges ahead including the main stained glass windows and the church ceiling frescoes, both of which actually change appearance over time during the course of the game. And then, of course, comes the task of populating the monastery with all of the other necessary objects and decorations, and there's a nice long list of those.
But perhaps the most challenging task of all is one that hasn't been addressed yet: implementing the NPC characters, including their variety of animations. This is something that I would like to start soon, but we currently don't have any character modelers/animators on our team. If this project sounds intriguing to anyone with some experience (or looking to gain experience) in character modeling and animation, please do contact me at the e-mail address in my profile. We would love to add more people to the team, and would love to have more people use this project as a means of showcasing their talent!
#2
Seriously though, game looks like shaping up very nicely, you are encountering set of design problems I dont think anyone has encountered before and seem to handle them well, hats off. A very emphatic "best of luck" to you guys.
10/16/2006 (4:40 pm)
Oooh, ooh, not fair, you`ve got me all agitated about Vespers again! :)Seriously though, game looks like shaping up very nicely, you are encountering set of design problems I dont think anyone has encountered before and seem to handle them well, hats off. A very emphatic "best of luck" to you guys.
#3
10/16/2006 (4:42 pm)
I really like this idea. A mix of classic and new. Can't wait for this to come out. Interested how you get the parser into TGE
#4
10/16/2006 (8:03 pm)
Awesome progress, thanks for posting regular blogs. It's great to see this come togeather. IF is a perfect niche for indies. There's not a crowd, but there's a market! Keep posting, this is great stuff.
#5
10/17/2006 (2:14 am)
Sounds great to me. I was just thinking of Zork the other day.
#7
10/17/2006 (5:47 am)
Once again just dropping in to give you my support - this is sounding better and better every time you post a new blog ;)
#8
The game looks like it will rock :]
10/17/2006 (5:48 am)
In NWN, you could right-click on something, and a circle of commands would pop up. A menu system like this seems like it would lend itself very well to your game. This would also allow players to keep their hand on the mouse if they like. The game looks like it will rock :]
#9
@Dennis: Thanks...The parser is hooked into TGE's chat system. I use the basic ChatHud structure for input and output, but instead of sending the messages (commands) to other clients, I send them to the parser routines.
@Unsung: It's a good idea, and we've thought about that...it gets back to the long (and long-standing) argument about the best method for command input in an adventure game (text or otherwise). Providing menus (text or icon-based) can make things easier on the player, but I think it also stifles creativity -- both in the developer and the player. It restricts the different verbs you can use in the game, and it takes something away from the player's task of trying to figure out for himself what he's supposed to do next. On the other hand, that opens things up for "guess the verb" problems. I think it's a trade-off either way.
A real challenge is going to be creating action-oriented scenes that still allow the player enough time to think about the situation and to type a command.
@Joshua: Thanks, man, that's what we're all about. Orange River Studio...all niche, all the time.
10/17/2006 (8:23 am)
Thanks for all the great support, everyone! It really helps us to feel like we're on the right track.@Dennis: Thanks...The parser is hooked into TGE's chat system. I use the basic ChatHud structure for input and output, but instead of sending the messages (commands) to other clients, I send them to the parser routines.
@Unsung: It's a good idea, and we've thought about that...it gets back to the long (and long-standing) argument about the best method for command input in an adventure game (text or otherwise). Providing menus (text or icon-based) can make things easier on the player, but I think it also stifles creativity -- both in the developer and the player. It restricts the different verbs you can use in the game, and it takes something away from the player's task of trying to figure out for himself what he's supposed to do next. On the other hand, that opens things up for "guess the verb" problems. I think it's a trade-off either way.
A real challenge is going to be creating action-oriented scenes that still allow the player enough time to think about the situation and to type a command.
@Joshua: Thanks, man, that's what we're all about. Orange River Studio...all niche, all the time.
#10
10/17/2006 (8:45 am)
what if commands in the pop-up circle were defined by players themselves? when the game starts, there`s perhaps just one or two, like LOOK, something basic, but players can add new ones, so it becomes kind of customizable shortcuts interface?
#11
There are some interesting issues with that -- do you save the list of commands for individual objects? What about for different players? Does that mean compiling player profiles for each player?
I'm still considering doing that, although I think it's a level of customization that's a bit sophisticated for many users (especially new or casual players). Not that this is bad, it's just that some newer players might get confused by a system like that.
My goal right now is simplicity, but I do plan on asking testers to comment on having a system like that.
10/17/2006 (8:55 am)
@Nauris: That's an interesting idea, and I did think about something like that recently. I was thinking that right-clicking on an object might bring up a drop-down menu list of commands, like EXAMINE and TAKE, and the last entry would always be "Add..." so you could add whatever you want to the list.There are some interesting issues with that -- do you save the list of commands for individual objects? What about for different players? Does that mean compiling player profiles for each player?
I'm still considering doing that, although I think it's a level of customization that's a bit sophisticated for many users (especially new or casual players). Not that this is bad, it's just that some newer players might get confused by a system like that.
My goal right now is simplicity, but I do plan on asking testers to comment on having a system like that.
#12
12/09/2006 (12:33 pm)
Models are great (love this piece of architecture) . Two thumbs up and waiting for more. 
Torque Owner Mark Pilkington