Друзья! Помогите с Open World в SceneKit!

Ruslan Remenkov

Всем привет!

Решил податься в GameDev для iOS / macOS / tvOS / watchOS / etc., параллельно с изучением Swift. Так вот, в качестве быстрого старта хочу ручками полностью реализовать часть мира (Talking Island) всем известной MMORPG игры Lineage II.

Прочел кучу мануалов по SceneKit (2D), SpriteKit (3D), GameplayKit, Metal, и т.д., но... игровой мир в линейке строится из файлов геодаты (папка /geodata, если кто помнит). Распарсить руками его не могу, т.к. понятия не имею в каком он формате, но я смог выяснить, что мир делится на чанки (chunks), и что всегда в памяти присутствует 9 чанков в момент времени (т.е. центральный, где находится персонаж, и еще 8 вокруг, образуя куб 3x3). Каждый чанк содержит какую-то чудо карту (вершин?!) для "пола" (ландшафта), координаты коллизий (зон, которые невозможно пересечь) и прочие плюшки. Но я не могу понять из чего строится этот ланшафт (landscape, не считая моделей деревьев, город, отдельно валяющихся булыжников и т.д.) игры с натянутой тестурой (песок / трава / камень). Есть подозрения на использование карт вершин (HeightMap) или карт смещения (DisplacementMap). В общем, не могу разобраться как правильно поставить задачу дизайнеру (который тоже в GameDev'e никогда не работал), чтобы отрисовать хотя бы ландшафт мира... :-/

Вопрос: в каком формате нужно использовать геодату для подобного экперимента, и как в SceneKit правильно организовать загрузку / выгрузку таких чанков?

Спасибо!

Ruslan Remenkov больше 1 года назадСпасибо 0
1 чел.