Profile for Walker White
Field | Value |
---|---|
Displayed name | Walker White |
Member number | 4127 |
Title | Apprentice |
Postcount | 48 |
Homepage | |
Registered | Saturday, March 20 2004 08:00 |
Recent posts
Pages
Author | Recent posts |
---|---|
Is this game nothing but combat? in Avernum 4 | |
Apprentice
Member # 4127
|
written Saturday, December 17 2005 05:08
Profile
quote: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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Is this game nothing but combat? in Avernum 4 | |
Apprentice
Member # 4127
|
written Friday, December 16 2005 22:35
Profile
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? Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 07:27
Profile
quote: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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 07:27
Profile
quote: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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 06:24
Profile
quote: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). Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 06:24
Profile
quote: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). Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 05:22
Profile
quote: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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 05:22
Profile
quote: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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 05:00
Profile
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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum | |
Apprentice
Member # 4127
|
written Thursday, April 8 2004 05:00
Profile
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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Wednesday, April 7 2004 11:08
Profile
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? Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
I cannot believe I did not think of this earlier in Blades of Avernum | |
Apprentice
Member # 4127
|
written Wednesday, April 7 2004 11:08
Profile
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? Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Calls that we wish existed in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Wednesday, April 7 2004 10:00
Profile
quote: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? Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Calls that we wish existed in Blades of Avernum | |
Apprentice
Member # 4127
|
written Wednesday, April 7 2004 10:00
Profile
quote: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? Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Calls that we wish existed in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Wednesday, April 7 2004 05:18
Profile
quote: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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Calls that we wish existed in Blades of Avernum | |
Apprentice
Member # 4127
|
written Wednesday, April 7 2004 05:18
Profile
quote: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. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Calls that we wish existed in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 16:42
Profile
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. [ Tuesday, April 06, 2004 16:43: Message edited by: Walker White ] Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Calls that we wish existed in Blades of Avernum | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 16:42
Profile
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. [ Tuesday, April 06, 2004 16:43: Message edited by: Walker White ] Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Am I missing something? (food items) in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 14:57
Profile
quote:If you are a Microsoft programmer "not public" means "it is there and usable by anyone, but Microsoft won't tell me what it is so their Office programs can be better than mine." That's why I assumed that interpretation. I didn't mean any insult by it. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Am I missing something? (food items) in Blades of Avernum | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 14:57
Profile
quote:If you are a Microsoft programmer "not public" means "it is there and usable by anyone, but Microsoft won't tell me what it is so their Office programs can be better than mine." That's why I assumed that interpretation. I didn't mean any insult by it. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Am I missing something? (food items) in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 14:49
Profile
quote:It's more than not just public; it is not in the scripting language. He has functions in his engine for doing it. Those are C++ calls. The way scripts work, however, is part of the engine reads in the script text file (the thing doing the reader is called the interpreter) and converts it to C++ calls. If the interpreter does not know to translate calls about item variety into the existing C++ calls, then you can never use them in a script, whether you know their name or not. This is the big deal in the "Calls We Wish Existed Thread". If those calls already exist in C++ form in the engine, it is very easy for him to add them to AvernumScript; he could do it in a few minutes. If they don't, it is much harder to add them, and not necessarily advisable to do so, as it could break the engine. It's like the difference between needing a word in French for which the language translator does not know the correct word, and when there is no such word in French at all. [ Tuesday, April 06, 2004 14:51: Message edited by: Walker White ] Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Am I missing something? (food items) in Blades of Avernum | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 14:49
Profile
quote:It's more than not just public; it is not in the scripting language. He has functions in his engine for doing it. Those are C++ calls. The way scripts work, however, is part of the engine reads in the script text file (the thing doing the reader is called the interpreter) and converts it to C++ calls. If the interpreter does not know to translate calls about item variety into the existing C++ calls, then you can never use them in a script, whether you know their name or not. This is the big deal in the "Calls We Wish Existed Thread". If those calls already exist in C++ form in the engine, it is very easy for him to add them to AvernumScript; he could do it in a few minutes. If they don't, it is much harder to add them, and not necessarily advisable to do so, as it could break the engine. It's like the difference between needing a word in French for which the language translator does not know the correct word, and when there is no such word in French at all. [ Tuesday, April 06, 2004 14:51: Message edited by: Walker White ] Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Am I missing something? (food items) in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 14:41
Profile
quote:Yes. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Am I missing something? (food items) in Blades of Avernum | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 14:41
Profile
quote:Yes. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |
Am I missing something? (food items) in Blades of Avernum Editor | |
Apprentice
Member # 4127
|
written Tuesday, April 6 2004 13:38
Profile
quote:Simple. I copied Bread into slot 450 which is the first empty item slot. I then cleared slot 4 (you can redefine ANY item slot you want) so that I could alter it. I loaded in all the data for Bread (which is now in slot 450) and added the extra definition to give it a special class. Rinse, lather, repeat. You cannot just say begindefineitem 4 as that will erase all the old Bread information. And I did not want to leave Bread as item 450, as then I would have two different types of Bread. Posts: 48 | Registered: Saturday, March 20 2004 08:00 |