[Note from Amit: TADS is now available for free[1].]
Hi there, This is my second message to this delightful medium, which I have only recently discovered. The first one was about the report I am writing about the possibilities of using object-oriented programming in game design. I got some very useful replies to that one (thank you very much), so I'll try another one. My report should be finished near the end of November. After that I will choose a subject to finish my studies with and this will probably be the design of a new object-oriented system for adventure games. Now I can hear you say "Aren't there already several systems around?", to which I can reply "Hey, count the number of wordprocessors and desktop publishers". But this is not the point. The important thing is: this could be the first official study project on a university, dealing with adventure games (Well, at least the first at my university, that is). I already have some ideas of the different possibilities that I could come across: 1. The system should be as general as possible, of course, to allow the development of a multitude of adventure games (which will not be my job). Trivial. 2. Repeating descriptions of area's/objects/actions and answers of NPC's should be variable according to all possible systems: linear, circular, random, whatever. This should also be the case for the results of actions, position of objects, storyline, etc. 3. There should be virtually no difference between NPC's and the players character. NPC's should be able to communicate with each other (like in Lure of the Temptress), perform actions on objects, carry them, etcetera. 4. It would be nice to introduce a state of mind for all the NPC's. The number of games that make the NPC's forget that I kicked or insulted them within seconds are innumerable. The storyline could depend on how you treat other characters. Changing feelings of NPC's towards other characters could make the game very enjoyable. 5. NPC's should be able to know things of other characters. This could be only the face, also the name and job or even their actions up to a certain degree. Then it would be very interesting communicating with all of them. 6. I believe many game makers make the mistake of dividing the world in characters, objects and area's. This could make several situations almost impossible, like carrying dwarfs (a character could only carry objects), putting them in a box (an object could only hold other objects) or entering a new world that's inside a suitcase (area's hold objects, not vice versa). Everything should be possible. After all, that's what many adventure games are all about. 7. Maybe I will use aspects of RPG's like character statistics and combat issues, for RPG's and adventure games are very related to each other. (Well, that's what I think!) 8. The possibility of playing the game with several players controlling different characters should be left open. 9. I will have to deal with things like interpreters, multi-tasking, garbage-collection, etcetera, etcetera... 10. The most important thing about it is that I want everything to feel like "real". Like characters should not stay on one position during the entire game, as in many Sierra-like games, 'cause "normal" creatures don't do that. I just look around here and find that many object have their own characteristics. Some objects can be connected to each other, forming one new object, others perform actions periodically (at certain intervals or at random), and some objects change form when certain actions are performed on it. This could all be modelled in an object- oriented design. Now, finally, here's my question to the readers of this newsgroup. I am expected to find people that can assist me in my quest for information about this matter. My teachers know all about OOP but nothing about computergames. If I find people who have experience in designing/implementing adventure games/rpg's they could take a look at my results every now and then and comment on it. I will be open to any criticism and ideas that could lead to some nice results in this project. When I do not find enough help from outside this university, I'm afraid I'll be forced to find another subject to finish my studies with. === ARE THERE PROGRAMMERS OUT THERE WHO HAVE SOME EXPERIENCE === === IN MAKING ADVENTURE GAMES WHO WANT TO DEAL WITH THIS? === Several remarks: - My project will start in december and the final report should be finished in july 1993. - The primary focus will be on object-oriented design. The implementation could be carried out when there's any time left, or in my spare time after I'm graduated. - Some previously mentioned ideas may seem too ambitious for a one- person project, but that's just what I want to find out. Like a child before Xmas, I put anything on my wishlist not expecting it all to come true. - I love to get similar ideas from other people. Don't hesitate. - Of course, anyone who has given me useful information during this project, is entitled to receive a copy of my report next year. (So I'll have to write it in English, oh-ooh...) - I have some quite clear ideas on what I want to do, but it all depends on my teachers who may want to move this project into another direction or even replace it with another. So, don't say I promised you anything. Hope to read some nice replies, bye, Jurgen. =================================================================== | Jurgen Appelo | Delft University of Technology | | Hooikade 28 | Faculty of Technical Informatics | | 2627 AB Delft | Julianalaan 132 | | The Netherlands | 2628 BL Delft | | +3115-618668 | The Netherlands | | appelo@dutiag.twi.tudelft.nl | | ===================================================================
You want to do a study of object-oriented Adventure Games? Well, step 1, familiarize yourself with what's out there already. TADS is a popular system. It's written by Mike Roberts and is shareware: you can FTP it from msdos.archive.umich.edu, file /pub/msdos/games/adventure/tads.zip (there are also Macintosh and Atari versions on the same machine, probably under /pub/mac/... and /pub/atari/... though I'm not sure of the paths.) TADS is similar to C++ in appearance. However, to really pick up much about the system, you'll have to register and get the big manual with lots of sample source code and tools. It's quite cheap and I recommend it. You can get registration information by sending e-mail to Mike Roberts at 73737.417@compuserve.com, or by looking in the shareware TADS package. There are several other Adventure Development Systems, all more-or-less object oriented. ALAN is a popular one; you get the source code to the compiler for that. ADVSYS and AGT are also good. I believe these are all LISP-like in appearance. I don't know how you'd get them, though; perhaps someone else can help. As for TADS, which I'm more familiar with, I don't know how well it matches your criteria but it certainly can be extended. What you call "NPCs" (other Actors) are not quite as general as you want: they do run independently, but Adventure games are mostly structured around your command and responses to it. If you want "smart" Actors you'll have to write some AI-like code. I'm sure Dave Baggett at the MIT AI lab, the author of the classic "Unnkuulian Unventure II" Adventure game, will be full of suggestions. By the way, I'm not sure I follow what you mean about Sierra games. Sierra On-Line hasn't made an adventure game since the days of TimeZone and The Wizard And The Princess, have they? Graphics would certainly be nice but any sort of non-static graphics is hard to do in any Adventure development system I've ever seen -- they're not oriented towards that sort of stuff. If you really want lots of discussion of this, you should post your note in REC.ARTS.INT-FICTION. That is the newsgroup for people writing Adventure games. You should get more advice than you'll ever need. - David Librik librik@cory.Berkeley.edu "You are standing before a roughly-hewn doorway in the rock. Mist curls out of the blackness beyond. The arch above is carved with the words 'WRITING YOUR OWN ADVENTURE SYSTEM.' A small sign next to the door reads 'ABANDON ALL HOPE YE WHO ENTER HERE.'"