Таким образом, лабиринт - это сетка, в которой каждый узел содержит данные.Каждый узел содержит несколько вещей: 1) список ссылок на другие узлы 2) список элементов, доступных на этом узле
Все остальное можно выразить как таковые.
Это предполагает таблицу MAZE, содержащий основные данные о лабиринте, такие как его идентификатор, имя, описание и т. д. Затем есть таблица NODE, содержащая данные об узле.ID, NAME, COORDINATES и MAZE_ID 3-й ITEM, с ID, ITEM_NAME, NODE_ID, ITEM_TYPE и, возможно, другими вещами.
Для ускорения операций поиска вам может потребоваться таблица ссылок MAZE_NODE, содержащая только MAZE_ID и NODE_ID свнешние ключи для обеих таблиц, а также таблица NODE_ITEM с аналогичными полями NODE_ID и ITEM_ID.
Другие столбцы и таблицы могут понадобиться для хранения информации, не относящейся к иерархии данных (например, информации о статистике элементов, условиях среды).в узлах и т. д.).
И это просто очень простая структура данных для лабиринта.Для истории, вам, по крайней мере, понадобятся таблицы с текстами, главами, условиями запуска каждой главы и т. Д. И т. Д. Это в значительной степени не зависит от лабиринта, хотя условия могут включать в себя нахождение игрока вконкретное место в лабиринте, или сказать ему, чтобы перейти к определенному месту.