forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Unity (http://forum.boolean.name/forumdisplay.php?f=147)
-   -   Стратегия «Стратегия»)) Редактор карт (http://forum.boolean.name/showthread.php?t=19468)

maewyn 15.10.2014 03:43

Стратегия «Стратегия»)) Редактор карт
 
Здравствуйте. Работаем понемногу над пошаговой стратегией. Решили сначала закончить редактор карт и выложить его.
Собственно вот: http://unitywiki.com/unity-game-155-TBSMapEditor

Для тех у кого нет вебплеера))
Общий вид редактора и обычная генерация

Карта раскрашенная вручную

Влажность на карте


Возможности: Генерация карты произвольного размера(рекомендуется не превышать порог 300 на 300, но вообще тестировалось до 1000x1000, там все дело заняло минуту) по холмовому алгоритму, ручная установка уровня воды, генерация биомов, генерация влажности и высот, возможность раскрашивать карту кистью (16 типов местности), выбор размера кисти, скролл карты(колесиком), создание миникарты, управление камерой с помощью миникарты, включение и отключение сетки поверх гексов, сохранение и загрузка карт(к сожалению, не для браузерной сборки).
Движок редактора, на мой взгляд, достаточно неплохо получился. Вся математика и генерация написана на чистом C# без подключения юнитевских библиотек. Его можно легко усовершенствовать. Только что с паттернами уже не стали заморачиваться.

В планах: добавить несколько новых алгоритмов для генерации поверхности (пока думаем о фракталах), определиться с количеством и содержанием типов местности, завязать расстановку биомов на значения влажности и высоты (или же вместо влажности и высоты выбрать другие параметры, например температуру)

Для осуществления этих планов необходимо до конца определиться с реализацией самой игры. Пока, 3d визуализаия со стандартным террейном и деревьями оставляет желать лучшего. И мы активно спорим, нужно ли переходить на 2d.
Стоит сказать, что пока мы работаем ради своего удовольствия, поэтому писать игру просто ради того, чтобы она была не имеет смысла. На этапе проектирования стараемся найти что-то свое, как в механике, так и во внешнем виде. Руководствоваться и брать за основу будем механику одного из таких старых добрых проектов как Lords of the Realm, Герои. Можно посмотреть в сторону Космических Рейнджеров или же Цивилизации. Ставку хотим сделать на непрямое управление армией и сложные-сложные алгоритмы искусственного интеллекта))) Так, чтобы если наши планы с графикой накроются иметь хотя бы сильную скриптовую базу)) Так же автор одной текстовой мморпг, у которой достаточно много игроков, любезно согласился предоставить нам свой квестовый движок, в случае необходимости.

В общем, если форум еще не умер, интересно послушать мнение людей со стороны, в каком направлении двигаться дальше, как бы вы развивали проект. Идеи насчет механики игры и ее реализации приветствуются.

moka 15.10.2014 04:03

Ответ: Стратегия «Стратегия»)) Редактор карт
 
А можно скриншотов добавить сюда, чтобы было видно о чем речь, а то не у всех стоит Unity Player..

Igor 15.10.2014 04:04

Ответ: Стратегия «Стратегия»)) Редактор карт
 
ой, а где 3д? Вижу только 2д.
По генерации ландшафта - слишком крупные биомы. Кроме того, сглаженные очертания материков кажутся неестесственными, нет островов. Если посмотреть на карту мира, очертания многих побережий по историческим причинам имеют "пару" - (африка - южная америка), (северная америка - гренландия - европа) (африка - магадаскар). Не знаю, есть ли смысл делать именно так, но что-то менять надо.
Горы и холмы должны быть взаимосвязаны с очертаниями материков.
Реки... не знаю, делать их текущими между клетками, как в Цивилизации, или просто клетками с водой. Первый вариант не даёт возможность плавать по ним, второй - создаёт всякие проблемы и непонятки со строительством мостов и преодолением сухопутными юнитами вброд.
В "альфе центавре", в отличие от "Цивилизации", ландшафт менял свою высоту, что использовалось как оружие и для глобального потепления с затоплением некоторых клеток.
Ещё, чисто теоретически, можно заморочиться, прикинуть, как распространяются ветра и с их помощью рассчитывать уровень влажности и температуру. Ветер распространяется довольно примитивно, что-то вроде больших колечек между экватором, 40выми широтам и севером, а где натыкается на горы - там дожди.)

moka 15.10.2014 04:17

Ответ: Стратегия «Стратегия»)) Редактор карт
 
Вот прикольная статейка, частично по теме кстати:
http://experilous.com/1/blog/post/pr...net-generation


maewyn 15.10.2014 04:56

Ответ: Стратегия «Стратегия»)) Редактор карт
 
moka, добавил в первый пост скриншоты. Спасибо за статью, почитаю.

Igor, 3д было в отдельном проекте, куда подгружалась сгенерированная в редакторе карта. Пока не буду это выкладывать))
Спасибо за советы. Насчет ветра, стоит подумать. Здесь, в редакторе мы делали демонстрационный алгоритм, не сильно задаваясь вопросом насколько это будет похоже на правду. Все потому, что не определились с масштабом игрового мира. Главный вопрос в том, сколько км будет вмещать в себя один тайл. Допустим , в редакторе на тайле значёк дерева, что это будет значить в игровом мире? Там находится одно дерево или целый лес?
Отсюда надо и плясать, сразу станет понятно что нужно генерировать - несколько континентов или маленький кусочек континента))
Если деревьев все-таки будет много, сильно ли это повлияет на производительность игры? Какие способы есть, чтобы этого избежать.
По горам так же есть вопрос, делать ли их отдельными префабами, а потом расставлять, или же генерировать на лету. Вроде бы, если на лету, то получится слишком много вершин))Процедурная вода((
Ну и собственно, сам террейн, делать ли свой или использовать стандартный. Там ведь надо одновременно умещать большое количество текстур...Вот если эти вопросы станут понятны, тогда думаю станет немного проще решиться на дальнейшие действия)) Тут вопрос не как надо делать (потому что на него однозначного ответа нет), а как бы вы сделали.
Да, если есть идеи по самой механике, послушал бы с удовольствием. Даже если они про грабительство караванов. Все ведь были чем-то недовольны в играх, вспоминайте))

Igor 15.10.2014 14:00

Ответ: Стратегия «Стратегия»)) Редактор карт
 
Кстати, какая у вас метрика? Я в аналогичном проекте сделал ось x горизонтальной, ось у - вниз и влево. Расстояние между двумя клетками - (if (dx*dy >0) max(abs(dx),abs(dy)) else abs(dx+dy)).
Рисование в 2д большого количества клеток (картинками) на андроиде тормозило на SurfaceView, а на openGL ещё оставался хороший запас производительности. И ещё - телефон без проблем тянул карту размера порядка 160*160. (обход по всем клеткам выполнялся за миллисекунду или меньше, но сохранять это добро по-быстрому через сериализацию было невозможно) А потом я сдал проект как курсовой по информатике, и больше не открывал(( Со мной его "делали" ещё три человека, но толку было мало - в итоге 5/6 кода и графика мои. Есть на гитхабе.
Если размер клетки как в цивилизации, то, наверно, лучше схематично рисовать. Если же одна клетка - одно дерево, наоборот придётся графику делать красивой и для каждого типа поверхности использовать несколько немного различающихся спрайтов.
P.S. если хотите - могу попробовать к вам присоединиться.

maewyn 15.10.2014 20:25

Ответ: Стратегия «Стратегия»)) Редактор карт
 
У нас все просто) оси положительные. Расстояние между соседними гексами в ряду равно hex_radius*sqrt(3)/2*2, то бишь hex_radius * sqrt(3). А между рядами hex_radius + hex_radius/2. Ну и каждый ряд смещаем по x на hex_radius * sqrt(3)/2 в нужную сторону. Карта строится из нескольких мешей(количество задается), вершинами которых являются эти самые гексы(по-моему до 80 в одном меше).
Проект скачал. Понравился)) Производительность оценить не могу, так как эмулятор сам по себе тормозит. Одну строчку пришлось закомментировать, чтобы запустился. На человечка в синей области, я так понимаю, напасть нельзя))))
Думаю, такой масштаб нам подошел бы. Но, так или иначе, придется делать все возможные варианты переходов между типами местности, а также много похожих, но разных вариантов наполнения тайлов. Впрочем, если определимся с реализацией террейна, то все остальное можно заполнять кубиками и заниматься механикой.
Присоединиться было бы неплохо. femto64 логин в скайпе, пиши туда. Буду сегодня после 9.

MiXaeL 16.10.2014 14:30

Ответ: Стратегия «Стратегия»)) Редактор карт
 
>> Course project of MIPT students
Это на каком факультете у вас такие веселые проекты? Мы тоже игрушки пилили, но C++ и wxWidgets.

Igor 17.10.2014 04:16

Ответ: Стратегия «Стратегия»)) Редактор карт
 
Общей и прикладной физики. Написание игрушки - чисто моя инициатива, можно было отделаться чем-нибудь сделанным за последние неделю-две или даже за вечер, но игру я полюбому бы писал, а так ещё и оценку получил. На семинарах проходили java, большую часть материала я уже знал, если не считать многопоточности.

MiXaeL 17.10.2014 13:43

Ответ: Стратегия «Стратегия»)) Редактор карт
 
Цитата:

Сообщение от Igor (Сообщение 288174)
Общей и прикладной физики. Написание игрушки - чисто моя инициатива, можно было отделаться чем-нибудь сделанным за последние неделю-две или даже за вечер, но игру я полюбому бы писал, а так ещё и оценку получил. На семинарах проходили java, большую часть материала я уже знал, если не считать многопоточности.

фопфы - топоры :-D


Часовой пояс GMT +4, время: 20:41.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot