Wednesday, September 14, 2011

What Have We Here?

As I was really trying to recapture the whole Adventure: Colossal Caves “experience”; I felt it was necessary to include as much of the text dialog that was part of the original game as I could.  I was originally considering using a conversation with a Narrator to provide the various descriptions, as it would keep things together (the conversation file would contain all the descriptions); but I really didn’t like the “Third Party” aspect that lent to the game.  So, I opted to use “Floating Text” above the Players toon to provide the various descriptions.

The real disadvantage is that since the text is generated as needed, it is scattered all over the place in various scripts.  So, making changes is not as convenient (now, which script created that line?); however, for the most part the “text” was being taken from the original game, so the amount of editing at a later time should be minimal.

The area descriptions are probably the most important, and they often change to a shorter version if the Player has already been to that area before.  In the text game, it also listed any objects that were in the area; however, as the objects are readily seen, I felt that was no longer necessary.  I placed the area descriptions in the area’s OnEnter event slot.  As the first three characters of the area’s name were a unique 3 digit number, I was able to use that number in a “switch” statement to keep all the area descriptions and any code that needed to be executed upon entering an area in one script that although lengthy was easy to quickly located the area of interest as “case ###:”, where ### was the Area Number.

Within each “case ###:” statement was a simple check to see if the Player had been there before:  if not, they got the full description and a variable was set indicating they had been there; otherwise they got an abbreviated description, pretty much like in the original game.

As I continue to build and add to the module, using the “Floating Text” seems the correct way to do it.  Everything gets recorded in the chat log and it has a nice smooth, clean feel to it, with everything behaving in a similar fashion.

Next: Making it Work.

No comments:

Post a Comment