@synapse_people

Как сделать игровую карту?

Здравствуйте!
У меня родилась идея сделать игру как варкрафт 2(чисто для себя). Выбрал ThreeJS. Возник вопрос: а как лучше всего было бы сделать игровую карту?
Есть вариант делать ее сразу в 3Д-редакторе одним мешем, а есть вариант сделать много мешей(тайлов) и затем уже в игре их лепить.. Подскажите, какой вариант проще и какой производительнее?
А лучше всего, подскажите, как будет правильно реализовать, чтобы потом не было проблем!

Спасибо!
  • Вопрос задан
  • 757 просмотров
Решения вопроса 2
abyrkov
@abyrkov
JavaScripter
Ой...
Существует достаточно много опенсорсных (и не очень) проектов.
Что мешает взять и посмотреть как там реализовано?

Мой личный взгляд - тайлы.
Во-первых, лучше для двига - просчет нескольких простых объектов проще, чем одного сложного.
Во-вторых, легко подправить какую-то часть не меняя всю карту.
В-третьих легко использовать фрагменты многократно.
Но это личный взгляд, много в THREE.js не копался, хотя сам подумываю о своем 3D двиге.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Игровой мир состоит из:
1. Игрового окружения - статичные объекты и атмосфера/освещение)
2. Взаимодействующих объектов игрового мира - изменяющие своё положение во времени в зависимости от воздействия на них каких-либо внешних факторов. Это игровые персонажи, взрывы, технические устройства (автомобили, лифты, платформы и т.д.)
3. Правил (законов) игрового мира - коллизии, скорости, гравитация, урон/броня и т.д.

Как разделять:
1. Всё, что неподвижно или имеет природное происхождение (здания, деревья, трава, дождь, снег, ветер) - относится к игровому окружению уровня и грузится в сцену целиком. Сцена - это весь уровень или его сегмент (локация). Создаётся целиком в 3D-редакторе и загружается также целиком и до начала игры.
2. Все что двигается (динамика) - это объекты взаимодействия 3D-сцены, которые обрабатываются кодом (контролирующим законы взаимодействия). Они также подготавливаются в 3D-редакторе, но по-отдельности: каждый объект - в своём отдельном файле.

Как делить загрузку:
1. Грузим уровень в сцену.
2. Грузим всю динамику, которая должна быть на уровне сразу же после загрузки.
3. Проставляем все характеристики на динамику (координаты, углы поворота, стартовый кадр анимации, игровые характеристики: сколько энергии и т.д.)
4. Пускаем пользователя в готовый уровень для начала игры.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
VGrabko
@VGrabko
Golang, Php, Js
Текстуры лепить в кучу в коде. Так сделано чуть больше чем везде
Ответ написан
Комментировать
@synapse_people Автор вопроса
И все таки вопрос о мешах..
Допустим , есть основа тайла - Plane. Плоская поверхность. У нее 4 vertex, 4 edge, 2 триугольных полигона..
То есть, если расположить 2 тайла, которые соприкасаются друг с другом, то между ними будет 2 edge, вместо 0.
Или как?

А когда карту выгружать из редактора большую, т.е. все тайны склеяны и будет все четко - 1 геометрия на весь обьект
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы