• Announcements

    • Voice Powered Vehicle

      Logging in   05/10/2017

      If you had an account and can't log in as of 5/9/17, this may be because of a change in logins with new forum software. You can log in using your publicly displayed name (not your username) or your email address and the password you used before.   If you have problems with this, please ask any of the mods or admins. 
Sign in to follow this  
Followers 0
Ishad Nha

Blades of Geneforge - How it could be done

95 posts in this topic

Presumably Jeff must have an Editor for every game he makes, unless he has a 4-digit IQ and does not need one.

All he has to do is release the Editor, and maybe its source code too. Jeff could release the Editor as a companion to Geneforge 5. It would use the calls and features of G5.

Documentation is apparently not his thing, we could build upon his notes.

Alint would need to be updated for the Geneforge world, that is presumably not too hard. I just looked at a G4 script, it was quite intelligible to anyone familiar with BoA.

 

Actual Blades of Geneforge scenarios would not need to be created he could just translate the four Spiderweb BoA scenarios. If he was really pressed for time he could just skip the scenarios and let us do them.

Instead of Bas files, Blades of Geneforge would have aGF5ScenData.dat files.

 

This idea would need Jeff to make a slight alteration to the game so that it could work like BoA:

one scenario per scenario folder

all scenarios can access the same default graphics

all scenarios can access the same default scripts

all scenarios can use custom graphics, scenario scripts and scenario data scripts

a scenario selection dialog screen would need to be created

 

Until and unless this happens you would need to have multiple aGF5ScenData.dat files in your Geneforge 5 Files folder, one file per scenario. Unused scenarios would have their file names prefixed by letters or numbers: aaaGF5ScenData.dat, abaGF5ScenData.dat, acaGF5ScenData.dat...

Ditto multiple Save# and Scripts folders would be needed.

Edited by Nikki.
fixed title after merge

Share this post


Link to post
Share on other sites

BoA Editing does not come easy, there is definitely a learning curve. Once you understand how the calls work, you then need to know which call to apply in a given situation. You may find the limitations of Avernumscript leave you unable to do something...

 

Any Blades of Geneforge would have calls usually like those found in BoA, if you could master the latter, the former would be easy enough.

Share this post


Link to post
Share on other sites

As Nethergate: Resurrection uses the Blades of Avernum engine, a new editor for it is simply made, just make a few alterations to the BoA 3D Editor. It seems you would need to alter the source files that describe what is in the bas file. Stuff that occurs in BoA but not N:R would need to be cut out. Shortcut, wholly irrelevant functions can be simply removed from the menus but left in the source code.

Instead of Bas files, Blades of Nethergate would have Celt Data.dat, Roman Data.dat and Shared Data.dat files. Outdoor.dat may not be needed for all I know, it does nothing?

 

Documentation is apparently not Jeff's thing, we could build upon his notes.

Alint would need to be updated for the Nethergate world, that would be straightforward as there are not too many new calls.

 

Actual official Blades of Nethergate scenarios would not need to be created he could just translate the four Spiderweb BoA scenarios. If he was really pressed for time he could just skip the scenarios and let us do them.

 

This idea would need Jeff to make a slight alteration to the game so that it could work like BoA:

one scenario per scenario folder

all scenarios can access the same default graphics

all scenarios can access the same default scripts

all scenarios can use custom graphics, scenario scripts and scenario data scripts

a scenario selection dialog screen would need to be created

Anything that is not hard-coded in BoA but is hard-coded in N:R would need to be now accessible from scripts.

 

Until and unless this happens you would need to have multiple Celt/Roman/Shared Data.dat files in your Nethergate Data folders, one file per scenario. Unused scenarios would have their file names prefixed by letters or numbers.

Ditto multiple Save# and Celt/Roman/Shared Data folders would be needed. Instead of a scenario data script you would alter the core data scripts directly.

 

N:R has provision for boats and horses, being derived from BoA.

Boat will return to its original outdoor location if you leave it while outdoors. I created a boat in the Temple of Brigantia, getting it out of the town was tough. It wound up on a piece of ground north of the Temple, that is where it returns when you leave it outdoors. It seems you can leave it while in town, it won't vanish. If you save while in a boat, the boat will still be there when you reload the save game.

(You have to fiddle the graphics to get appropriate boat graphics.)

You can't dismount from horses when you are outdoors. Currently there are no graphics showing the party on horseback.

Share this post


Link to post
Share on other sites

Yeah, I've gone ahead and merged the Blades of Geneforge and Blades of Nethergate topics together - we don't need a bajillion Blades topics, especially considering Vogel's reluctance to touch the Blades game he HAS made.

Share this post


Link to post
Share on other sites

Jeff is a one-man band who must do all the programming himself. I figure he still can't afford to hire a programming assistant. He is presumably busy on Avadon 2.

Someone might be able to sell him on Blades of Geneforge because it won't take much time:

Release an editor he already has.

Make some quick changes to the code, which he can borrow from BoA.

 

Blades of Nethergate is mostly possible now. Required changes to the BoA Editor are fairly basic, even I could do them. Open, Save and New Scenario functions will need to be rewritten, that is the biggest task and it is easy enough.

I can already view the Nethergate: Resurrection data files in the usual 3D BoA Editor, it just requires padding the front of the N:R files with BoA-looking stuff.

 

More thought on how it would work:

Blades of Geneforge or Blades of Nethergate are not new games, they are slightly modified versions of the original games, Geneforge 5: Overthrow and Nethergate: Resurrection.

Original game is now a scenario, in a folder by itself. The folder would hold any scripts or graphics that are relevant only to the plot of the original game. No need for a scenario data script, the original game would use the unmodified game data scripts.

 

Registration works as it does now, you can only play a bit of the original game without registering. Scenarios presumably can't be played unless the game is registered.

If you were registered for the original GF5 or N:R you are automatically registered for Blades of Geneforge or Blades of Nethergate.

Edited by Ishad Nha

Share this post


Link to post
Share on other sites

I don't see how releasing his editor could be disadvantageous either. To add suggestions, a scenario could contain maybe 10-20 zones and as it's different from the classic Avernum's indoor-outdoor concept, each zone can have four exit-directions, each pointing to another zone, and if any of these four directions are meant to be unreachable, you block it off with trees or walls. But hey, I guess this is how his editor (probably) works like in the first place.

 

Even 5 developers working on making quality scenarios would, I'm sure, revive interest in the Geneforge.

Share this post


Link to post
Share on other sites

I don't see how releasing his editor could be disadvantageous either.

Because it isn't designed for public use, and therefore is 1) tailored to his own unique taste, which may not reflect the best way someone not familiar with the code would do things, 2) is poorly-documented, 3) only designed to work on his system, 4) is very unpolished and probably full of bugs.

 

Hell, that's assuming he has an editor at all, he might just have bunches of simple utilities that convert, say, XML into the proper data files.

 

The issue here is that if Jeff releases any sort of Blades thing, he has an obligation to support the people who paid for it. That means squashing bugs, writing documentation, filling out the scripting language (and documenting it). Supporting a Blades-like game takes a lot more effort than a normal game, simply because the possibilities are much more diverse. Jeff presumably doesn't want to do that (as can be evidenced by saying he would never do a Blades game again).

 

not to mention you know boa was kind of a flop and almost put him in the poorhouse so yeah

Edited by S▒y░░e▒
because if you dont keep supporting a product, that's mail fraud!
Tyranicus likes this

Share this post


Link to post
Share on other sites

"Because it isn't designed for public use, and therefore is 1) tailored to his own unique taste, which may not reflect the best way someone not familiar with the code would do things, 2) is poorly-documented, 3) only designed to work on his system, 4) is very unpolished and probably full of bugs."

Blades of Nethergate, I can write the editor myself, no problem here.

Blades of Geneforge, that is another matter altogether. An Editor will be best if we can get the source code and make one that suits us.

 

"Hell, that's assuming he has an editor at all, he might just have bunches of simple utilities that convert, say, XML into the proper data files."

I suspect he does, check out the G1600 to G1616 Bitmaps in Geneforge 5, they are the same size as BoA Editor icons too.

 

"The issue here is that if Jeff releases any sort of Blades thing, he has an obligation to support the people who paid for it. That means squashing bugs, writing documentation, filling out the scripting language (and documenting it). Supporting a Blades-like game takes a lot more effort than a normal game, simply because the possibilities are much more diverse."

We can do a lot of this work ourselves to spare him the effort.

 

"Jeff presumably doesn't want to do that (as can be evidenced by saying he would never do a Blades game again)."

The one thing that might arouse his interest is that we are talking about extensions/add-ons to proven existing games, we are not talking about wholly new games.

Share this post


Link to post
Share on other sites

"The issue here is that if Jeff releases any sort of Blades thing, he has an obligation to support the people who paid for it. That means squashing bugs, writing documentation, filling out the scripting language (and documenting it). Supporting a Blades-like game takes a lot more effort than a normal game, simply because the possibilities are much more diverse."

We can do a lot of this work ourselves to spare him the effort.

If he's selling it for actual money, it needs to meet some standard of quality, and hoping people on an internet forum fix it up for him isn't good enough.

 

If he's giving it away for free, getting a release sorted out would be somewhere in the priority list below "anything someone might pay him for"

nikki., sylae and Iffy like this

Share this post


Link to post
Share on other sites

"If he's giving it away for free, getting a release sorted out would be somewhere in the priority list below "anything someone might pay him for""

As long as it gets onto a priority list.

Humble Bundle may be our friend here, that seemed to pay off.

If he uses an existing game there is no risk factor that the Blades of Nethergate/Geneforge/Avadon may flop.

 

He probably has something like Alint or Ascript for his all scripted games, said games are usually free of major scripting errors.

Share this post


Link to post
Share on other sites

you do realize that when he made the current bladeses he was already "[using] an existing game", and as boa proved there is, in fact, a risk factor.

Share this post


Link to post
Share on other sites

I can't find the emails right now, but Jeff more or less considers BoA a morass, and one that he does not want to tangle himself up in again. If he's reluctant to do anything with the game editor he's already made and released (and why wouldn't he be - it's not like we're the most active part of the community), he's probably also reluctant to sink time and money into another 'Blades' game. And that's ignoring the fact that if it weren't for Avernum 4, SW would have gone bust due to BoA's appalling sales, and the time it took to make the game.

 

Jeff doesn't take risks. His company barely survived BoA. I can't see him jumping on board with a whole slew of Blades games, ever.

Share this post


Link to post
Share on other sites

The Blades of Nethergate: Resurrection/Geneforge 5: Overthrow/Avadon/Avernum: Escape From the Pit/(Whatever) games will be slightly-altered versions of the proven existing games. Just enough alterations to enable scenario formats. None of them would be new games, unlike BoA. Hence the time, effort and risk for Jeff would be minimal.

Blades of Nethergate would be Nethergate: Resurrection with a few alterations to enable scenario usage. It is mostly viable now.

Share this post


Link to post
Share on other sites

Okay, I have a question for you: would you design and release a scenario using any of those engines? Have you created anything for either of the Blades games that have been released? Any time that Jeff sinks into a game/project that does not sell is time taken away from projects that WILL sell.

 

Jeff has said no to more Blades games; we have to do the best with the two we have rather than think of ways to make every single game he's ever released a vehicle for user-created content.

Share this post


Link to post
Share on other sites

yes, because the only changes jeff makes to his game engines are cosmetic and definitely never anything beyond changing some avernumscript-esqe scripts and dropping in new graphics.

Share this post


Link to post
Share on other sites

BoA too essentially reused whatever engine he had lying around for the earlier Avernums. It was still a huge amount of work, and as noted nearly got him bankrupt.

 

There's no way he'd do that again, especially for something unpopular and story-based like Nethergate.

Upon Mars. likes this

Share this post


Link to post
Share on other sites

"Okay, I have a question for you: would you design and release a scenario using any of those engines?"

Would any sane person play something that I had written? Probably not. I am very much lacking in literary creativity. Actually playing something written, rather than ported, by me would be an indication of real desperation. (If you end up in Hell that is probably what you will be doing through all eternity.)

 

"There's no way he'd do that again, especially for something unpopular and story-based like Nethergate."

Original Nethergate did not do that well. How well did Nethergate: Resurrection do in sales?

 

Come on everyone, be more positive, the important thing here is that we now have an idea which is more practical than genuinely new Blades of Spiderweb games.

Share this post


Link to post
Share on other sites

BoN doesn't even make any sense. I can see wanting BoG for the real time out of combat movement and creation stuff, even though it isn't going to happen, but what need would we have for a BoN? My memory of it may be rusty, but I'm fairly certain N:R has pretty much the same engine as BoA, and anything missing that you strictly need for a scenario can be done with some creative coding with custom abilities or items and whatnot. Yes, even the differentiation between Roman/Celts ablities or whatever else Nethergate had.

 

I'm not sure where the practical idea is, here. It'd be difficult just getting something like BoA's source code from Jeff, let alone getting him to throw random geneforge editing stuff at us, if that's what you're suggesting.

Share this post


Link to post
Share on other sites

"My memory of it may be rusty, but I'm fairly certain N:R has pretty much the same engine as BoA"

It is basically the same engine with a few tweaks.

"and anything missing that you strictly need for a scenario can be done with some creative coding with custom abilities or items and whatnot."

That gets pretty tough, for example trying to replicate the interesting Druidic spell structure in BoA should be a pain. Interface of the original game is classy and professional, unlike the BoA imitation.

 

"I'm not sure where the practical idea is, here. It'd be difficult just getting something like BoA's source code from Jeff, let alone getting him to throw random geneforge editing stuff at us, if that's what you're suggesting."

We won't need source code for the games, only the code for the game editors. That is the situation we currently have with BoA.

Share this post


Link to post
Share on other sites

I'd almost convinced myself that making a BoG request was a naive-Spidweb-newbie-tradition-thing, so I'm happy that an old member with scripting/coding experience thinks its okay too.

Share this post


Link to post
Share on other sites

I asked Jeff during Nethergate: Resurrection about making another game using that engine with a different pair of forces in the same idea of rational fighters versus magic users. He said that he was never going to use the BoA game engine again.

 

Much as some players like to make their own scenarios using the other game engines, I don't see him ever investing the time to fix up the programs he use to a level that others can use. Jeff hates writing documentation and making sure the code is rigorous for others to use without bugs.

Share this post


Link to post
Share on other sites

That gets pretty tough, for example trying to replicate the interesting Druidic spell structure in BoA should be a pain. Interface of the original game is classy and professional, unlike the BoA imitation.

You can create a huge variety of custom spells in BoA that have a nice interface, or at least a passable interface. I did this in Exodus. You can also import all the Nethergate graphics. I did this (partially) in Lord Putidus. BoN would serve no purpose, because we can do Nethergate in BoA.

 

BoG would be kind of fun, but I'd rather that Jeff do what he's good at, which is non-Blades games.

Upon Mars. likes this

Share this post


Link to post
Share on other sites

"...I don't see him ever investing the time to fix up the programs he use to a level that others can use. Jeff hates writing documentation and making sure the code is rigorous for others to use without bugs."

His programs would seem to be pretty good, his games are bug-free.

We can do any work here for him.

 

"You can create a huge variety of custom spells in BoA that have a nice interface, or at least a passable interface."

Druidic spell structure is based upon five Druid spell Circles, not the Tolkienesque dichotomy of Priest and Mage. As this involves skill points it gets tough to put it into BoA.

Upon Mars. likes this

Share this post


Link to post
Share on other sites

"You can create a huge variety of custom spells in BoA that have a nice interface, or at least a passable interface."

Druidic spell structure is based upon five Druid spell Circles, not the Tolkienesque dichotomy of Priest and Mage. As this involves skill points it gets tough to put it into BoA.

 

SDFs could be used for spell levels. Pretty easily I imagine.

 

The fact is, though, that this isn't going to happen. If you think that it might, feel free to send JV an email and find out his opinion on all this - you certainly don't seem satisfied with what everybody else has suggested.

Share this post


Link to post
Share on other sites
his games are bug-free.

 

what

 

I beg to differ.

Edited by S▒y░░e▒
seriously dude, AAA studios can't make bug-free games how is some dude in a basement going to

Share this post


Link to post
Share on other sites

 

There aren't many bugs there that are actually worth mentioning. I have never experienced a fatal or dramatic bug in BoA that has changed my gaming experience. Sometimes you find the odd bug, usually for obscure things. But you can usually find a way around it or simply try to read up on it. Chances are you've misinterpreted how the script may work (As I have done many times).

Share this post


Link to post
Share on other sites

If Jeff said he was ok with someone making an unsupported editor, that would be sort-of doable (obviously would help if he also gave out at least the scenario format!), but I don't think there would be enough interest in making stuff anyway, and it's not like he has anything to gain by doing it.

Share this post


Link to post
Share on other sites

It would be an alternative for anyone who was interested, everyone would know that it was possible if they wanted to devote the effort to it.

The effort would not be as great as all that. Blades of Nethergate is mostly possible now. Blades of Geneforge would take a bit longer, needing a new editor.

 

I am looking at what is where, I have clear plans to proceed if Jeff neither helps nor forbids the idea.

Edit:

Jeff has just sent me an email that made it clear he does not want to get involved. I have written back asking if he will permit us to do anything privately.

Only other option: we could all send an email to Jeff indicating our support.

Share this post


Link to post
Share on other sites

Jeff has just sent me an email that made it clear he does not want to get involved.

 

If Jeff is neither friendly nor hostile towards the creation of such an editor, and if he doesn't provide the scenario format, can the GF5ScenData.dat file structure be understood by just analyzing it ?

 

(I hope this doesn't sound rebellious to Spiderweb loyalists; of course nothing can be done if Jeff is totally against the idea, but I would like to know how far we can reach if Jeff is unhelpfully neutral)

Share this post


Link to post
Share on other sites

I believe it could be decrypted, trial and error would yield some clues.

I was able to decrypt the A1, A2 and A3 town records for the template scenarios involved.

Share this post


Link to post
Share on other sites

If Jeff is actually ok with the creation of an editor and gives the scenario format (i.e. the relevant header files/whatever from the game) I'd be interested.

 

I thought there was a licence agreement thing saying that you wouldn't reverse engineer etc. (definitely one for BoA) but I can't seem to find it in the GF5 files. If there isn't anything forbidding that, I might (hypothetically) say that I'd messed around a tiny bit with the scendat shortly after GF5 came out, but didn't do much and no longer have what I did.

Share this post


Link to post
Share on other sites

We won't be making any money from it ourselves. If the idea takes off he might come on board...

 

I have worked out the structure of the GF5ScenData.dat file. Interestingly enough it has provision for a scenario name. This will be handy.

 

Special Item names, Special Item descriptions, Quest names, Quest descriptions and Item Descriptions are hard-coded, written into the G5 program itself. But they can be customized with a program that alters the text of the G5 program. A backup will be made. It can be GUI not Command Prompt. One of its options would be to restore the original game by reversing any alterations to the G5 program. So "G5Shell.exe" would carry a list of the text in the original game. It would be valid for any version of a G5 program.

 

Functions

(1) Restore original G5 text. The text will be stored in a data file someplace.

(2) Check version, if not the same as before it will then look for the start of the listings of Special Item names, Special Item descriptions, Quest names, Quest descriptions and Item Descriptions. This information it can store in an ini file.

It can look for the listings of default G5 objects or it can consult a scenario's data file.

(3) Alter text in Geneforge 5.exe

(4) Save the alterations to a data file. Thus it is easy to switch between scenarios by use of data files.

(5) Create a backup of Geneforge5.exe.

(6) Show which scenario is currently installed.

Share this post


Link to post
Share on other sites

I have worked out the structure of the GF5ScenData.dat file. Interestingly enough it has provision for a scenario name. This will be handy.

 

How did you do that, by just seeing the files ? I got as far as downloading a hex-editor and opening the .dat file. Though I knew it was a binary, I was expecting to make more sense out of it than I actually did.

Share this post


Link to post
Share on other sites

I opened the file in the Edit command of the Command Prompt. To access this, just type Edit at the Prompt, then hit Enter.

 

Offset 106 has a value of 82, which is the number of towns.

Offset 108 has a value of 25, which is what? I don't know.

There is a 20*100 set of records starting at offset 112. Looking at the outdoor town icons leads me to believe the array starts at 112 and not 110. Each record includes where the town appears on the outdoor map and what icon it has there. It also includes which towns are available from each of the four exit directions.

 

At offset 2,560 the town records occur: 82 * 52,088 = 4,271,216.

2,560 + 4,271,216 = 4,273,776 = the size of the file.

It seems all town records have the same size of 52,088 Bytes. Hence all are 64x64 in size!

Here are the latest guesses:

Within each town record you seem to have 64x64 = 4,096 Bytes of floor map. Then the same for terrain, which seems to one Byte not two as in BoA.

Then 4,096 Bytes of lighting?

Then you have the objects, a sub-set of what would be terrain in BoA. Objects may be listed by coordinate not mapped.

Edited by Ishad Nha

Share this post


Link to post
Share on other sites

Useful tools:

(1) Spreadsheets often have a Hex2Dec function which turns all hex numbers into decimal. Decryption is far quicker then.

(2) Most hex editors allow you to choose the width of the hex display, this makes patterns very easy to spot.

 

Now I am going to make a list of all item, creature, terrain type and object names.

I am now working on town 1 in GF4, Southforge Citadel. (When played on my old PC GF5 maxes out my CPU usage, which you can hear all the time. Also I am much more familiar with GF4.) GF4 seems to have the same structure as GF5.

 

Using a spreadsheet, a hex editor and the BoA Editor I was able to quickly whip up lists for all five object types: Floor, Terrain, Object, Creature and Item.

I have been able to port the Zone (Town) 1 walls into a BoA scenario. This tells me what the coordinates of a given point are, this is very useful to decryption. Not all GF wall types can be ported to BoA but the Editor icons can make up for that. Editor icons can represent the reality of GF4 not BoA. I am not trying to port GF4 to the BoA world, I am trying to map the floor plan of zone 1.

I will need to learn how graphics templates work in GF4.

As GF4 has only 256 terrain types, I can use terrain slots 256 thru 511 to represent the GF4 objects.

Share this post


Link to post
Share on other sites

Data name Start Length

Town name 0 20

Script name 20 12

Floor[64][64] 32 4,096

Terrain[64][64] 4,128 4,096

Lighting[64][64] 8,224 4,096

Items[220][16] 12,320 3,520

Objects[256][56] 15,840 14,336

Creatures[108][80] 30,176 8,640

Town Entrances[4] 38,816 32

Special Rectangles[60][8] 38,848 480

Specials Called [60][2] 39,328 120

Town Exits[4] 39,448 32

Town Boundary 39,480 8

Mini paths [12][196] 39,488 2,352

The [250][28] path points 41,840 7,000

Navigation Points[8][8] 48,840 64

Floor/Wall Details 48,904 24

Unused Locations [10][8] 48,928 80

Unused 49,008 2,560

Automap Note Locations[10][8] 51,568 80

Automap Notes[10][40] 51,648 400

Unused2 52,048 40

 

52,088 EOF: End of File

 

Floor[64][64], Terrain[64][64], Lighting[64][64]: values are stored in a 64x64 map.

Otherwise, [A][ means there are A records, each of which is B Bytes in length.

Town Entrances are squares where the PC ends up when he enters a town from the given direction: N,W,S,E.

Town Exits are those shaded areas that you click on when you want to leave town in the given direction.

 

If the special id of a special rect is < 100, the dialogue node is called; if > 100 a special node is called.

 

Unused locations are unused in all zones, I don't know what they are, legacy from earlier Geneforge games?

Edited by Ishad Nha

Share this post


Link to post
Share on other sites

I was working on the first Geneforge, as it had the shortest download. Its structure is : floors first, terrain second, items third, objects fourth and creatures fifth. There are a last few sections (around 6K bytes) that I couldn't understand, but they must specify the floor tiles which, when stepped upon, bring up a talknode or state which prints text on the play area and the zone-tiles which take you to the outdoor map too (as they don't seem to be contained anywhere else).

 

Zones are 64x64, the floors and terrain are mapped (each tile must compulsorily contain one floor and one tile) but the items, objects and creatures are listed by positions. Each zone is 38796 in length because of which even non-existent entities must be represented by a series of hexadecimal F's.

 

There's a problem with town script names. I changed "docks" to "d*cks" in the scenario but the game refused to start up even though I'd renamed the corresponding file in the scripts folder.

 

Doubts

-------------

  • Does anyone remember which that area is, where what is apparently a row of trees suddenly gives way to a clearing with a supply cache and canister ?
  • Memory cells, x, y, friendly-state etc are okay, but where is the level of each creature stored ?
  • Object scripts are properly represented in hex, but creature scripts seem to have their first letter cut off (ornks have the value "locknpc" which I suppose means "flocknpc")
  • You said G5 has 52088 bytes, so 13292 bytes are extra for G5, what do G5 scenarios have that G1 doesn't ? (I believe there is no lighting for G1)

(1) Spreadsheets often have a Hex2Dec function which turns all hex numbers into decimal. Decryption is far quicker then.

 

That's neat, I'll check that out.

Share this post


Link to post
Share on other sites

"Memory cells, x, y, friendly-state etc are okay, but where is the level of each creature stored ?"

It may be fixed for each creature type, decreed in the scenario data script.

 

"Object scripts are properly represented in hex, but creature scripts seem to have their first letter cut off (ornks have the value "locknpc" which I suppose means "flocknpc")"

There is no such script as "locknpc", so it is presumably a deleted "flocknpc" script.

 

"You said G5 has 52088 bytes, so 13292 bytes are extra for G5, what do G5 scenarios have that G1 doesn't ? (I believe there is no lighting for G1)"

Lighting for starters, if that is what it is. I still am not finished with G4, I am having trouble figuring out what is going on. Placed specials seem to work differently, town scripts are much simpler.

 

"(1) Spreadsheets often have a Hex2Dec function which turns all hex numbers into decimal. Decryption is far quicker then."

Microsoft Works spreadsheet has no such function. But Excel does, ditto the Open Office Calc program.

 

Edit:

I am having trouble understanding the placed specials, how they are called. (How numbers in the dat file call a special.) It seems very different to BoA.

Share this post


Link to post
Share on other sites

As far as I can tell, the possible floor types available in a town vary from town to town. I altered the floor maps of towns 0 and 2, every floor type was shown in a grid. The two towns had different varieties of possible floors.

 

Creating lists of creatures, items, objects, whatever for G5 or any other Spiderweb game of the last decade:

 

Aim here is only to create lists. One idea, make backups of the core BoA data scripts and use them. Then use the BoA Editor to churn out the names. I will use a list of Creatures as an example. This avoids contamination of data when the GF5, or whatever, script leaves slots unused.

 

Firstly I want to get rid of everything in the list except for begindefinecreature, import, clear and cr_name. Simply use Replace All to replace any "cr_" with "// cr_", this comments out any thing that might not be a valid call in BoA. It throws out everything, what we want along with what we don't. Next use Replace All to change "// cr_name" with "cr_name". This restores the "cr_name" to the list of valid functions.

This approach also works for item, floor and terrain types. For objects, change the "ob_" to "te_".

Edited by Ishad Nha

Share this post


Link to post
Share on other sites

Jeff sent me an email which I understand to mean that he can't get involved for licensing reasons but our project has his blessing. (We really need his notes!)

 

Making some sense of the specials now that I understand where they are found.

Text of signs is stored in the town script:

Sign text is a special state = 100 + Townscript state

 

States 1,3,4,9,193: check the begintalknode # in the town dialog script.

Share this post


Link to post
Share on other sites

It's great to hear that Jeff is totally okay with this :)

 

scrgif.gif

 

unknown%20map%201.gif

 

scen%201%20%20num.png

 

 

I'd mapped the scenario coordinates onto a console, and this is what it looks like. The first pic shows a +5 Unlock canister placed at the game beginning, the second shows a symbolic map of the first scenario with all the unknown points marked in "?" and the third shows all floor values in decimal. I'll upload a program to automate some scripting steps and to help map coordinates.

 

The points marked by "?" in the second pic are frustrating. Ishad Nha, are these what you called "special rectangles/called" in your previous post ? Some of them do form neat rectangles, but I couldn't figure out how they're triggered and I just have a vague impression that going somewhere near these points brings up a talknode.

Upon Mars. likes this

Share this post


Link to post
Share on other sites

I have designed a spreadsheet that allows conversion of features of a Geneforge town to a format suitable for display by a BoA Editor. This shows the exact coordinates of a given square. It only covers a 2D display not a 3D one but it is still useful for decryption.

 

"The points marked by "?" in the second pic are frustrating. Ishad Nha, are these what you called "special rectangles/called" in your previous post ?"

Currently I am doing G4/G5 not G1. I will need to break off and have a look at your problem, this may take a while...

I will need to decrypt G1, it is different to G4/G5.

Share this post


Link to post
Share on other sites

I've no BoA scripting experience and know nothing about the editor, so I'm afraid I can't help in any way in porting it to Geneforge. What I can do, however, is to create a command-based tool which can be used for testing or for inserting/removing immediate entities (items/objects) into a scenario in a more simplified way.

 

Here is the program as it stands. It is not created/supported by Spiderweb Software, the creators of Geneforge and the same has been mentioned in the readme. Don't forget to create a backup of the GFScenData.dat file contained in your game's 'data' folder before using it.

 

http://www.directlin...ousDrayk.rar(For Geneforge 1, Windows)

Share this post


Link to post
Share on other sites

I am not porting GF# to BoA in the way that you port BoE to BoA. The "scenarios" are not playable and are not meant to be. I am just using the 3D Editor the way you use your console.

 

I have GF1 town 0 data converted to decimal format. Now I can look through it and see what its structure is.

Edit:

I figured out the scenario lists of names for floor types, terrain types, objects, creatures and items.

Now I will check my lists of Zone 0 items and objects, see if they are accurate.

Share this post


Link to post
Share on other sites

This is my understanding of the Geneforge 1 Zone data record:

Data Type, Start, Length

Town name 0 20

Script name 20 12

Floor[64][64] 32 4,096

Terrain[64][64] 4,128 4,096

Items[120][16] 8,224 1,920

Objects[256][56] 10,144 14,336

Creatures[108][76] 24,480 8,208

Town Entrances[4] 32,688 32

Specials[60][8] 32,720 480

Specials[60][2] 33,200 120

Town Exits[4] 33,320 32

?Town Boundary 33,352 8

?? 33,360 1,968

??[120][28] 35,328 3,360

?? 38,688 108

38,796 EOF

 

Generally the format is the same for G4/G5.

 

??[120][28] 35,328 3,360

has a format like:

0 1 0 0 0 0 0 10 0 0 0 55

0 1 0 0 0 0 0 14 0 0 0 55

0 1 0 0 0 0 0 10 0 0 0 50

0 1 0 0 0 0 0 14 0 0 0 50

0 1 0 0 0 0 0 18 0 0 0 52

0 1 0 0 0 0 0 21 0 0 0 55

0 1 0 0 0 0 0 25 0 0 0 56

Edited by Ishad Nha

Share this post


Link to post
Share on other sites

That's fantastic work. Hm so the town entrances and specials come after the creatures; I'll play around a bit with the bytes.

 

I am not porting GF# to BoA in the way that you port BoE to BoA.

 

Isn't modifying the BoA Editor source to make it able to create G# scenarios what we are doing ?

Share this post


Link to post
Share on other sites

"Isn't modifying the BoA Editor source to make it able to create G# scenarios what we are doing ?"

Yes, after we have decrypted the Scendata.dat files. "Port" means to make a fully functional translation of something, which is not my goal here. I am not trying to make GF# into a fully playable BoA scenario which you can play with the BoA game.

Here I am using the BoA Editor to enable understanding of GF# so we can make a GF5 Editor.

 

As for the

0 1 0 0 0 0 0 10 0 0 0 55

0 1 0 0 0 0 0 14 0 0 0 55

0 1 0 0 0 0 0 10 0 0 0 50

0 1 0 0 0 0 0 14 0 0 0 50

we could place terrain scripts on those squares and see if any patterns become obvious.

 

I have created a Microsoft Works spreadsheet that enables porting of features of a GF1 town into a BoA town. Thus you can see the placed specials.

 

Here is the list of placed specials from town 0:

Y X Y X

0 48 0 8 0 52 0 14

0 53 0 9 0 53 0 11

0 53 0 32 0 58 0 32

0 44 0 32 0 45 0 34

0 43 0 28 0 45 0 29

0 55 0 24 0 57 0 25

0 42 0 26 0 42 0 28

0 56 0 37 0 58 0 37

0 33 0 42 0 36 0 45

0 29 0 46 0 31 0 46

0 36 0 13 0 36 0 15

0 27 0 13 0 27 0 15

0 47 0 26 0 49 0 28

0 25 0 10 0 25 0 22

0 24 0 55 0 26 0 58

0 28 0 56 0 30 0 58

0 8 0 16 0 9 0 38

0 22 0 39 0 26 0 40

0 55 0 41 0 58 0 41

0 53 0 43 0 53 0 43

0 54 0 43 0 54 0 44

0 53 0 18 0 53 0 20

 

Here is the list of specials actually called by the above rectangles:

0 110

0 1

0 2

0 111

0 112

0 113

0 4

0 114

0 115

0 7

0 8

0 8

0 3

0 9

0 116

0 117

0 118

0 119

0 121

0 120

0 6

0 122

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0