Пятница, 15 Ноября 2024, 16:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Большая динамическая карта [2D]
Me11eRДата: Вторник, 08 Февраля 2011, 02:16 | Сообщение # 1
частый гость
Сейчас нет на сайте
Делаю игру. Начал размышлять над структурой карты. Вообщем стало интересно что за фрукт огромная карта без переходов.

В голову залезла пока только одна мысль с матричной структурой карты т.е:
Карта разбита на блоки, одинаковых размеров,
Допустим матрица состоит и 5x5 блоков карты
и игрок находится в блоке (3,3), в память загружены соседние блоки карты, то есть все это имеет вид:

# 1 2 3 4 5 Y
1 Z Z Z Z Z
2 Z Z Z Z Z
3 Z Z Z Z Z
4 Z Z Z Z Z
5 Z Z Z Z Z
X

Z - Блок в котором находится игрок
Z - Блоки загруженные в память
Z - Незагруженные блоки

Тогда при переходе игрока из квадрата (3,3) в квадрат (3,2) мы выгружаем блоки (2,4 3,4 4,4) из памяти и подгружаем (2,1 3,1 4,1). тогда матрица примет вид

# 1 2 3 4 5 Y
1 Z Z Z Z Z
2 Z Z Z Z Z
3 Z Z Z Z Z
4 Z Z Z Z Z
5 Z Z Z Z Z
X

Реальна ли такая система? есть идеи получше?

WarChiefДата: Вторник, 08 Февраля 2011, 02:28 | Сообщение # 2
частый гость
Сейчас нет на сайте
Вполне логично, мне кажется так все и делают.
Me11eRДата: Вторник, 08 Февраля 2011, 02:48 | Сообщение # 3
частый гость
Сейчас нет на сайте
Quote (WarChief)
Вполне логично

Логично то оно логично, только интересно какие грабли мне уготовлены при такой системе.

Может кто имел с этим дело?

RikettaДата: Вторник, 08 Февраля 2011, 03:28 | Сообщение # 4
Strategist
Сейчас нет на сайте
Эт смотря, как и на чем делать.
У этой системы на разных движках свои проблемы.


Fougerite - Rust Server OpenSource API
TerraDev - Terraria OpenSource Hack
ArchidoДата: Вторник, 08 Февраля 2011, 05:00 | Сообщение # 5
Сэнсэй
Сейчас нет на сайте
Me11eR
Так оно всегда и делается. Только мне кажется, что в 2D - это лишнее (слишком мало памяти требуется), от типа игры видимо зависит.
Если требуется подгрузка ресурсов по-ходу (текстуры, скажем), то если движком такое не поддерживается, то это не тривиальная задача.

Правко: Плин), как не странно, но только сейчас обратил внимание, что это 2D biggrin .
Поэтому пост _почти_ удален smile (т.к. расписал все про 3D)


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Вторник, 08 Февраля 2011, 05:26
VinchensooДата: Вторник, 08 Февраля 2011, 05:06 | Сообщение # 6
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Me11eR)
Логично то оно логично, только интересно какие грабли мне уготовлены при такой системе.

Пикод, как я понимаю?
А какие тут грабли? С точки зрения тех. реализации или геймдизайна?
Выделяешь массив 3*3, и при перемещении пересчитываешь, что должно в нем быть, что должно замениться, вот и все. Тут даже дин. массив не нужен.
С точки зрения геймдизайна- единственный минус- в твоей системе- не учтен тип клеток.
Их нужно тоже делать, напр:
1. Пустая клетка
2. Магазин
3. Яма с коричневой жижей
Например, пусть у тебя j- индекс клетки игрока.
if a[j]=3 then state:='Need a shower'.
И так далее.
Для конечной клетки карты(если они не генерируются бесконечно), сделать специальный индекс, чтобы не шел игрок, куда не надо, камера соответственно смещалась.
Вот и усе =)
Как заметил WarChief, все так и делают =)


Me11eRДата: Вторник, 08 Февраля 2011, 08:22 | Сообщение # 7
частый гость
Сейчас нет на сайте
Ну... Всем спасибо, все довольны... новых граблей невидно
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг