LeeRoyHero

LeeRoyHero

Пикабушник
поставил 33608 плюсов и 1260 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
Награды:
10 лет на Пикабу лучший авторский текстовый пост недели
37К рейтинг 89 подписчиков 15 подписок 34 поста 10 в горячем

Игра мечты [3] Математика гексов

Всем привет!

Меня зовут Владимир и я в режиме дневника пишу, как делаю свою игру.

Предыдущие посты:

Игра мечты [1]

Игра мечты [2]


Сразу после написания прошлого поста наткнулся на офигенную статью.

https://www.redblobgames.com/grids/hexagons/

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


Первым делом оказалось, что я неправильно раскладываю гексы по осям координат. Я как тупой бычок решил, что если поверхность 2д, то и гексы должны находиться на осях X и Y и иметь координаты типа (2;3). Но оказалось, что алгоритмам проще живется в 3д мире с XYZ осями и координатами типа (2;3;-1).

Игра мечты [3] Математика гексов Gamedev, Unity, Разработка, Видео, Длиннопост

Поломав голову над 3д миром двухмерного пространства, начал по очереди бомбить фишки из статьи.


Например, теперь я могу спросить у любого гекса, кто его соседи:

Или даже дать всех соседей в определенном радиусе:

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

Можно даже получить гексы, видимые из определенной точки. На видео, например, точка видит горы, но не видит, что за ними:

Ну и конечно то, чего я боялся больше всего: поиск пути. На него пришлось потратить пару вечеров, ведь произошло самое страшное для программиста: копипаст не сработал, и, пока я не понял, как алгоритм работает, он собственно и не работал.


Приветствуйте, царь всех зверей, алгоритм поиска пути A*.


На видео горы не проходимы, а у остальных ячеек есть циферка-сложность проходимости. Грубо говоря, чтобы пройти светло-зеленый гекс, надо потратить 1 действие, а воду 5, у зеленой и коричневой вроде 2. Вот алгоритм и пытается найти маршрут, который займет меньшее количество действий.

Фух, очень рад, что за меня ученые мужи уже все придумали, я прям опасался, что по крайней мере поиск пути будет огромной проблемой, но это уже в прошлом, а в обозримом будущем по игре у меня только творческие задания)


Ну и у меня есть вопросики для мудрецов. В цивилизации территории стран обведены жирной полосой, подскажите плиз, о чем почитать, чтобы смочь сделать также:

Игра мечты [3] Математика гексов Gamedev, Unity, Разработка, Видео, Длиннопост
Показать полностью 2 5

Игра мечты [2]

Первый пост: Игра мечты [1]


Бывает же такое: как начинаешь заниматься чем-то новым, у тебя будто появляется новая глубина жизни. Начал играть музыку и сразу начал замечать паттерны в любимых песнях, решил учиться готовить и сразу * ого, это лук? А как они его сделали сладким? *. Также и у меня сейчас с играми: начал проходить любимые игры и будто взглянул на них с другой стороны. Раньше для меня игры были чем-то единым, а теперь я на них смотрю как на огромный перечень принятых, а главное, отвергнутых решений.


Я очень хочу чтобы в моей игре присутствовало это крутое чувство, когда ты еще не знаешь, в какую сторону тебя поведут, и ты скорее отправляешь юнитов исследовать близлежащие локации, чтобы понять куда расти, и успеть захватить крутые точки быстрее конкурентов. Ярко это чувствуется в Цивилизации и Стелларисе.

Игра мечты [2] Разработка, Gamedev, Длиннопост

С цивилизацией вообще интересная тема, я понял, что доходил до конца может быть раза 3-4, но начинал игру миллиард раз. Я начинал играть снова, пытаясь понять, что меня так подстегивает и прикалывает, но никак не мог понять, как мне прилепить такое к моей *RTS*. Что-то подобное было реализовано в Surving Mars, но там скорее это был долгий стратегический вопрос, а не "цель-награда".


И тут мне пришла мысль, и моя игра сделала стремительный поворот в сторону.


Я сразу решил, что не буду пытаться поразить мир своим инди креативом, а попытаюсь сделать что-то маленькое и крепенькое из любимых механик. А мысль была такая *в Цивилизации есть все что мне нужно, берем и воруем*.


*Требуется сделать клон ВКонтакте за 5000р*.


Есть гексы, пошаговый режим, по гексам разбросаны ресурсы. На гексах можно строить, ходить по ним. Карта скрыта туманом. Вроде и поворот, но базовые мои хотелки остались на местах. Идеально.

Игра мечты [2] Разработка, Gamedev, Длиннопост

Надо было понять: запарно ли это, когда у тебя, грубо говоря, не одна плоскость, а сотни кубиков под ногами.


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

Поломал голову, перестраивая свой мозг с табличного мышления на хаос гексов, написал скриптик, по бокам горы, а все внутри рандомно.


Плохо, но уже похоже на Карелию:

Игра мечты [2] Разработка, Gamedev, Длиннопост

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


Первое, что выдал мне гугл - это был Шум Перлина. Это алгоритм, который случайным (не случайным) образом может выдавать рисуночки облачков.

Игра мечты [2] Разработка, Gamedev, Длиннопост

Понятное дело, что он не рисует облачка, а выдает массив чисел от 0 до 1. На рисунке выше визуализация: чем число ближе к 1, тем светлее, чем ближе к 0, тем темнее.


А у меня дело простое: представить что этот шум - это карта Земли. Например, 0.0-0.2 вода, 0.2-0.3 песок, 0.9-1.0 горы, а остальное - трава.


При первом запуске Господин Перлин выдал мне нечто неприличное, но это уже было что-то!

Игра мечты [2] Разработка, Gamedev, Длиннопост

Поиграв с циферками, мне удалось добиться клевого результата, в принципе уже похоже на карту и, при должном усилии, можно с этим работать.

Игра мечты [2] Разработка, Gamedev, Длиннопост

Немного еще пошаманив, добавив темно-зеленый лес и окружив карту водой, а не горами, получил уже что-то приличное. Естественно, такая штука  может каждый раз генерировать новый рисунок.

Игра мечты [2] Разработка, Gamedev, Длиннопост

Круто! Но мне надо что-то более контролируемое. Чтобы карта не походила на порванную мокрую туалетную бумажку, а напоминала остров с биомами, пустынями и т.д.


Благо, я невероятно умен и знаю второй способ, но это уже будет в следующем посте)

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

Игра мечты [1]

Всем привет!

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


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


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


Нафантазировал многое:


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

2) Это должен быть сайфай про будущее, мир который можно описать фразой *где-то может и есть огромные космические крейсера, планеты-города, чудо технологии, но лично вы в далекой заднице*. Привет Светлячку, RimWorld, Factorio и т.д.

3) Там должны быть мехи. До сих пор помню это чувство из детства, я приходил в *компьютерные клубы* в надежде что там кто-то играет в игру *про роботов*, сидел за спиной у игрока и смотрел (у меня не хватало скиллов в нее играть, а на самом деле денег). Искры, отваливающиеся детали, кастомизация мехов перед боем, пилоты, фотореалистичная графика, все это взрывало мозг.


Этой игрой была Front Mission 3

Игра мечты [1] Игры, Gamedev, Unity, Видео, Длиннопост

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

5) Там должны быть персонажи, к которым ты будешь прикипать. Однажды, в Xcom Enemy Unknown я двум бойцам поставил одинаковые фамилии, ибо в жаркой ситуации, не смотря на вражеский огонь, медик на последнем ходу успел добежать и реанимировать снайпершу (снайперку, снайперессу?). Я подумал что это красивая история и решил их поженить после этого.


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


Это, кстати, я, пишу этот пост

Игра мечты [1] Игры, Gamedev, Unity, Видео, Длиннопост

Выбирал между движками Unity (C#) и Unreal Engine (С++). Unity так Unity подумал я.

Благо у них оказались офигенные бесплатные курсы. Прошел базовые Unity Essentials и Junior Programmer, мозг кипел, ноутбук пылесосил, но вроде жить можно.


Далее необходимо было получить представление как делаются 3д модельки. Тут выбора не было, это программа Blender потому что она бесплатная и...да и все, она бесплатная.

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


Это коза из урока, мой вариант утерян после разъяренного удаления блендера

Игра мечты [1] Игры, Gamedev, Unity, Видео, Длиннопост

Пришло время приступать в разработке!

Базовый принцип был (спойлер, был), что есть персонаж, игрок им не управляет, но если положить на землю ресурс, то персонаж подойдет к нему, возьмет и отнесет на склад. Вроде по-умному это называется *Стратегия с непрямым контролем*.


Сделал персонажа дрона. Сделал фабрику. Фабрика раз в какое-то время производит ресурс, дрон его видит и несет на склад. Какого было мое счастье когда это все заработало)


Сори за качество, снимал на радостях

Дальше добавил немного интерактивности, можно управлять камерой, добавил кнопочки для строительства фабрик и складов, собственно саму систему строительства. Навалил интеллекта, теперь каждый персонаж сам решает что ему делать, правда у него сейчас выбор не велик, он умеет только таскать.

В прототипчик можно поиграть вот здесь https://play.unity.com/mg/other/webgl-builds-50802 на Q и E даже можно вращать здания.


Сделал я это, и как-то стало грустно, выходит какая-то ебатека. То есть я сделал вот эту простенькую штучку, а что дальше не понятно. Исписал несколько листов бумаги, но как-то картина игры не складывалась. Вроде абстрактно все понятно, база нужна как Surviving Mars, мехи могут и стрелять и строить, будет какая-то глобальная карта с всякими ивентам, но как начинаешь расписывать точнее, появляется просто миллиард вопросов типа добываемый ресурс это и есть ресурс, или делать цепочки типа руда->металл->листы->броня для меха? Нужно электричество? А электричество это что-то абстрактное, или оно должно идти по проводам? А жители базы нужны? А еда им? А жилье?


С одной стороны на все эти вопросы можно ответить ДА, но тогда игра никогда не выйдет, я не вывезу, начинаешь выбирать и понимаешь, тупое говно тупого говна.


Походил я в апатии и мне пришла идея как это все сложить вместе. Но это уже совсем другая история)

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

Главное, что диплом на отлично

На финальной стадии универа работал в маленькой конторе, которая была прокладкой в покупке большими фирмами кое-чего. Директор должен был вот вот открыть собственный большой магазин кое-чего, дядька крайне адекватный и предприимчивый. Я выбрал тему диплома как раз обоснование открытия магазина по продаже кое-чего. Директор помогал, я практически полностью слизал все его шаги, плюс бахнул кучу теории с десятками страниц  формул обоснования рентабельности действа. Оказалось, что магазин крайне необходим, окупится за 8-12 месяцев, и все будет у всех просто замечательно. Сдал диплом на отлично, был отмечен как один из лучших, директор был рад обоснованию того,  что он все делает правильно. В итоге, магазин через два года прогорел, фирма обанкротилась, да и я, экономист с высшим образованием, работаю программистом

Пикап

http://pikabu.ru/story/neveroyatnyie_priklyucheniya_quotital...  Читал комментарии к посту, и понял, что некоторые пикабушники не верят, что некоторые девушки очень падкие на лесть, и захотел написать историю из моей жизни.

Я не особо харизматичный чувак, осыпать комплиментами не умею, флиртовать тоже, все сексуальные контакты с девушками были либо по пьяни, либо после долгого общения, а обычно при соитии двух этих факторов, кароч не пикапер я. Так вот, сидели большой студенческой компанией в баре, и недалеко от меня сидела вечно недовольная девушка, знаете, из тех кто обязательно должен сказать свое мнение по любому вопросу, и это мнение всегда негативное. Сидели мы так некоторое время, и мне надоело выходить курить на улицу, и я закурил в баре, тогда еще можно было. Она мгновенно среагировала <Тебе чего бля*ь, лень выйти и на улице покурить??>. Я сразу вспомнил лайфхак из интернетов, если с тобой пытаются ругаться, то надо перебить комплиментом. Я не задумываясь выдал что-то типа *Ого какие у тебя очки офигенные, раньше тебя в них не видел, где купила?*, при условии что видел ее первый раз и мы были не знакомы. И это было попадание в самую точку. У нее мгновенно произошла перезагрузка, я выслушал наинтереснейшие истории о том, как она летала в тайланд, что там по приколу решила купить первые очки и т.д. и т.п. Я внезапно стал ее лучшим другом, хотя мое поведение вообще никак не поменялось. В конце вечера она сказала что я единственный нормальный человек в компании, мне было абсолютно пофиг и я опять по приколу выдал *потому что ты самая сексуальная, вот все и нервничают*. Внезапно это опять сработало. Тогда у меня был первый секс с незнакомой девушкой, да что уж там, пока единственный.

Долгожданный развод

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

Голый принц

На волне плагиатов хочу предложить вам послушать одну песенку. Сам только что наткнулся, погуглил, оказалось что это древний бабаян, но все же для таких не сведущих как я

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

Бабушка звонит

Предисловие: меня часто упрекают в отсутствии пруфов в моих рассказах, я честно пытался найти видео о котором речь пойдет далее, но видимо судьба такая получать фото с котами и лампами.

Так вот, энное количество лет назад мне исполнилось 18 лет, и я захотел узаконить свои отношения с автомобилем отца. Как полагается во время обучения в автошколе я вальяжно ходил по разным инстанциям и добывал бумажки о своей пригодности. Одной из таких инстанций был наркодиспансер с ироничным названием *Катарсис*. И конечно на мне сошлись все звезды в этот день, началось утро с того что я простудился, кашель, шмыганье носом, слезящиеся глаза, все как положено. В таком состоянии я побрел в диспансер, благо тетенька из процедурной сказала что на анализы это никак не повлияет, заранее записав какие антигриппины я принимал. И далее был выбор идти домой или подождать полчасика пока мою жизнедеятельность проверят на всякое. Я решил подождать. Сил особо не было стоять, поэтому я сел на скамейку рядом с процедурной. И здесь надо сделать оговорку, мне 18 лет, я весел и горяч, и на голове у меня дреды. Пока я сидел, время автомобилистов закончилось, и настало время тех, кому надо *отметиться*. На моей скамейке начали появляться очень мутные личности, начиная от парней, которые очень хотели чесаться, заканчивая барышнями, от которых, казалось, венерический букет можно получить даже воздушно-капельным путем. Вначале мне просто были неприятны взгляды прохожих на нас, ибо у меня дреды, значит я 100% наркоман и отлично вписываюсь в компанию. Но, как говорится, кажется я достиг дна, как снизу постучались. Приехала телевизионная группа с активистами. Нам выдали брошюрки и начали рассказывать о реабилитации наркозависимых, вначале я сопротивлялся, но когда понял что это бесполезно, просто покорно качал головой. Вечером рассказал об этой хохме родителям, тесты показали что моя кровь чище воды в Байкале, посмеялись и забыли.

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

Показать полностью
Отличная работа, все прочитано!