Topic: А как правильно делать большие сложные лабиринты?

Нужно сделать большой набор связанных между собой локаций, в которых ГГ будет собирать
разные предметы (имеющие чисто количественное значение), и немного воевать с врагами.
Так же там будет несколько квестовых предметов. А-ля мини-рогалик smile
Нужно, чтобы расположение генерилось процедурно при старте игры, и более не менялось.
Как бы минимализировать хранимые данные? Локации строятся по единой схеме,
там есть мебель (в том числе контейнеры типа шкафов и сундуков), могу быть "ресурсные предметы",
могут быть квестовые предметы, могут быть NPC.

И еще попутный вопрос - есть объекты, меняющие не только название, но и использование, типа [1] = 'нечто', [2] = 'горшок' [3] = 'черепки' , и использовать можно в состояниях 2 и 3, и в разных целях. Как лучше такое делать - разные объекты подменять, или сделать один с функциями на nam, tak, dsc?

Re: А как правильно делать большие сложные лабиринты?

Массивами. Почитай документацию луа, я как-то заморачивался картами и делал что-то по логике похожее. В "Полете в бездну" карты высадки Боло и поля астероидов генерируются рандомно.

Re: А как правильно делать большие сложные лабиринты?

Ну про lua я знаю, мне бы в архитектурном плане

4 (edited by skiminok1986 2013-12-09 22:20:52)

Re: А как правильно делать большие сложные лабиринты?

В случае с инстедом это не сложно сделать. Есть некий пул локаций, которые можно создавать динамически (если они могут повторяться) или же вобще они статичны (если все локации уникальны). Далее при входе на локацию дёргаются локации из пула (если надо, то создаются новые) и кидаются переходы на них. И в каждом enter дёргается эта функция. Собственно, я так понял задачу.

Это если связи между локациями представляют дерево. Для графов можно просто не делать пометки об использованных локациях при уникальных локациях. А вот при повторяющихся даже и не знаю. Лень сейчас серьёзно думать на эту тему smile

Re: А как правильно делать большие сложные лабиринты?

Я бы сделал один объект с функциями и переменной состояния. ИМХО, это более правильный путь.

Re: А как правильно делать большие сложные лабиринты?

Большие сложные лабиринты лучше не делать.  wink

Re: А как правильно делать большие сложные лабиринты?

Всё зависит от того как их представлять в игре smile

Re: А как правильно делать большие сложные лабиринты?

Короче, есть часть игры, представляющая из себя условно "рогалик".
То есть есть более-менее представимая в виде карты область из комнат, связанных между собой переходами.
В комнатах есть разные неуникальные предметы, уникальные предметы, и разные уникальные/неуникальные
NPC. Комнаты по идее все уникальные, хотя и сторятся по одному принципу (тка как в них бывают разные предметы и npc). Всё должно быть достаточно рандомно (кроме количества комнат и их расположения, то есть переходы (в том числе их наличие и отсутствие), предметы/npc - рандомны, количество и расположение - нет.
Хочется придумать оптимальное представление, чтобы это было быстро, и не жрало много памяти.

Что косается нужности этого всего - за штраф виде потери некоторой премиальной составляющей, момент, скорее всего будет проходиться посещением всего нескольких локаций. Еслия не передумаю smile