Вниз  Бесшовный 2D мир для онлайн игры
- 8.03.2019 / 23:29
Masters
  Пользователь

Masters 
Сейчас: Offline
Привет ребята! У меня вот какая задача: нужно реализовать 2D мир в онлайн игру на nodeJS, ну так-то это обычный JS, но, меня больше не код беспокоит, а логика загрузки игровой локации. Я уже реализовывал 2D мир, но кубикам, 32х32 клетки, это и есть швы, где подходя к краю, подгружалась новая пачка кубиков, а вот сейчас задача сделать бесшовный мир. Как можно реализовать такой 2D мир без швов? В интернете не могу сформулировать запрос правильный, и натыкаюсь все время на ерунду ненужную. Просьба слишком умных , по типу (бросай это дело, ММО умирает и и т.д.) не беспокоить! Чисто помогите с логическим решением задачи. В файлы закрепляю эскиз участка карты, а мне нужно без швов. Надеюсь на вашу помощь!

Изменено Masters (8.03 / 23:30) (всего 1 раз)


Прикрепленные файлы:
DKHPRo4pFD4.jpg (46.98 кб.) Скачано 143 раза
- 9.03.2019 / 10:09
Death
  Пользователь

Death 
Сейчас: Offline
В любом случае "швы" будут, типо чанки мира. Тот же майнкрафт.
Где есть генерация мира, и тем более бесконечная, есть чанки(зоны) и они часто степень двойки(8, 16, 32, 64, 128).

Как вариант для каждого пользователя грузи чанки в радиусе неком, чтобы на экран влазило и чуть было вне камеры(экрана) и когда он переходит в другой чанк обновляй рядом с ним другие чанки
__________________
 Смерть правит миром
- 9.03.2019 / 12:48
GOFMIDO
  Пользователь

GOFMIDO 
Сейчас: Offline
Пример с майнкрафтом один из самых наглядных, в принципе это всегда так было в тех же изометрических RPG ещё очень и очень давно.
- 9.03.2019 / 12:59
GOFMIDO
  Пользователь

GOFMIDO 
Сейчас: Offline
Кстати, вопрос/идея на тему бесшовного мира. Можно ведь сделать большую проработанную локацию в игре, в которой будет проходить основная часть сюжета, а дальнейшее пространство вокруг реализовать процедурной генерацией. Были ли подобные примеры раньше? Имеется в виду именно! бесшовный мир, а не локация, созданная заранее.

Изменено GOFMIDO (9.03 / 13:00) (всего 1 раз)
- 9.03.2019 / 18:28
Masters
  Пользователь

Masters 
Сейчас: Offline
Короч, появилась вот такая идея. Человек ходит по карте, и вокруг него, грузятся клетки, как уже человек написал выше на таком уровне, что-бы немного за экран уходило. При перемещении игрока, создается массив с клетками, которые нужно подгрузить, сервер присылает данные клетки и что там на них, тут клиент принимает и расставляет клетки по местам. По примеру JSON ловим позицию, проходимо или нет, объект на клетке, если нет то 0 и тип ланшафта. ну тип (32,32,1,0,3) что-то такое ловим за каждую клетку и айс... Однако, это нагрузка. Что значит ваши чанки? я так и не могу понять? Это набор клеток таких с данными?
- 9.03.2019 / 18:37
Magatino
  Администратор

Magatino 
Сейчас: Offline
В твоём случае, можно и всю карту подгрузить, карта размером 32x32 в наше время ни о чём, тем более и скорее всего большая часть этой самой карты будет на экране :gg:
Короче, сформулируй вопрос ещё чётче, а то не понятно :-(
- 10.03.2019 / 17:42
Masters
  Пользователь

Masters 
Сейчас: Offline
Magatino, сама карта мира 2048х2048 загружается она по секциям, маленьким участками по 32х32 клеток. Нужен бесшовный мир, а у меня она вот участками такими загружается. Подходит польователь к краю на позицию 10х32 значит загружается новый участок 32х32. мне нужно чтобы этого перехода не было. Ищу более правильное решение такой задачи. Фотку я закрепил к самому первому посту в этой теме, посмотри туда. Это одна такая секция 32x32 допустим,а сама карта мира 2048x2048. Я же не могу ее всю загружать, игрок будет ждать долго, к тому-же помимо карты нужно обрабатывать персонажей и объекты, так что деление на какие то логические секции необходимо, и не только для карты. Прикинь человек пишет в чат текст, и я же должен его показать не всем, а только тем, кто на его видимой зоне находиться. То-есть нужно как то граничить это, называя комнатами.

Изменено Masters (10.03 / 17:45) (всего 2 раза)
- 10.03.2019 / 18:17
Magatino
  Администратор

Magatino 
Сейчас: Offline
Masters, Ну так загружай, сколько считаешь нужным, хочешь 16x16, хочешь по 32x32, проблема то в другом, а сможешь ли ты, большую карту дополнить интересным контентом для игроков? :gg:
- 11.03.2019 / 16:51
Masters
  Пользователь

Masters 
Сейчас: Offline
Magatino, спасибо пипец как помог! Нет, я эту карту наполнять не буду, программа расставит очень важные объекты, а остальное отдадим в руки самих игроков, ибо в игре будут постройки. Я ведь думал ты знаешь как делать бесшовный мир, а ты пришел покичится насколько ты крут.

Изменено Masters (11.03 / 16:55) (всего 1 раз)
- 11.03.2019 / 18:04
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
Masters, тебе могут подсказать, где копать и дать советы, но за тебя никто не будет думать и делать работу :ded:
Хочешь чего-то добиться - действуй, а не жди благодати :ded:
__________________
 わからない!!
Наверх  Всего сообщений: 15
Фильтровать сообщения
Поиск по теме
Файлы топика (1)