eono

На Пикабу
поставил 2686 плюсов и 699 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
10 лет на Пикабу
13К рейтинг 105 подписчиков 4 подписки 77 постов 19 в горячем

Компьютерные игры делают людей жестокими

Игры делают людей жестокими? Хотелось бы напомнить, что пятьдесят миллионов человек пустили в расход люди, у которых в детстве не было компьютерных игр и Интернета тоже.

The Dynasty. Гексагональные дорожные работы.

Привет! А я продолжаю делать стратегию мечты. Сегодня расскажу о том, как прокладывать дороги на гексагональных картах.

Первый раз попробовал ООП в 17 лет. Оффер через год, опенспейсы, смузи, дедлайн, лютые лица.

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


Теперь нужно придумать, как сделать так, чтобы дорожные развязки выглядели реалистично.


Сначала нужно узнать, сколько вариантов дороги может быть, если "тайл" шестиугольный. Быстрый поиск в гугл показал, что может быть 13 вариантов.

The Dynasty. Гексагональные дорожные работы. Unity, Indie, Инди, Стратегия, Gamedev, Поиск пути, Длиннопост

Немало! При том, что почти каждый из вариантов может вращаться. И как сделать из этого дорожную сеть? Самый простой вариант, который приходит на ум - посчитать количество соседей, а там уже вращать. Итого более полусотни вариантов.
- Ничего страшного, ночь длинная... кофе заварен, - не сказал ни один программист в мире.
Самый простой вариант не всегда самый лучший, а поэтому нужно придумать алгоритм. Десять минут залипания в потолок со стеклянными глазами рождают в голове Идею™.

Итак:

Шаг 1. Нужно пронумеровать и сохранить все стандартные (как на скриншоте выше)варианты в зависимости от того идет ли в одну из шести сторон дорога. Если идет, то будем считать, что это - 1, если нет - 0. Например для варианта, где дорога идет в одном направлении получим 100000, а для того, где дорога идет в пяти направлениях получим 101111. Ниже будет пример.

Шаг 2. Получаем все шесть соседей клетки, если на ней есть дорога, то будем считать, что это - 1, если нет - 0. Начиная с верхнего соседа, идем по часовой стрелке. В итоге получаем что-то вроде 100100 (пример для варианта с прямой дорогой идущей сверху вниз.

Шаг 3. Сравниваем полученное в Шаге 2 число с каждым из 13 вариантов уже сохраненных нами в Шаге 1.

Если оно не совпадает, то "поворачиваем" дорогу (а по факту те единицы и нули) по часовой стрелке. Для этого просто "смещаем" их вправо (картинка ниже).

Если ни один набор чисел не совпадает, то переходим у следующему из 13 сохраненных.

Если же совпадает создаем подходящую стандартную дорогу, и поворачиваем её на 60° умноженных на количество оборотов.

The Dynasty. Гексагональные дорожные работы. Unity, Indie, Инди, Стратегия, Gamedev, Поиск пути, Длиннопост

В итоге получается что-то вроде:

The Dynasty. Гексагональные дорожные работы. Unity, Indie, Инди, Стратегия, Gamedev, Поиск пути, Длиннопост

Вот примерно так. Задавайте вопросы, постараюсь ответить на все :)


С момента моего предыдущего моего поста, сделаны были не только дороги. Создание персонажей, фамильных гербов, допилен генератор карт. Вот это все. Совсем скоро приступлю к самому интересному - к геймплею.

Если понравилось, подписывайтесь: https://vk.com/thedynastygame
(мне сказали, что если попросить, то больше людей подпишется ^_^)

Показать полностью 3

The Dynasty. Генерирующие генерации генераторы.

Привет, Пикабу! Я продолжаю разрабатывать стратегию в которой игрок берет на себя управление династией.


В этом посте расскажу о том, как работает генератор городов над которым я трудился последние 5 дней. Я не очень-то продуктивен, да :)

Что должно быть у каждого города? Название! Проще всего составить оригинальное название города составив его из заранее заготовленных частей.

Например: Mosc+ow, Lon+don, Par+is.

The Dynasty. Генерирующие генерации генераторы. Unity, Инди, Indie, Gamedev, Perlin noise, Генерация, Стратегия, Гифка, Длиннопост

В общем-то результатом я остался доволен.


Теперь нужно сгенерировать города. Сказано сделано.

Цель: добиться городов выглядящих а-ля Цивилизация.

За час набросал скрипт который в случайном месте генерировал центр города - Ратушу, а потом "наращивал" вокруг него дома. В случайных местах. Если новое строение "соприкасалось" с существующими, то в этом месте появлялся дом.

Результат был так себе.

Ковальски, варианты. А в вариантах которые я нагуглил мне было лень разбираться. Пришлось немного подумать самому. В форме чего должен быть город? Ну, острова. Окей, гугл, как сгенерировать случайный остров?


Самым простым вариантом было:

Шаг 1. Сгенерировать Шум Перлина со значениями от 0 (черный цвет) до 1 (белый цвет).

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

Шаг 3. Вычесть значения полученные на первом шаге из значений полученных на втором, присвоить значения которые стали меньше нуля нулю.


Иллюстрация для наглядности.

The Dynasty. Генерирующие генерации генераторы. Unity, Инди, Indie, Gamedev, Perlin noise, Генерация, Стратегия, Гифка, Длиннопост

Вуаля! У нас есть остров! Гхм, да, я помню, что нужен был город.


Дело за малым, заполнить значения, что не равны нулю здания. Место для Ратуши выбираем случайным образом, зная ширину и длину можно легко узнать, вся ли ратуша находится в пределах "острова". Генерируем дома. Перед генерацией каждого здания проверяем, чтобы здания не пересекалось с другими.


Вот в общем то и все, что хотел рассказать.
Результат:

The Dynasty. Генерирующие генерации генераторы. Unity, Инди, Indie, Gamedev, Perlin noise, Генерация, Стратегия, Гифка, Длиннопост

Да, кстати, завел паблик Вконтакте, в котором можно следить за новостями об игре.
Ссылка: https://vk.com/thedynastygame


Спасибо за внимание!

Показать полностью 2

The Dynasty - стратегия мечты

Привет! В позапрошлую субботу выкладывал скриншот из стратегической игры, которую я потихоньку делаю. После этого на меня подписалось 2(!) человека, надеюсь им (и не только им) будет интересно, что я сделал за эту неделю.

Путь в тысячу граблей начинается с первого шага.(с) Джейсон Стетхем

The Dynasty - стратегия мечты Unity, Инди, Gamedev, Low poly, Стратегия, Гифка, Длиннопост

The Dynasty - стратегия, в которой игрок возьмет на себя управление семьей, в жестоком мире средневековья. Цель: привести свою династию к богатству, власти и славе, соперничая с другими семьями.


Поскольку игра должна быть максимально реиграбельна, то многое генерируется случайно: мир, города, характерные черты персонажей (влияющие на принимаемые ими решения).


Сейчас уже практически готова генерация мира:

The Dynasty - стратегия мечты Unity, Инди, Gamedev, Low poly, Стратегия, Гифка, Длиннопост

Остается сделать генерацию полезных ископаемых и городов. И эта часть работы будет закончена.


Центром каждого города будет Ратуша, вокруг которого будет строиться город.

Собственно Ратуша (не окончательная версия, все еще может 100 раз измениться):

The Dynasty - стратегия мечты Unity, Инди, Gamedev, Low poly, Стратегия, Гифка, Длиннопост

В общем-то всё о чем хотел рассказать - рассказал. Через неделю, надеюсь, смогу показать красивые сгенерированные города, дороги между ними, полезные ископаемые.

Спасибо, что дочитали аж до сюда!

Показать полностью 3

Субботний скриншот

По вечерам делаю стратегию моей мечты, в которой нужно будет привести свою династию к богатству и власти. Что-то вроде Crusader Kings + The Guild 2

Субботний скриншот Gamedev, Unity3D, Low poly, Screenshotsaturday

Ответы на вопросы

Пикабу, я создал сайт, что-то вроде бинарных опционов, но вместо денег вещи из CS:GO.

Ссылку скидывать не буду, просто хочу ответить на любые вопросы тех, кто интересуется этой темой, сокеты, создание ботов для Steam, вот это всё.

Такая AMA-сессия на Пикабу, может кто-то узнает, что-то новое, а я упорядочу в голове то, что я узнал за два месяца разработки.

История о том, как мы игру делали.

Без бюджета, но с огромным желанием.
История о том, как мы игру делали. Без бюджета, но с огромным желанием.
Показать полностью 1

Вместо.

Вместо нового Айфона можно купить билет в Испанию, 50 килограмм картошки и енота на сдачу.
Отличная работа, все прочитано!