Jump to content

Some Designer Utilities


Karoka

Recommended Posts

Ever design a scenario and forget which SDFs are for what? Or maybe screw up a node chain because you set up the wrong event or special class? Well this is the right product for you! Crushed inside a little box, the K-Util will help you keep your useless junk organized in four complex Excel sheets!

 

The K-Util contains an SDF Chart, a Special Class Items, an Events List, and even a useless To-Do List! As a bonus, we'll even throw in this redirect link! Order now before it's too late!

 

http://www.4shared.com/file/Sw-mX12n/K-Util.html

 

EDIT: changed some stuff. Here ya go.

Link to comment
Share on other sites

What is the "xlsx" format, Excel can't open it?

 

What would be handy here, and easy to do, is to create a report that lists all the SDFs found in the Exs file.

If SDFA >= 0 and SDFB >= 0, the report would list which node it was found in, what type it was and the values of SDFA, SDFB. This would tell you where to look to find it.

Current report, created by the Editor, lists all information for each special, way too much for this use.

 

Now when a file is copied from Excel to Word, a cell in Excel is represented in Word by a tab stop, and vice versa. So if you want certain lines to be in an Excel column all by themselves, make sure that in Word only those lines have a tab stop to the left of them. This approach would enable you to filter out the desired SDFA and SDFB values.

Link to comment
Share on other sites

Originally Posted By: Ishad Nha
What is the "xlsx" format, Excel can't open it?
It's the new Office 2007 xls format. OpenOffice can handle it, but older versions of MS office have to have a little converter thing. There's one you can dl from microsoft and it builds right into old office and downconverts on the fly.
Link to comment
Share on other sites

Microsoft Office Compatibility Pack for 2007, 37MB.

Microsoft Office Compatibility Pack for 2007

I will have a look at that new report function.

Edit:

I have the function done, it looks for values of SDF (A) and SDF (B) that are both greater than 0. Certain special node types use these two fields even though they don't deal with Stuff Done Flags, hence they generate false positives. As it happens the false positives have node type values between 200 and 215.

 

Once I check the function I can upload a copy of the Editor that has it. This has been done, Editor is found at the link below:

2009ClassicBoEScenarioEditor.zip

Relevant function is found at the bottom of the Scenario menu, it is called: "SDFA SDFB Data Report". Key pieces of data in each line are separated by tabs, hence they will occupy their own cells in an Excel spreadsheet.

(Editor is a version of my own, it has a few features found in the BoA 3D Editor.)

 

Won't detect the Set Many Flags special, which may have a -1 value for SDFB.

 

Link to comment
Share on other sites

Originally Posted By: Ishad Nha
What would be handy here, and easy to do, is to create a report that lists all the SDFs found in the Exs file.
If SDFA >= 0 and SDFB >= 0, the report would list which node it was found in, what type it was and the values of SDFA, SDFB. This would tell you where to look to find it.
Current report, created by the Editor, lists all information for each special, way too much for this use.

Now when a file is copied from Excel to Word, a cell in Excel is represented in Word by a tab stop, and vice versa. So if you want certain lines to be in an Excel column all by themselves, make sure that in Word only those lines have a tab stop to the left of them. This approach would enable you to filter out the desired SDFA and SDFB values.
I'm sorry, but I have no idea what report list is.
Link to comment
Share on other sites

"I'm sorry, but I have no idea what report list is."

The Report functions write text files to your game directory, they are descended from the original functions that created Scentext.txt and Scendata.txt files.

 

Edit:

Those reports are big, even in Plain Text format. My function for AC3 is 184KB, which is only an eleventh of the original full printout function.

 

I just uploaded a new version of the Editor that has a graphic, EdMixed.bmp, that you need to make it work. It also fixes the inability to detect the Set Many Flags node.

Another version has been uploaded that generates an Excel-friendly report file. It is set up to work properly with the Auto Filter function.

 

Harehunter's new editor, should be good. What is needed: new thought about editor features. At the least it should have the relevant features of the BoA 3D Editor.

Harehunter's Editor looks good. Would it be possible to make it work with an existing BoE install?

 

Link to comment
Share on other sites

I wrote it to be able to generate BoE files in their current format. On my download page, I give instructions on how to 'install' it. Basically, you just drop it into the folder where the current BoE editor lives. I don't overwrite it, but speaking as a database administrator, I ***Stongly*** recommend that you make a backup copy of the entire BLADEXIL directory. (Paranoia is a healthy attribute in a DBA.)

 

At one point, I got tired of working around the limits set on what you can put where, and designed a file format that allow dynamic extension of data elements; things like NPC's, items, signs, fields (webs, boxes, barrels...), specials (locations that will fire a special node sequence), special nodes, texts, dialog nodes. I increased the number of save items from 3 to 4, although I could have made that dynamic as well. I still have that version, but until I, or some other enterprising soul, gets around to writing a game engine that can read that format, it's pretty useless. Now that BoE is open source, I could do that, but I have too much on my plate now to get a round tuit. If you are interested, let me know and I'll put it on my website.

Link to comment
Share on other sites

The download has nearly all of the BoE game except for the sounds dll and the game program. Hence I thought it was meant to be installed separately. If you don't intend that it be installed separately, you won't need to include all the graphics. You only need to include anything that is not found in the usual BoE install.

It looks good, we really need alternatives to the present Editor.

Edit:

Unlike other Editors this one needs to be installed in the "images" folder, then it works okay.

 

Link to comment
Share on other sites

I included the graphics because there are two sets of terrain. The one that came with the game has gray cave floors, and the one I preferred with the aqua cave floors a la Exile III. I also included the BladeBase scenario because I have sorted the monster and item lists differently than in the original. It is also the template I use when you create a new scenario.

Link to comment
Share on other sites

You won't need any of the graphics in the main directory, you won't need the original help file, you won't need the standard graphics in the BMP folder. Download is a bit bigger than it needs to be.

Latest BoA 3D Editors have some good ideas you could introduce to your editor, when you find the time.

Link to comment
Share on other sites

Thanks for the critique. I'll break it down into sections so that someone can pick and choose the components they want; Editor, Alternate graphics, Source code, etc, can be separated out. I've not delved into BoA yet, but my interest has already been stirred. I need to convert my code from Visual Basic to C++ wxWidgets in order to be more standardized with respect to my code base.

Link to comment
Share on other sites

I have a version that dynamically allocates text, signs, special nodes, dialog nodes, objects, monsters, items, webs.etc. The problem with that database design, was that it was totally incompatible with the game engine, and therefor totally unplayable. Let me dredge it up and post it on my web site. Now that BoE is open source, it would be possible to design a game engine to play the new design.

 

And I'll remember to separate source code from the compiled program. I never considered download times to be too bad, but then again at work I am accustomed to downloads of Oracle products at 1Gb each x 3 to5 pieces.

Link to comment
Share on other sites

Unnecessary download is simply confusing to anyone who is new.

 

Now it is open source you can have a crack at dynamic allocation. One problem is lack of more than 256 terrain slots. You can make the number open-ended. Then again you can do what Jeff did in most of his games: have custom terrain slots for each of the towns.

 

In BoA it is a matter of "char sign_text[15][256]", whether or not the town has any signs. Then area rectangle names are always 29 bytes. Town names are 19 and that may not be enough.

Link to comment
Share on other sites

Having a separate 'palette' for each town...

Sounds tasty... Might be a bit tricky.

 

One issue I had trouble with, but never got around to dealing with, was the limit of 10 actors per town; NPC's with active dialogs. I tried the trick of using slots from enemy dungeons, but certain complicated dialogs would not work unless they were coded in the home town. On the other hand, many towns and enemy dungeons have wasted space allocated to them in the database. Both the base dialogs, and the dialog nodes should be dynamically allocated as well.

Link to comment
Share on other sites

Jeff has used this custom terrain trick in Original Nethergate and the Avernum Trilogy. It is not hard to implement. If you used this idea, it would be handy if you had a function to import another town's custom terrain data.

Another solution is an open-ended, dynamically allocated, number of terrain slots.

 

Using NPCs from another town is a trick Jeff used in Avernum 3. If you have some NPCs with complicated dialogs, give them priority for slots in the current town. If more than 10 NPCs need to have complicated dialog that will be a problem.

Link to comment
Share on other sites

I knew the trick worked in BoE; I was just musing that there might be a better way. I had not noticed that he had done so in A3.

 

I ***Finally*** got around to redoing my downloads page, and posted my version 2 of the editor. I broke the downloads to a more reasonable size, as well.

 

Well, back into the rabbit hole where I've been hiding for the past week. I only have another 3 or 4 80hr weeks ahead of me.

Link to comment
Share on other sites

512 terrain slots does no harm to BoA.

 

If CM is saying it will make the 256-place terrain palette much larger, it won't. You would have the customizable slots in a rectangle by themselves. There would be a heading, along the lines of "Customizable Terrain", that is about it.

Currently it takes 16 bytes to record a terrain slot. In the official Spiderweb code, three bytes are unused. So even 64 customizable slots would only add 1KB to town size. The smallest possible town size is 5,446 bytes, for a small town with no dialog.

Link to comment
Share on other sites

Quote:
@ 0x00007a98 256 x 16 bytes per terrain slot PLUS
@ 0x00011ef6 256 x 30 bytes for the description.
46 bytes for each entry.
11,776 bytes for 256 entries.


In my version I put the two together in the same data structure.

Then you have to consider that it only takes one byte to represent a terrain type on the map. Adding a single bit to the number of terrain types, and you have to double the size of each map. Also, terrain types are used in the special nodes, although that does not present a problem, since all the values are two-byte integers.

Finally, when you look at the layout screen, the terrain is selected from the grid of thumbnails to the side. Making this graphical menu resizeable would be very tricky; much better to add an optional second palette of 256 terrain types. This would add 11,776 bytes for definition, and the menu could be easily swapped.

In order to keep from doubling the sizes of the maps (see below), I might suggest having a separate 1 byte short int to select the palette. You would have to replicate a lot of terrain onto the second palette, in order to make this work, but while a lot of terrain is commonly used, town terrains could be swapped out. Actually, it would be easy to have a dynamically allocated array of palettes, which makes the permutations unlimited, and we only add one extra byte to the town/outdoor definition.

Quote:
32x32=1024->2048 Small towns
48x48=2304->4608 Medium towns and Outdoors
63x63=3969->7938 Large towns

with the bulk of your maps in the middle size, since that is also the size of your outdoor areas.
Link to comment
Share on other sites

That is an elegant compromise solution; the dynamic flexibility of palettes, while eliminating the cost of duplicate terrain types.

 

The 1st 64 terrain types are locked because the algorithms that automatically paint the various pieces of terrain (I have a spreadsheet that explains the mechanics).

 

The next 128 terrain types could be designated as 'global', and the last 64 could be palettized, very easily. One short integer (byte) for the scenario to know how many custom palettes to store, and one byte per town/outdoor section to nominate which palette is being used.

 

The cost for each additional palette... 2,944 bytes. Now that's a bargain! Remember, not every town/section needs a custom palette; one palette could suffice for 80% or more. And implementation is simplicity itself. I'll have to see how much time I can allocate to it.

 

 

Link to comment
Share on other sites

I could build a component to read and write a scenario file that includes all the dynamics I have already concocted, as well as a dynamic array of sub-palettes. In addition to the .exs scenario file, I also have a .exd file to describe the Stuff Done flags. This is actually a text file, which can be easily edited with notepad, and still read by the scenario editor.

 

Once I get that done, then maybe I could build the editor interface. But then a whole new game engine would have to be built to use it. And I never got around to the structure of the save files.

 

Jeff's BoE model did I/O a section at a time, whereas my editor reads the entire scenario at once, and saves the entire thing as a whole, renaming the previous file to a backup first. I found the forced I/O between swapping sections annoying, and by keeping all sections in memory, it becomes possible to show the terrain of adjoining sections on the edges of the section you're working on. Saving the scenario is done only on request.

 

I also elected to use long file names, breaking free of the 8.3 DOS format.

Link to comment
Share on other sites

Custom terrain will require a new version of the BoE game, that can't be avoided.

BoA 3D Editor has always allowed you to see into the adjoining sections. One of the many advantages it has over the BoE editor. You should look at the 3D Editor at some point, it will provide a lot of inspiration.

Loading the entire file at once is now a good idea because PCs have so much more memory nowadays.

Link to comment
Share on other sites

I am also looking at the Open Exile Project as a point from which to start. I am wondering, which is the preferred designer tool; CodeBlocks, Dev-CPP, Formbuilder? The svn has project files for all three of them. All use the Gnu MinGW compiler, and I have them configured to use the wxWidgets. Right now, I think CodeBlocks is a bit more robust, but it also seems fragile as well.

Link to comment
Share on other sites

  • 2 weeks later...
Originally Posted By: Ishad Nha
512 terrain slots does no harm to BoA.

If CM is saying it will make the 256-place terrain palette much larger, it won't. You would have the customizable slots in a rectangle by themselves. There would be a heading, along the lines of "Customizable Terrain", that is about it.
Currently it takes 16 bytes to record a terrain slot. In the official Spiderweb code, three bytes are unused. So even 64 customizable slots would only add 1KB to town size. The smallest possible town size is 5,446 bytes, for a small town with no dialog.
You missed my point entirely. I was trying to say that there's no point in having per-town terrain palettes when the global palette's size will be unlimited.

Originally Posted By: Harehunter
I am also looking at the Open Exile Project as a point from which to start. I am wondering, which is the preferred designer tool; CodeBlocks, Dev-CPP, Formbuilder? The svn has project files for all three of them. All use the Gnu MinGW compiler, and I have them configured to use the wxWidgets. Right now, I think CodeBlocks is a bit more robust, but it also seems fragile as well.
Of those three I think I would recommend Code::Blocks, since it has GUI builders for wxWidgets which we intend to use for the port. I think more important at this stage though is merging the Mac and Windows codebases... I know someone made some progress on that, but I forget how far he got and whether he committed it to the svn.

Don't use Dev++, since it's obsolete.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...