Re: Adventure games
- Posted by Ralf Nieuwenhuijsen <nieuwen at XS4ALL.NL> Dec 15, 1998
- 479 views
>I really would like working with you on this project. As of now I am just >now completing a transition between the old game and new game. I started >this project probably a couple of years ago. I did not have high >expectations with since I started it in Qbasic. So I have been doing a lot >of porting here lately. Now I'm still expanding the ENTITIY data structure >to include things as skills, inventory, and spells. I also written a test >bed program for some AI routines that I'm expirimenting with. If you like >I will send you what I have. As of now I have no doc's for the Game >itself, and I have a little for the test bed. Well, yes you can sent it. But because I see/notice you are already getting much help on this as well as the fact im not that familiar with advanture RPG games, I will concentrate on getting it to work with the BotMatch library, so things look good and run in every possible video resolution and colordepth. (cga, modeX, vga, SVGA, True-Color .. thanks to Neil). >I would like to see what you have as far as a story line goes. The way I >was writing the engine almost everything is scriptable. Meaning you >can walk in an area and open a trap door having monsters run at you, or >a spell can have several different effects. This I believe will allow for >a pretty imaginative storyline. In the line of half-life thus, it should appear as an interactive story, but due to smart scripting there is really no possible way to change the story as you go through the game. (for example: you will see friends be slaughtered by enemies, things like that) .. I will think about a good story line, and more important how to add them to the actual game. Instead of using triggers (which is pretty annoying to program a whole story with), maybe a special story executor, so that every trigger is linked to a story-line or something. That would not be too hard to implement, yet we can have multiple triggers do the same, and have really sophisticated story lines, and side stories. >As of now the game engine is about a 25% done. It is still in ANSI graphics >YUK! Most of the scripts have not been written. Skills have not been >included until AI is more complete. AI at current time is very dumb. >Things such as species and Class has not been written. Hawke also suggested >these as well. Well, I needed them in my BotMatch library, but in there there only meaning is a collecting of graphical data (everyone is species looks the same, although I will have support for multiple skins .. there is a trick in Neil that easily makes this possible) and actions, say functions that can modify the position, direction and the status package for each bot. For example it has simple actions like move_forward, move_backward, turn_left, turn_right, etc. The bot function is called whenever its his/her turn, but they can off course not modify position, etc. however they can return an handle. An action handle. Which is looked up in the action-database of the species they are a member of, and the appropiate associated routine pointer is called. This thus ensures that every bot within a species has equal chance and options. The status package they also receive is not used by BotMatch, however it can be used for many purposes by the action-routines. For example a collision id, or a current power. Its an object so it can contain an integer or a sequence full of data. >--ability to save/load games/plr info That's easy, we just use my EDOM. It stores any kind of sequence containing any kind of information, efficiently and extremely fast. Say, its like print () and get () however it does not produce human readable result, though its about 10 times as fast, and stores the information about 1/100 of the size it would otherwise take. You can also optional add your own compression or encryption algorithm by registers the routine-pointer of you custom routine. Edom is available at my site, at RDS' as well I think. >--a map maker? or better, online editing (especially if multiuser) I like a combination of made-maps (or partly made) and dynamically generated maps. (like Diable). I have my mazer which makes a maze in either a new sequence or in one you give him. He will respect all zero-and-below values to be areas where he is allowed to draw walls, and all above-zero values are considered areas where he is not allowed to draw a wall. In other words, you can have an map, and then have a maze drawn within. >--pets/familiars (assist u while fighting, it's great fun to > walk around with three panthers as pets... not many mobs > or creatures like messing with you :) and having birds > for scouts to increase 'radar range') Yes (btw again like half-lifethis would be nice. We need some good AI for this though. Some smart AI. >--vehicles... boats, horses, carriages... This is easier than you would instantly think. Make a new species (boats, cars, etc.) add different control, and where you take place in them, keyboard control is sent to the other specy you own. This is a few lines in the bot-ai of your player. >--legal systems (stealing, killing, mayhem! yayaya) Story/Script again.. we're talking triggers here, certain combinations of actions-object can trigger certain reactions, for example a 'mood' chance with the local police officers
Support for these kind of things coudl easily be added to the (now) planned story-lines manager in BotMatch. (that handles trigges, chapters .. (its nice to see a chapter title on the screen for half a second when you go on a quest, or end-up in one) .. and mood-swings) >--political systems (there is an uprising against the dictatorship > in the 'area' 2 maps over that makes the prices for certain > items in _this_ area fluctuate, as well as the need for > player(s) to go assist (and that could then become a quest...) Story/Script again.. (like above) >Most of these probably wont be a problem except for legal and political >systems. I have written a rudementary map maker, but I will clean it up >last. Yes, lets first get something up & running and look good. Then the work on the maps/stories etc should start. >I try to work on this project for at least an hour a day, so progress >seems to be slow in coming. And I will try to keep every one informed >so that if they want to join in later they can. Thats, ok. It seems we have a few different areas currently. BotMatch- Maps, Story-lines, Triggers, Actors, Species, Bots. (bots are thus part of a species. For example human, could have an bot that is aggresive, a bot that is user-controlled (keyboard), however because it are bots they all can do the same things. So, the above it the mamager and actual executor, however, we need a couple more libraries off course. One is what you are actually working on, though in a different 'format'. It should handle: -- generating/loading up the maps. -- registering species (humans, wolves, aliens, whatever) and thus their actions. (those actions take the most code I think, having a player walk, an alien fly, etc.) -- loading & registering storyline, and routines associated to certain triggers. (gives us more freedom) So, actually the above is the game-specific library. Which is logical because BotMatch currently is, and I will keep it like that, a generic purpose tile-game-engine that at least ensures easy use with custom bots, that are not capable of accesing any information they are not allowed to know (no cheating thus) What else is needed ? Later on, you will need an interface library. A simple start/option screen, etc. A map-maker. What is left zero or below zero is filled it by maze properties we choose, so certain parts can be 100% maps, and certain parts can be 5 to 10% dynamic. Ok, I'll see and tell you what Ive got wednesday evening.. Ralf