Level decompilation update.
Posted: Thu Jul 06, 2006 10:43 am
I've made some good progress, I now understand 99% of the level data and can extract all of the line and point data (including timers and tension) as well as all the sundry stuff like budget, 'dillo and portal positions. There is one block of data that I still don't understand. It comes just after the geometry blocks and is a single empty word on most levels. However in some of my saved levels it is a long list of what looks like indices into the geometry lists. Any ideas anyone?
In more positive news I've discovered some interesting fields that are inaccessible from the editor, but which are still supported (to various degrees by the game):
Armadillo size: stored just after the X and Y coordinates, defaults to radius 0.5. Changing this allows you to change the 'dillo size. I haven't done a lot of testing, but this seems fairly robust. Interactions with the level seem to work fine (I'm not sure if the 'dillo mass increases, I suspect not). You can create a level where the 'Dillo is larger than the portal (which would normally mean the level would never finish), but it seems to be that in this case the game swaps the rules about the armadillo having to be 100% inside the portal to the portal having to be 100% inside the armadillo for the level to end.
Armadillo/portal count: You can specify more than one pair of armadillo/portal coordinates. This is a bit more flaky. Firstly each armadillo will only correspond to it's matching portal, but there is no way to tell visually which is which. Secondly there is no 'dillo-'dillo collision, they just pass right through one another, and finally the level ends as soon as any one armadillo warps out (rather than all of them having to have left the level).
I'm not going to release anything until:
a) I understand the whole structure
b) I've written scripts that can be used to detect the cheating that this power makes possible.
Cheers
Tim
In more positive news I've discovered some interesting fields that are inaccessible from the editor, but which are still supported (to various degrees by the game):
Armadillo size: stored just after the X and Y coordinates, defaults to radius 0.5. Changing this allows you to change the 'dillo size. I haven't done a lot of testing, but this seems fairly robust. Interactions with the level seem to work fine (I'm not sure if the 'dillo mass increases, I suspect not). You can create a level where the 'Dillo is larger than the portal (which would normally mean the level would never finish), but it seems to be that in this case the game swaps the rules about the armadillo having to be 100% inside the portal to the portal having to be 100% inside the armadillo for the level to end.
Armadillo/portal count: You can specify more than one pair of armadillo/portal coordinates. This is a bit more flaky. Firstly each armadillo will only correspond to it's matching portal, but there is no way to tell visually which is which. Secondly there is no 'dillo-'dillo collision, they just pass right through one another, and finally the level ends as soon as any one armadillo warps out (rather than all of them having to have left the level).
I'm not going to release anything until:
a) I understand the whole structure
b) I've written scripts that can be used to detect the cheating that this power makes possible.
Cheers
Tim