Open sbliven opened 5 months ago
Some notes on extracting game data:
AssetRipper -o planet3scenes_scenes_all --log-file planet3scenes_all.log planet3scenes_scenes_all.bundle
for f in "apk/My Little Universe_2.4.0/assets/aa/Android/"*_scenes_all.bundle; do
AssetRipper -o "scenes/$(basename "${f/.bundle/}")" "$f";
done
Example output:
./ExportedProject/Assets/Scenes/Levels/Level3DungeonE.unity
1013447 --- !u!114 &15598
1013448 MonoBehaviour:
1013449 m_ObjectHideFlags: 0
1013450 m_CorrespondingSourceObject: {fileID: 0}
1013451 m_PrefabInstance: {fileID: 0}
1013452 m_PrefabAsset: {fileID: 0}
1013453 m_GameObject: {fileID: 901}
1013454 m_Enabled: 1
1013455 m_EditorHideFlags: 0
1013456 m_Script: {fileID: 11500000, guid: ae1077617856d8a09bb61e569583f3cd, type: 3}
1013457 m_Name:
1013458 m_EditorClassIdentifier:
1013459 type: 0
1013460 _biomeDataReference:
1013461 m_AssetGUID: fe8b28fcef9d2448dad52108234387e9
1013462 m_SubObjectName:
1013463 m_SubObjectType:
1013464 pivot: {fileID: 6033}
1013465 content: {fileID: 0}
1013466 pawnSpawnPoint: {fileID: 6628}
1013467 connectedConstruction:
1013468 enabled: 1
1013469 value: {fileID: 16272}
1013470 surfaceMeshFilter: {fileID: 10214}
1013471 surfaceMeshRenderer: {fileID: 8790}
1013472 surfaceMeshCollider: {fileID: 11378}
1013473 neighbourGroundTiles:
1013474 - {fileID: 15655}
1013475 - {fileID: 16140}
1013476 - {fileID: 15378}
1013477 customNeighbourGroundTiles: []
1013478 pathNodeIndexes:
1013479 showNeighbourGroundTiles: 0
.unity
files are Yaml formatpyyaml
hardpivot
, pawnSpawnPoint
resources
preloadedLevelElements
groundTiles
milestoneTrackers
content
The neighbourGroundTiles
looked promising. I wrote a script to generate a graph of the connections.
Some observations:
biomeData
corresponds regionsI expected dimidium to have a bunch of small disconnected subgraphs. However, water seems to be represented now but inconsistently. The central red cluster is probably crash site island, but none of the other biomes seem to have the right number of tiles to match the other islands. It's likely that some 'groundTile' entries actually represent multiple hexes; in which case this data is unlikely to be useful.
Creating levels takes a lot of effort currently.
It would be ideal to generate maps from the game files directly. This would ensure that all tiles are correct and complete. It would also make adding or updating maps after new game releases much easier.