World of Tanks Map format.
Posted: Tue Jan 12, 2016 2:37 pm
Hello...
I created an app over the course of a couple years of hacking the .pkg files that loads World of Tanks Maps.
http://worldoftanks.curseforge.com/wot- ... ne/images/
The last version of World of Tanks has removed the .chunk files from the .pkg files.
.chunk files contain all the information about what models belong to each chunk and their transforms.
Maps are made of "chunks' put together to from a much larger area.
It looks like all this chunk information has been moved to a single and fairly large file called "space.bin"
What I know so far.
The beginning of the file is nothing more than a table.
Each entry has a 4 character heading followed by 5 int32 values.
The first table entry describes the table its self.
The 2nd int32 in this the length of the table including the first row.
The 5th int32 looks to be the additional number rows in the table. Each row is 24 bytes long or 6 int32s (including the 4 byte character heading)
We can test this.
For the ENSK map.. the entry count is 18 hex or 24.
24 * 24 = 576. The 1st row says the table length is 258 hex or 600.
IF we add the 24 for the very first row they equal each other.
1st... The order of table entries is probably not going to be the same on every map.
Wargaming likes to scramble things when they export things from their tools.
The first table entry starts with "BWTB" I'd guess this means "BigWorld Table".. BigWorld is the game engine.
The 2nd row in the table has a heading of "BWST" ST could mean "Section Table"
In this row, the 2nd int32 after the header characters = 258h which is the start of the data. (also the total lenght of the table)
the 4th entry + 258h points to the end of the first section. It is the length of the data for this table entry.
Looking at the start of this data, It looks like a list of 4 int32s that are info on the sections.
String length, some index? data index? Chunk end?
I need help sorting this out if anyone wants to give it a try.
I created an app over the course of a couple years of hacking the .pkg files that loads World of Tanks Maps.
http://worldoftanks.curseforge.com/wot- ... ne/images/
The last version of World of Tanks has removed the .chunk files from the .pkg files.
.chunk files contain all the information about what models belong to each chunk and their transforms.
Maps are made of "chunks' put together to from a much larger area.
It looks like all this chunk information has been moved to a single and fairly large file called "space.bin"
What I know so far.
The beginning of the file is nothing more than a table.
Each entry has a 4 character heading followed by 5 int32 values.
The first table entry describes the table its self.
The 2nd int32 in this the length of the table including the first row.
The 5th int32 looks to be the additional number rows in the table. Each row is 24 bytes long or 6 int32s (including the 4 byte character heading)
We can test this.
For the ENSK map.. the entry count is 18 hex or 24.
24 * 24 = 576. The 1st row says the table length is 258 hex or 600.
IF we add the 24 for the very first row they equal each other.
1st... The order of table entries is probably not going to be the same on every map.
Wargaming likes to scramble things when they export things from their tools.
The first table entry starts with "BWTB" I'd guess this means "BigWorld Table".. BigWorld is the game engine.
The 2nd row in the table has a heading of "BWST" ST could mean "Section Table"
In this row, the 2nd int32 after the header characters = 258h which is the start of the data. (also the total lenght of the table)
the 4th entry + 258h points to the end of the first section. It is the length of the data for this table entry.
Looking at the start of this data, It looks like a list of 4 int32s that are info on the sections.
String length, some index? data index? Chunk end?
I need help sorting this out if anyone wants to give it a try.