Jump to content

Walker White

Member
  • Posts

    89
  • Joined

  • Last visited

    Never

Everything posted by Walker White

  1. Originally Posted By: Spidweb In future titles, the scripts will be in the application bundle. They can be edited, though I'm not sure how editing files in the bundle affects the app's ability to run. It should not be any different than in the current design, where it is in a folder. The entire purpose of the bundle is that these resources can be swapped out (e.g. for localization).
  2. Originally Posted By: Spidweb The Avadon dialogue script is at the size limit the game allows. You can't add to it. You should be able to tweak the scripts in the other zones. This is what I suspected given what was happening. Is the size limit imposed in the game software, or is there another configuration file? If it is the former, doesn't this violate the entire principle of data-driven design?
  3. Are you sure? Right click the application and look at "Show Package Contents". See if the scripts are in the folder that pops up.
  4. One of the things that I like to to with Jeff's games is play around with the dialog files. If I screw something up, and my best save is to far away, I add some dialog to someone in town with some code that fixes the problem. Us long-time Spiderweb files understand Avernum/Geneforge script almost as well as Jeff. The dialog scripts for Avadon appear to be exactly the same as previous games. However, my tricks are no longer working. When I add new dialog nodes in the fortress, dialog fails. As in everyone stops talking to me. I click on someone and no dialog box appears at all. I am not doing anything different. So the only thing I can think of is that there are some other files that track the dialog nodes in the scripts -- like a checksum. All is not lost, however. It appears that I can safely alter the code of any existing dialog node. I just cannot add new dialog nodes. So I can make the butler in my living quarters do everything that I need to do.
  5. I am a huge fan of Exile 3, and not a fan of the Avernum 3. The problem is the lack of tactical depth because of the move away from area-effect abilities (which return in the later Avernums). This design change cripples a lot of areas that were really challenging in Exile 3. The changes to the Golem area are the most notorious. The thing you are missing, likely because you started with Avernum, is anti-magic cloud. This spell does not exist in the Avernum series, again because of the removal of area-effect abilities. However, it is an absolute necessity in Exile when you are up against golems or rakshasa. You need to cast the cloud right on top of yourself, protecting everyone from spell-like abilities. The other trick to the golem fortress is to stay in combat mode at all times, with haste cast upon you. This allows you to navigate the conveyors with ease.
  6. The problem that I see it is that old-school RPGs are still trapped in this archaic "head-on combat" style of play. By that, I mean that the basic gameplay is designed to focus on a single encounter where all of the enemies are fully engaged against you. When I think about the way I play pen-and-paper RPGs, this is about as far away as you could possibly get from my play-style. My group plays infiltration-style parties with no tanks. Combat (when it happens) consists of carefully designed ambushes, together with distraction techniques that get the enemies to move about the fortress/dungeon/generic-level exactly as we want them to. In fact, when I think about combat in my pen-and-paper RPGs, it much more resembles what you would see in the modern stealth games Assassin's Creed or Splinter Cell. You pull guards toward you with sound or an enticing dead body, or send them away with a similar distraction. Jeff has been sympathetic to stealth as a play style in the past, particularly with Geneforge. However, his stealth abilities have largely been restricted to "do not get detected." Anything else -- such as setting up an ambush or creating a distraction that moves guards to another area -- has to be heavily, heavily scripted. The beauty of the modern stealth games is that they show that this type of gameplay can be emergent without the need for scripting. What I would like to see is for the non-scripted gameplay from modern stealth games to find its way into old-school RPGs. Seriously, if you look at AC2 -- which has side missions, upgrades, inventory system, and a BioWare-style power wheel -- the only thing keeping that game from being classified as an RPG is that the fact that there is no player-controlled dialogue. If you stuck a conversation wheel in AC2, it would be every bit as much an RPG as anything BioWare has put out in recent memory. In my mind, this is what we need to break out of the tank-oriented doldrums. Tanks are what you use to locally distract enemies because you were not careful enough to distract them ahead of time, and could not set up an ambush position to protect your DPS units. If we had more control over how the combat is set-up in the first place, this would allow for more interesting tactics.
  7. Originally Posted By: Sell thy trowels Again, take a look at BioWare, Slarty. Its D&D-based games have some very tactical, or at least strategic, thinking. Mass Effect may be a first-person shooter in RPG clothing, but Dragon Age proudly carries the tactical banner. So does Fallout 3 despite its shooter trappings, I hear, although I haven't played it myself. If you play as an Adept, ME2 is far more tactical than Dragon Age is. The physics and positional system really shines when you have a controller play style (Singularity is the greatest power ever). Dragon Age works okay as a controller -- there are many, many variations of immobilization spells -- but I found myself getting into the one-two punch of "cone of cold"+"shattering attack" so often that it became repetitive. Fallout has zero tactics, and is far more shooter than RPG. From a design standpoint, the VATS system is an utter failure. There is never any reason to do anything other than a headshot in VATS; the percentage to hit is similar and it takes just as long to immobilize a limb as it does to kill them with head shots. There are no controller abilities at all. And as a final insult, you are penalized for having a companion (because XP goes to the person who made the kill), so the game incentives you to solo as much as possible. However, flanking is the only type of real tactics you can have in a pure shooter, so this kills any last chance they had for tactics.
  8. Originally Posted By: Regenerativity Actually, the BoA data format seems to be almost the same as the one used in the entire Geneforge series, which predates BoA by a few years. So, there goes that value-add. It is the same as the Blades of Exile format, which is the first time he separated the data into files outside of the resource fork (at least in Macs). Hence my reference to both games.
  9. Originally Posted By: Thuryl Blades of Avernum nearly sent Spiderweb Software out of business, so probably not. Jeff has said it's too much work for too little gain. That's a shame -- I did not know this (I typically only follow the forums soon after release, and then disappear when I get busy again -- which will be soon as semester is starting again). Fortunately, both Blades (Exile/Avernum) forced Jeff to standardize his data formats in a way that has made modding relatively easy. So it has provided value-add beyond those two games. The commercial value of user-generated content is hotly debated right now. In most cases, it just provides extra longevity to the game for a small subset of the play base; most of the player base purchases the title for the creator-generated content. The two Neverwinter Nights are perfect examples of this. Those platforms which focus entirely on user-generated content often have a hard time making money (Second Life is surviving, but it is not a runaway success, and people are still trying to find its niche).
  10. Originally Posted By: Dintiradan Alorael & Walker White: Most of the time when people call something a C/C++ language, they just mean that it's an imperative language with curly brace syntax (as opposed to Lisp's parentheses and functional nature, or Python's mandatory whitespace). Even calling AvernumScript (or GeneforgeScript) an imperative language is misleading, as it's based on the concept of a finite state machine. At any rate, it's certainly not procedural. That's not quite right. It does have functions/procedures ... just not user defined ones. And Jeff's state machines are just syntactic sugar for long nested if-branches. He doesn't fire on events; he just checks the state each round. And even if he did, Avernum-script is still essentially the same as programming call-back functions (where you inline the body of the call-back function in the state declaration). So it is arguably an imperative language.
  11. Originally Posted By: ntemplates the fatalism of rebel The scripts are in a C++/C-like language. This is not quite right. It is no more like C++/C then it is like Pascal or Java. Yes, it is has loops and conditionals, but so does any imperative programming language. You could also say Jeff's language is like Python, Lua, or Javascript. All of these are arguably more like the language than C++/C because Jeff does not allow for any memory management in the scripts. In fact, memory management issues are why string manipulation was so primitive in the early Blades of Avernum; strings require explicit memory allocation, and Jeff could not allow that in the scripts (otherwise these games would leak memory like a sieve). The 1.01 change with the explicit string buffer occurred after an e-mail discussion that I had with Jeff suggesting this alternative. Furthermore, anyone who just wants to edit scripts to play around with game state probably does not need to know all the ins-and-outs of a PL language. In fact, I would argue that someone playing with the scripts really just needs to know one of three things, all of which are unique to Jeff's games, and cannot be found anywhere else. What a specific function call does, or what function is needed to achieve result X. This is known as the script API. It differs from game to game, and is largely undocumented. Fortunately, Jeff does not change them too much, and many of the functions in the Appendix to Blades of Avernum work in all of his games. Geneforge games are a little tricky, however, as there is no "party" and so most of the party-oriented functions of Avernum do not work. . How to activate a certain feature through character dialogs. 90% of the types of cheats you would like do in the game (reseting a state variable, altering reputation, giving yourself an item, giving yourself experience, modify stats, etc.) can be achieved by adding a new line of dialog to a character. All dialog occurs in the *dlg.txt files. This is a encoding of dialog trees that is unique to Jeff; you will not find it outside of his games. Fortunately, the documentation to this exists in the instructions to the Blades of Avernum editor; the format is entirely unchanged between games. When I cheat, this is the only way that I cheat. For example, I screwed up and did not go back to Rockwall for my anvil reward (and the important liquid locked up with the anvil) until after I opened up the secret access route. So I had to modify a script to "complete" the quest. I do that by adding a line to Barcott in Minah: Code: // Extra debug cheat scriptbegintalknode 102; state = 90; nextstate = -1; condition = 1; question = "The crow flies upside down at midnight."; text1 = "And the turtle shall feast on the lamb."; code = // Complete the quest: set_flag(51,16,2); toggle_quest(84,3); // Give experience award_party_xp(200,25); sf(51,14,1); // Increase reputation inc_flag(100,0,3); // Remove special item set_spec_item(19,-1); break; . Change the behavior of an NPC in combat. This is very complicated and requires understanding of how Jeff encodes finite state machines. Again, this is unique to Jeff's games, but described in the Blades of Avernum documentation. The best suggestion is really to just to play around Blades of Avernum. Also, look in the archives for the old Blades of Avernum posts -- we were doing some funky stuff playing around with the editor in the early days. Once you understand how to do all three of the above in Blades of Avernum, you can do them in any game.
  12. I finished the game once, and I have been playing around with trying the game with another character (though I have other games that need playing, so maybe not. Still haven't gotten around to Fallout 3). Anyway, the completist in me is looking questioningly at the stone sliding door in the northeast portion of Pacification Fields (near the locked door that teaches you about locking). Can this door be opened? Does it lead anywhere?
  13. End of the work week, time to pick up the game again. Is the inner vault in lost Dera Vault accessible? I found a sequence of levers assuming it would let me into the inner vault (because neither of the eyebeasts dropped a key). But that takes me to the Create Ornk cannister. Is the inner vault one of these inaccessible doors?
  14. Originally Posted By: Clawbugs of the Conciliator War tralls are just reliable. In a game that rewards you pretty heavily for keeping creations around for a while, that works well. (It would work even better if you could start making tralls earlier, but you can't.) You can make War Tralls by your first visit to Gazaki-Uss (the diplomatic mission for Alwan). The area with the War Trall canister is not key locked - it just needs enough living tools. And if you have been conservative with them, you should have enough to spare. I am pretty sure I had a War Trall by level 25 or so. He and my Wingbolt have been my most effect damage causers in the second half of the game (which because of work I cannot play as fast as I used to bang these out in the old days). I have to say I really, really like Rotdhizons. 12 AP, good damage sinks, and essentially immune to poison (which appears to be a favorite attack in this game). I was well into Traygen lands before I could afford one of these in my entourage though.
  15. Is that canister in the corner accessible, or is it just there to mock me? I cannot find any secret door switch on the north wall of the west building, and this is including pixel-hunting ala Avernum style for a switch mechanism in the wall. Furthermore, there is absolutely no evidence in the scripts of any terrain modification code (e.g. a secret door mechanism).
  16. Quote: Originally written by Student of Trinity: In a word, yes. I'm not a big fan of mechanical puzzles or riddles in FRPGs, since it's extremely hard to make them seem remotely realistic in context. There are only so many plausible scenarios where you should be faced by these things. It depends. It depends on whether you view fantasy RPGs as the legacy of Tolkien or the legacy of Vance. Gygax only got his races from Tolkien, and one or two character classes. Everything else in D&D and the early RPGs came from Vance's Dying Earth series. (Gygax is on record admitting this, to the point where he got explicit permission for several of the spells and magic items from Vance). And this type of stuff makes perfect sense in that context.
  17. Okay, the plot in Exile III/Avernum III may not have been the greatest. But what was nice about it was that it had a lot more going for it other than combat. There were lots of riddles, puzzles, and gismos everywhere. Things you had to think about rather than hack your way through. This was a feature that I have always liked about Jeff's games, despite their primitive feel. I have reached Blosk and as far as I can tell, this game is nothing but combat with "fetch-it" missions. Most of what you need to solve a problem flows naturally from searching the nearby chests after killing a boss. The only challenge is the combat strategy. No rays and mirrors. No conveyor belts. No single character rooms. No control panels. Nothing. The combat certainly is more challenging than the previous AVs (but these have all been easier than the Exiles because the number of creatures to a room is capped an order of magnitude lower). However, I always felt the puzzles were what gave these games their distinctive feel. Am I alone on this?
  18. Quote: Originally written by Banana: This allows for granularity within states without having to swap memory cells around or massively overload return_offset, but it does turn some states into a mass of Code: if (s0 == STATE) {} else if (s0 == STATE_A) {} else if (s0 == STATE_ {} I'm thinking of writing a set of m4 macros (or a "compiler") to turn all this out given c-like functions as input Yeah. I have known you can do that for some time, but I am trying to keep overhead down some. The hack in AdvancedNPC works only because the function calls are in an initial loop. You are suggesting to turn the states into basic code blocks (that's the compiler terminology) around a function call. This necessitates breaking up branches and loops if there are function calls in them. What you are suggesting is the clean and proper way, it just causes state explosion. At that point it becomes an exercise in "What can AvernumScript do?". Which can be fun (that's certainly the game I have been playing), but we should always temper this with providing helpful stuff to the community here. If we write convoluted scripts that they cannot understand or at least customize through memory cells, then it won't be too useful.
  19. Quote: Originally written by Banana: We could just set aside a range of, say, 1000 SDFs as the 'array area' and reuse it as necessary. Of course, you'd need to make sure to initialise it every use, which could get slow. It just occurred to me that I thought you were suggesting one thing, when you were really suggesting another. Are you suggesting arrays that only persist within a single state and need to be reinitialized each time the state is called? Because yes, we can do that, but you are right in saying that it is expensive. Even my G4 400 would probably not like that. Anything else you must be much more careful with, because we are looking at a class OS shared resource problem here. Each script is a thread. That's why I think these sorts of tricks should be avoided in terrain and creature scripts (which have memory cells anyway).
  20. Quote: Originally written by Banana: We could just set aside a range of, say, 1000 SDFs as the 'array area' and reuse it as necessary. Of course, you'd need to make sure to initialise it every use, which could get slow. I am thinking of using y values 27, 28, and 29 as heap space in my scripts. This can be used for arrays, queues, whatever. This gives us 900 bytes and still leaves over 8k for story. Someone who is actually writing adventures (Drake? TM?) should comment on whether this is acceptible; I am just script support right now (Think of me as a magic item artificer). As for initialization, I think this depends on whether you want a formal allocation system in the scenario script. Right now, I am inclined just to have scripts manually carve out their own space. To have a real allocation system we would probably need the following: A pointer to the next free memory location. A stack to keep track of what memory is in use. The ability to garbage collect occasionally. As linked lists require two nodes per pointer, Stop and Copy is probably the most efficient here. However, that leaves half the memory unused at any give time. As you see, this gets really expensive for <1k. As I said in the beginning, oh what we couldn't do with 64k.
  21. Circular queues turn out to be quite efficient in the SDFs when you are willing to allow a buffer limit. Last night I figured out how to use them to reintroduce area effect spells (with delayed effect even) into the game with an event queue. Unfortunately, work is picking up again, so you all will have to wait a week or two for those scripts.
  22. I must be slipping in my old age. While writing my scripts I have been periodically lamenting the lack of arrays and dynamic structures. And then it hit me. The SDFs are heap space. Persistent heap space that is saved when you quit the game (so long as you saved). We can make arrays, linked lists, binary trees, and whatever we want here. And you can use memory cells as pointers. Of course, every space used as the heap takes away from legitimate use in the story line, which is very uncool. And there are only 300 x 30 = 9000 spaces, so that starts to make it look a little tight. If only Jeff had given us more SDFs. Of course I am not expecting full 32 bit addressing (as the SDFs are indexed by two 16 bit shorts). But he could have given us 16 bit addressing (256 x 256). That ups the number of nodes to 64k and Blades of Avernum becomes the equivalent of a C64. And the save file cannot be that much larger from it, can it?
  23. Quote: Originally written by Eldiran: Wands combine anyway, no matter what the docs say. At least, they do in Valley of Dying Things. Not that this bug is bad. It saves a lot of space for my 1-PC parties. Now that's just bizarre. Can you elect to split the wand back up when you trade it between characters like you do with potions?
  24. Quote: Originally written by Drakefyre: has_num_of_item(item) will return the number of charges. If you have two wands of the same type, it will sum the charges. These are wand-only functions that I am thinking of. That function is great for potions and objects.
  25. Yet another that just occurred to me: crumble_terrain(short loc_x, short loc_y) This is the analogue of flip_terrain() except that it uses the crumble counterpart instead of the swap counterpart. I just figured how to make radio-detonated plastique and it might be nice to be able to blast walls as well as monsters with it.
×
×
  • Create New...