Profile for Niemand


Recent posts

Pages

AuthorRecent posts
Automatic game creation potential? in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #2
To be honest, I don't think that there's any practical way to automatically generate BoA scenarios that have anything more to them than hacking and slashing. After all, it would not be an easy project to generate dialogue scripts with conversations that made any sense, or to have a program write new creature scripts that did anything very new or interesting.

That being said, I am personally working (slowly!) through the beta testing stages of a scenario inspired by Rogue which generates random levels as you play. I thas however, no significant plot, and utilizes only a small subset og the game's full capabilities.

Edit: (While I tried to get past the wall of 'internal server error's Lazarus got a post in first.) Blades of Rogue is trapped in beta testing because the Windows version of the game has problems with it. It appears to be unable to handle the sheer awesomeness. :P More seriously, it's nearly unplayable on Windows, and as far as I've been able to tell, the problems aren't my fault, but I still don't know why they're happening.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Picky details in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #15
Ah, yes, I'd forgotten about that limit; the limit is not actually the number of lines (I got a script with 8500 short lines to run) but rather the number of tokens, as counted by BoA, which must be less than 32768. Assuming the game's script parser is still identical to the editor's, tokens are counted as the number of times that the script text switches from any of four modes, whitespace, digits, alphabetic or underscore, and other, to any other mode, with the distinction that in other mode, every character is counted as a separate token. 20 is then arbitrarily added to the total count.

So, 'print_num(5);' has 5 tokens, the print_num, the open parenthesis, the five, the close parenthesis, and the semicolon. Likewise, 'i++;' has 4 tokens and 'a = b + c;' has 6 tokens.

The annoying thing is that the the token counting code stores the number of tokens in a long, but then returns a short, and it's the size of the short that determines how many tokens a script may have. Unfortunately, there's some sense i this, as each token is expanded into a 5 byte object, so currently a full sized script expands to be 160Kb when tokenized. Of, course, this could be improved if the token's type an sort were packed into a single short, cutting the size down to 4 bytes, or better still if each token didn't store what line number it came from. One could just have a special line number token type: when the script is loaded at the start of each line that contains other tokens first insert a line number token, then the real script tokens. Then when executing the script, just skip over line number tokens, unless an error occurs, in which case you back up to the last line number token to find out what line you were on. (How to tell line number and non-line number tokens apart? Sacrifice 1 bit from the non-line number tokens, leaving 10 for the sort and 5 for the type, and set the most significant bit of the non-line number tokens to be the opposite of the most significant bit of the line number they're on. You start out skipping tokens whose msb is 0 as line number tokens, but when you hit a token that is 2^15, 100...00, you switch and skip tokens whose msb is 1, since this can only be the line number token for line 32768.) By doing this, each token would be 2 bytes, and in the worst case there would be only one real token on each line, which along with a line number token would use 4 bytes, the same as with the line number being stored in every token, but in better cases with, say, 10 tokens per line, you would go from using 40 bytes per line to using 22. With both optimizations a a script with 32767 tokens would use at most 128Kb, and if it had 10 tokens per line would use only 70Kb. The token limit could then reasonably at least be relaxed to the size of an unsigned short (the line number should really be treated as unsigned as well) with memory usage never being worse than the current implementation. In order to improve performance with large scripts, the locations of numbered states could be found while the token stream is being parsed and cached rather than the current linear search through all tokens.

My rant about how I would write the avernumscript interpreter aside, I will look into adding a token counter either to Alint or AScript (preferably the former) so that scripters can at least be warned when they run up against some of these dumb limitations.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Picky details in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #13
So I did a bit of testing:
-The editor has definite problems placing special rectangles for states higher than 254 .(As it turns out it should, see end.)
-When I placed a special rectangle for state 254, the game did nothing when I stepped in it. (This I'm still confused by.)
-When I placed a special rectangle for state 200, the game gave "Error: Accessed a town special state out of range."
-A special rectangle for state 199 worked fine.
-Using a set_state_continue call from state 199, I had no trouble with states up to 1000, that is, not just a single state numbered 1000 either, but in a script containing a thousand states.

My conclusions: You can probably have 32000 or so states. (Jeff almost certainly used a short for storing state numbers in his code, it's the variable type he tends to default to. He used shorts in many of the game's data structures, even when it's far larger than necessary. About the only place he stuck to chars was for the SDF matrix, unfortunately. )
However, despite having 32000 states to work with, only up to 199 will work for certain from special rectangles, and even if the pointless limit at 200 were removed, the absolute limit is 255; the state number for a special rectangle to call is stored in an unsigned char.

This leaves us with the problem of how to check scripts. Do we tell people, "No you can't have states higher than 254!" and lie to them about the possible existence of the other ~32500 allowed states, or do we tell them, "Sure you can have 32000 states! Oh, yeah, but if you want to use most of them, you have to remember to call them from another state in this one special way, unless you want to just use them for. . . " etc?

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Picky details in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #10
Way ahead of you, Minstrel. ;) The documentation's embedded inside AScript's Application bundle and pressing a key combination looks up the currently selected symbol in a reference panel. (It's been in development since June; one day to write the code, 6 months to write a fifth of the content for it to display. )

So a new chunk of the documentation is done, here as usual. I've now finished the boats and horses calls and the character calls, and added a a set of important lists, of stuff like numbers of sounds, creature special abilities, and so forth.

Nice thought on using get_stat( ,36), Ishad Nha, I found it to work perfectly no both PCs and NPCs, so it's the method I'm recommending.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Picky details in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #8
I'm hoping to have v1.0 within a couple more weeks. This will mean that the avernumscript documentation will not be complete, but I do have another large installment of it done, which I also plan to post on my website later today.

In fact, development toward v1.0 is going well: I've fixed a stupid mistake in the syntax coloring code that was causing the entire document to be re-colored after every key press, I've added a live counter that shows how many characters are in the string literal that the cursor is currently in, and I've added an export feature that exports the colored script as HTML code.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Picky details in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #5
Yes, AScript uses Alint for its checking engine. I've fixed several of these bugs in Alint, but the fixes may not be in the beta releases, let me check. . . yes, both of those are fixed in my development version. When I release the full 1.0 version, I will also be releasing the updated Alint code along with it.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Webcomics in General
Infiltrator
Member # 5576
Profile Homepage #8
I enjoy Dresden Codak a great deal, particularly the old, random cartoons, few though they are. An interested person should really begin here.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Picky details in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #0
So I'm working more on my Avernumscript documentation, and I've run into a couple of things that I wanted to run by other people to make sure that I get them right:

As we all know there is no get_max_energy() call. Am I correct in claiming that this code will produce the desired effect of that call?
*(2 + get_stat_levels_bought([which_char,2) +
get_stat_levels_bought(which_char,11) +
get_stat_levels_bought(which_char,12))
(This is 3*(INT + MAG + PRI) omitting points in those skills coming from items the character may have equipped, at least I think, with an extra 2 points for base INT of a level 1 charcter that get_stat_levels_bought doesn't seem to count. )

The editor docs list no creature scpecial abilites numbered 25 or 31. Are there just no abilities with these numbers, or are they just not listed correctly?

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
stuck in exodus in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #1
Look for another way to get under the city, one that will put you on the other side of the barrels.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
A Slightly Different (and much worse) Graphical Problem in Leopard in Tech Support
Infiltrator
Member # 5576
Profile Homepage #16
I don't have any information relating to Avernum 5 or new computers that don't support 'thousands of colors' mode, but I thought that this might be a good place to comment that I've found that Blades of Avernum seems to run fine under Millions of Colors: I've been using a second monitor with my laptop, and though BoA keeps setting the laptop screen to thousands, it works perfectly on the other monitor which is set to millions.

If I may ask, why do the games run in thousands mode, when the point with supporting older computers is that they really need thousands mode or higher ? We've had no problem with the 3D editor running in thousands or millions of colors, as it just asks Quickdraw to select color depth automatically. Is there some reason that coupling this with a check that the color depth is at least 16 bits won't work?

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Episode 4: Spiderweb Reloaded. Something like that anyway. in General
Infiltrator
Member # 5576
Profile Homepage #340
In UBB? You must be joking!

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Play Time in General
Infiltrator
Member # 5576
Profile Homepage #5
The amount of time I spend playing games is vastly decreased lately, mostly due to school work. Also, however, I've been devoting more of my free time to making games (Blades and work for my video-game programming class) and making tools to make games (working on AScript and the 3D Editor).

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Babelfish Contest in General
Infiltrator
Member # 5576
Profile Homepage #4
Welcome to the Spiderweb Software message boards. Leave your sanity at the door.
-English > Dutch
Onthaal aan de het berichtraad van de Software Spiderweb. Verlaat uw sanity bij de deur.
-Dutch > French
L'accueil au conseil de message du logiciel Spiderweb. Votre si sanity quitte lors de la porte.
-French > German
Der Empfang im Rat der Mitteilung der Spiderweb-Software. Ihr, wenn sanity bei der Tür verläßt.
-German > English
The receipt in the advice of the report of the mirror-image the Web software. You, if sanity with the door leaves.
-English > Italian
La ricevuta nel consiglio del rapporto dell'specchio-immagine il software di fotoricettore. Voi, se il sanity con il portello va.
-Italian > French
La reçu dans je conseille du rapport de la miroir- image le software de fotoricettore. Vous, si le sanity avec le portillon va.
-French > Portugese
Passar recibo em aconselho do relatório do espelho - imagem o "software" de fotoricettore. Vocês, se o sanity com portillon vai.
-Portugese > English
To pass receipt in I advise of the report of the mirror - image the "software" of fotoricettore. Vocês, if sanity with portillon goes.
-English > Spanish
Para pasar el recibo adentro que aconsejo del informe del espejo - imagen el "software" del fotoricettore. Vocês, si va la cordura con el portillon.
-Spanish > French
Pour passer le reçu à l'intérieur que je conseille du rapport du miroir - image le "software" du fotoricettore. Vocês, si va la cordura avec le portillon.
-French > Dutch
Om het afgiftebewijs voorbij te gaan binnen dat ik van het verslag van de spiegel - beeld "de software" van fotoricettore adviseer. Vocês, als het cordura met het deurtje gaat.
-Dutch > English
The receipt beyond to go within that I of the report of the mirror - picture recommends "the software" of fotoricettore. Vocês, if the cordura with the wicket go.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
New version of the Mac 3D Editor in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #12
Yes, I think we've all assumed that anyone working on the windows editor will start from that. it does after all, compiler perfectly already. The difficulty it not from finding a library to use, but the fact that the Mac and Windows versions use different libraries. Thus the code for any of the changes that I made in the Mac version must be substantially rewritten in the windows version. I've tried before, and between unfamiliarity with the library in question, unfamiliarity with the IDE, and a dismally slow old PC, I just don't have the time to do the job.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
New version of the Mac 3D Editor in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #10
No, I'm afraid that the Windows source for DE was never on my site at any time. The only copy was on the hard drive of a computer at the student group where I spend most of my time at school. Said hard drive has died or disappeared, and the computer it was in has been disassembled and its parts dispersed. I appreciate your looking for the code, but I think it is well and truly lost. Of course, it's not a dreadful loss, since the code for both versions was 95% the same, and I'm unlikely to ever update it.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
New version of the Mac 3D Editor in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #8
None of the 3D editor is Objective-C, it's all still C with a dash of C++. Unfortunately, the stumbling block that's stopping me from doing WIndows ports is the drastically different graphics libraries that the Windows and Mac versions use, along with the drastically different handling of dialogs and menus. And the source code was posted at the same time as the application itself. (I've learned that lesson, since I didn't upload the Windows Dialogue Editor Code immediately, and I think it's now lost forever. Oops.)

If you, Dintiradan, or anyone else, want to work on the Windows version I'll be happy to give you all the help I can. I'll admit that in my excitement to start work, I sort of forgot to document any of what I was doing, but for any given feature I can describe which parts of the program I had to alter and how to do the things I did. Besides, I've spent a lot of time figuring out how the thing works, and I'd be happy to share the knowledge rather than make others try to figure it out for themselves.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
New version of the Mac 3D Editor in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #0
Version 1.0.4, with new features like:
In town mode, there are now cretaure and item palettes. Access them by continuing to press space after reaching height mode ORUse Command-1 through Command-5 to jump directly to the different editing modes: floors, terrains, heights, creatures, and itemsWhen a creature is selected, Shift-Right and Shift-Left rotate the direction it is facingIn height mode, The paintbrushes and spray cans are usable. Hold Command while using them to lower the affected areas.Hold Shift and click on the 'Set height' tool's button to access the 'Change Height' tool, which allows you to add a constant value to the height of each square in a rectangle.Function Buttons are now hilighted when the corresponding tool is active.The open dialog now only allows files whose type is 'BoAX' (Or whose extension is .bas, since Windows is too dumb to store filetypes properly. :P ) to be opened. The open dialog for porting BoE scenarios only allows files whose type is 'BETM' (or whose extension is .exs).Double clicking a file in the Finder whose type is 'BoAX' will cause the 3D Editor to open it. (If you double click a .bas file and you get a dialog saying that there is no defualt application to open that file, select the 3D Editor and it will open all .bas files from then on.)Find it on my utilities page .

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Original names in General
Infiltrator
Member # 5576
Profile Homepage #2
I am also numbered among those whose names are immutable.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Geneforged Graphics in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #7
Yeah, when I was doing the boulder graphics, I started agonizing about whether each pixel was part of the boulder or the ground. After a little bit of that, I decided to just be aggressive with my erasing and see how it came out. The result looked ok, so I left it.

My preferred method for erasing snow is to open the graphic in a program that supports layers, place a magenta layer behind the graphic, then delete all white and off white pixels from the graphic layer. With the magenta background, remaining snow is easy to spot and eliminate. When finished, just use a fill tool to replace all transparent areas in the graphic layer with white and remove the magenta layer.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Geneforged Graphics in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #2
The way I did the boulders was simple: Open up your graphics application, (these days I use a trial version of Acorn, but it's Mac only.) open up or paste in the sheet you want to edit, select the pencil tool and the color pure white (it must be exactly 255,255,255) and start coloring over the pixels you want to remove. It's tedious, but the only real way to do it. You could of course also use an eraser or paintbrush tool for large areas.

Concerning white snow: JPEG compression is commonly believed to be the cause. JPEGs use a method similar to Fourier series to compress the image data, as I understand it; this means that the exact colors of pixels may be altered slightly. The trouble is, BoA treats only pure white as transparent, so if some white pixel become slightly off-white, they suddenly show up when BoA draws the graphic. The moral: save images for use with BoA as GIFs or PNGs!

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Stairway (Windows) in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #4
You need to play this scenario with either the included party, or a character that has no stats, not even the ones a brand new character has. Otherwise it would be tedious indeed to finish.

There is a way to survive rubbing out the chalk drawings; use the chalk. You should probably read the readme for information related to both of these problems.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Graphics and the Louvre in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #12
Some collections, like the vast amounts of portrait graphics, are indeed too unwieldy to dump into the Louvre. Some of your more altered creature edits should go in, though, I think.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
BoA BUGS v6.0 in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #39
No, what he's saying is that the game loads the custom script after corescendata, this means that definitions in the custom script override (take precedent over) those in corescendata.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Graphics and the Louvre in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #2
What I had been thinking was that those of us, myself included, who've been hording our graphics on our own pages should make more of a point of submitting them to the Louve.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
A Few Questions in General
Infiltrator
Member # 5576
Profile Homepage #1
The games are done in C/C++.
As far as I know (having never beta tested) it requires no programming knowledge, just playing the game again, and again, and again.

I personally spend nearly all of my free time programming in C++ and Objective-C, although I'm also reasonably familiar with Java.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00

Pages