Most of us here have probably played an old LucasArts style game, whether it be Maniac Mansion, Loom or Indiana Jones and the Fate of Atlantis. These games ran on LucasArt's SCUMM engine. If you're too young or just never had the opportunity to play such fine games, please check out the wikipedia article on SCUMM (and play a game or two if you can, they're awesome even by today's standards).
So I was playing the Indy game to help get me into the mood about the new movie and I thought: you know, this would be an interesting project/challenge in C#. To build a SCUMM-type game. A simple one, obviously, not going to try and create a massive 10 hour long puzzle game or go to quite the extent that LucasArts has.
But I'm having doubts on whether or not I know enough C# to do it. I thought I'd post some ideas here and maybe get some responses/ideas from the group.
First off, you'll need a command parser. I think that should be pretty easy to set up. Assign a value to each verb. For example "look at" could be value 0. "pick up" could be value 1. Etc. Store whichever action the user has selected in a 'current action' variable. Then I was thinking maybe every interactive object on the map could have its own value (a torch could be 0, a knife 1, or whatever, etc) and each object has a reaction to each of the various verb values. Looking at a knife will give you a description. Picking it up will store it into inventory. Trying to push it will give a message, etc.
That part I think I understand pretty well and probably wouldn't be too much of a pain to code. My main problem is storing this information without it being hard-coded (including the story and the state of the rooms). I'd rather not have to hardcode the game and would rather have a system <-> game file. That way the system could be re-used later
XML seems really cumbersome for what little I've had the chance to play/learn with it. But I'm not sure, even if XML is the only way, how to store it in that effectively and efficiently.
Another problem I have is graphics related. Specifically how to move a character across the map as you walk around and explore. But that I can play around with later. I'd rather get the system working and getting it saved correctly before I worry too much about that.
Thoughts? Ideas? If I can get the ball rolling I'll attempt to make a very short game (something like 5 rooms in length) and post the progress here. It really all boils down to if I can get the game file.