Необходимо войти или зарегистрироваться

Авторизация

Введите логин, email или номер телефона, начинающийся с символа «+»
Забыли пароль? Регистрация

Новый пароль

Авторизация

Восстановление пароля

Авторизация

Регистрация

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

Регистрация

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

Профиль

Профиль

ThisIsZolden

Пикабушник
15 173 рейтинг
417 комментариев
10 постов
8 в "горячем"
Показать полную информацию

Мой тернистый путь в геймдев

ThisIsZolden в Лига Разработчиков Видеоигр

1. Первая игра, обучение


Многим наверняка знакомо ощущение: смотришь со стороны на свою ежедневную рутинную работу, и думаешь, какой фигнёй я занимаюсь, на что трачу жизнь. Делать игры мне казалось единственным осмысленным занятием в жизни. Знаете, тяжёлое детство, китайский клон NES на чёрно-белом телевизоре, импринтинг. Но попытка что-то поменять порой становится авантюрой, полной неудач и страданий. Что, конечно, не повод не вставать на эту дорожку.


В предыдущей статье я рассказал, как увлёкся моддерством в Старкрафте 2, и сколько претерпел фейлов и разрушенных надежд. Но это увлечение всё-таки привело меня к волшебным воротам с вывеской "геймдизайн" и предложило войти. Аудитория модов в старкрафте 2 была не велика, и после успеха моего мода я решил стать разработчиком самостоятельных игр.


С виду всё было просто: выбираешь движок, изучаешь, делаешь игру, выпускаешь - и ты разработчик! Ну что же, раз просто, я выбрал Юнити и нырнул в него с головой.


Первую игру я задумал чтобы изучить движок. Хотя по-честному собирался создать полноценную, интересную, богатую фичами игру, чтобы самому с удовольствием играть. Выбрал жанр - стрелялка от третьего лица с элементами RPG. Накумекал геймдизайн и начал разработку.


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

Игра вышла приятная, но я столкнулся с двумя радикальными сложностями, из-за которых проект дальше не пошёл, и его пришлось оставить:


1. Код усложнился настолько, что переделывать и добавлять фичи стало невозможным. Беспорядок, отсутствие модульности, размазывание функционала по разным кускам кода - всё это превратило кодинг в гибрид чистки авгиевых конюшен и сизифова труда. На практике выглядело так. Я обнаруживаю баг: враги могут подбирать валяющиеся на земле патроны. И вместо того, чтобы его взять и исправить, я полчаса по локти в байтах ползаю по коду в поисках того места, где это должно быть исправлено. Это было утомительно и отбивало охоту продолжать.

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


Выводы:


1. Лучше выбирать масштаб игры по плечу, идти от простого к сложному.

2. Код обязан оставаться простым, читаемым, модифицируемым и масштабируемым - на любом этапе, даже когда вся игра готова. Иначе разработка завязнет. Поэтому вместо схемы "идея->воплощение", надо идти по пути "идея->программная архитектура->воплощение". На этапе архитектуры надо мысленно написать программу, десять раз её переделать, пока её внутренняя структура не станет удобной для работы.

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

2. Первая выпущенная игра


Первая игра не получилась, но получилось разобраться с Юнити. Но всё же остался недоволен собой, потому что до выпуска игры не дошло. И я решил сделать что-то простое. Что я гарантированно доделаю и выпущу. Мысленно прокрутив всё разнообразие жанров, решил сделать космический 2д скролл-шутер с минимальным количеством оружия и апгрейдов.


Отнёсся ответственно, сделал кучу 3д-моделей космических кораблей, купил в ассет сторе звуки, нарисовал кнопочки, сочинил музыку, попросил знакомого художника нарисовать персонажей. Очень постарался сделать хорошую программную архитектуру, чтобы на этот раз в ней не завязнуть.


И получилось! Я доделал и выпустил первую самостоятельную игру. Она оказалась симпатичной с виду и интересной по геймплею - в той мере, в которой может быть интересен 2д-шутер. Но, как можно было ожидать, её судьба в магазине оказалась плачевной. Как ни раскручивай, а в классическом жанре с тридцатилетней историей сложно сказать новое слово и создать зовущий каждого поиграть в себя шедевр. Я был рад доделать игру, но низкое число скачиваний меня, признаться, расстроило.

Мой тернистый путь в геймдев Инди, Gamedev, Личный опыт, Unity, Steam, Видео, Длиннопост

Вывод:


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


3. Попытка геймдизайнить


Неприятно, когда ваша игра никому не нужна. Когда я оправился от этого опыта и снова исполнился жаждой покорить мир геймдева, решил создать что-то оригинальное. Но при этом хотелось всё-таки придерживаться области востребованных игр, ориентироваться на успешные примеры. Тогда была эпоха термоядерных взрывов таких хитов, как 2048, angry birds, flappy bird. Я перебирал идеи, придумывал и отвергал фичи, не спешил. И в однажды в электричке, по пути на дачу, меня посетила "та самая" идея. Простая и гениальная. Я придумал, как скрестить 2048 и тетрис. Вместо цифр использовал геометрию фигурок тетриса. Нужно было всего лишь в поле 4х4 разместить 4 фигурки тетриса, тогда клетка освободится. И происходит это точно так же, как в 2048, путём сдвига всего игрового поля. Идея показалась мне стройной и неизбыточной. И за месяц плотного кодинга я доделал игру.

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


Если кому-то интересно, игра есть в гугл плей, и она бесплатна. [ссылка]


Вывод:


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


4. Попытка несимметричной коллаборации


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


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


И как раз в то время я участвовал в одном проекте, в который также был вовлечён именно такой художник с большой персональной аудиторией. Это был не мой проект, я просто фрилансил там и сям, потому что деньги-то нужны, раз собственные игры пока не выстреливают. И вот, я написал этому художнику, объяснил, что я опытный кодер хочу сделать с ним игру, что я готов сделать прототип, обсудить геймплей, и вместе выпустить игру-конфетку. Художник ответил, сказал что это интересно, что можно попробовать. И вот, я взял нарисованного им персонажа и засел за прототип.

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

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


Вывод:


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


5. Эксперимент с эволюцией


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


Так что я взялся за свою любимую тему - искусственный интеллект. Здесь ничего не зависит от других. Что напрограммируешь, то и получишь. Юнити оказалась очень удобной средой, всё было под рукой, и скорость разработки была очень высока. Так что я решил по-быстрому провести эксперимент с искусственной эволюцией. А именно, эволюцией управляющей нейросети. Для меня это очень интересная тема, я много изучал биологию, восторгался непостижимым, крышеснимательным инженерным совершенством биологических систем. И я знал, что всё это было создано эволюцией. И именно моделирование эволюции я считал самым перспективным направлением ИИ.


Кроме того, я понимал, что в играх искусственный интеллект востребован. Поведением мобов приходится заниматься, вручную создавать првила, настраивать соображалку ботов, решать конфликты мотивации, создавать условия - вот это всё, это большая работа высокооплачиваемого специалиста. А если научить нейросеть самостоятельно играть, учиться и вырабатывать эффективную модель поведения, то можно сэкономить много времени и денег разработчикам. И я решил проверить теоретическую возможность такого подхода.


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

Эксперимент закончился успехом, мозги у мобов вырастали. Но по его итогам я понял вот что: этот метод нужно превратить в продукт, который разработчик мог бы купить и без проблем использовать для обучения мобов в своей игре. Но от первого удачного эксперимента до продукта было, по моим прикидкам, год-два работы. Нужно было провести ещё десяток экспериментов, значительно усовершенствовать эволюционную модель, создать инструменты по управлению процессом обучения. В общем, я понял, что работать два года над этой системой я могу себе позволить, у меня не было денег на два года работы.


Вывод:


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


6. Mines and Magic, первая попытка


Наигравшись с эволюцией, я остался доволен, всё-таки чистое удовольствие от кодинга в каком-то смысле важней судьбы его плодов. И я решил снова вернуться к геймдеву, но сначала остановился и подумал: где я нахожусь и что дальше делать. Игры мои не покупают. Делаю не то, что хочу и люблю, а то, что мне кажется перспективным. Но опыт разработки накопил, многому научился. Нужно было понять, за что взяться. Что было бы "моё", и что давало бы надежду на продажи.


И вдруг осознал: вся история с моими попытками перейти в геймдев началась с успешного мода в Старкрафте 2. Это была игра по большей части моего дизайна, и она мне самому очень нравилась. Так почему бы мне не воссоздать её? Да, технически она сложная, но я уже опытен, да и когда меня останавливали сложности. Так что я решился, и исполнившись воодушевления я принялся за работу.


Месяц ушёл на геймдизайн. Я решил сначала сделать синглплеер-кампанию, и только потом заниматься мультиплеером. Так что пришлось перелопатить изначальный геймплей, добавить много новых фич, чтоб сделать интересным именно синглплеер. Ещё месяц я продумывал программную архитектуру. Для такого сложного проекта нужен был движок уровня варкрафт 3. И сложность кода не должна была зависить от масштаба. Любое количество контента и фишек должны были быть реализуемы на изначально созданной структуре внутреннего представления данных. Так что поработал я серьёзно, всё досконально продумал, изрисовал схемами стопку листов, и начал кодить.


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

Мой тернистый путь в геймдев Инди, Gamedev, Личный опыт, Unity, Steam, Видео, Длиннопост

Всё отлично работало, но я обнаружил, что для того, чтобы игра достигла уровня демки, требуется много контента. Иконки, звуки, фоновая графика и огромное количество 3д-моделей. А так как я год отдавал предпочтение работе над игрой, а не фриланс-подработкам, денег у меня почти не осталось, так что платить за контент было не чем. Я написал разным людям из индустрии, попытался привлечь инвестиции, но не вышло.


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


Вывод:


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


7. Разочарование, работа на дядю, любопытство


И я вернулся к тому, от чего всё это время пытался уйти. Снова работал по найму над чужими не слишком мне интересными проектами, потому что надо было что-то есть. Моя прекрасная игра стояла на глубокой паузе. Мне очень хотелось её доделать, но не было денег. Кроме того, год работы над ней меня утомил, хотелось разнообразия. Так что фриланс был удовлетворительной активностью, хотя моё творческое начало томилось от бездействия. Программирование для меня всегда было средством удовлетворения любопытства, эдакой волшебной палочкой, источником чудес. А когда приходилось его использовать для добывания денег, мне было скучно и грустно.


Не удивительно, что я сам не заметил, как у меня появилась одна чертовски привлекательная идея для эксперимента, и в свободное время я начал неторопливо её реализовывать. Смысл был в том, что вот были старинные игры, вроде Scorched Earth или Worms. Сражения там проходили на 2д-земле, которую взрывы разрушали, но было это технически не более, чем вычитанием пикселей из картинки, вроде как ластиком в фотошопе стёрли. И я подумал, а что если бы каждый пиксель был физическим объектом. И всё бы реалистично взрывалось и опадало кусками разворошённой почвы.


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


Так родилась игра Jelly in the Sky, вы может быть о ней слышали. Я работал над ней в течение года, параллельно фриланся. И я был счастлив в течение этого времени. Эксперименты были увлекательны, было много сложного программирования. Каждый день я решал головоломные задачи, и меня очень радовало то, что я наблюдал в результате на экране.

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


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


Но я не жалею. Этот эксперимент позволил мне снова поверить в свои силы и принёс немного денег.


Выводы:


Спросите у внутреннего ребёнка, о чём он мечтает, с какой игрушкой хочет поиграть, чего в мире не существует, а он хочет - и вы будете счастливы работать именно над этой идеей.


8. Неопределённость и надежда


После выпуска Jelly in the Sky я осознал, что у меня лежит классная, большая, сложная - и не законченная игра. И нужно непременно её доделать. Кое-какие средства, чтобы докупить нужные ассеты у меня были. Так что я самозабвенно взялся за дело. Уделил игре всё свободное время. Хотя её движок был полностью готов, обнажилась масса разнообразных больших и маленьких вещей, которые требовалось доделать.


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


И она продвигалась, обретала черты готового к выпуску продукта.

С нового года я вышел на финишную прямую и все силы положил на доделывание игры, и вчера выпустил её в Стиме в ранний доступ.


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


Выводы в целом по статье:


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


2. Маркетинг чертовски, определяюще важен. Конкуренция в геймдеве очень велика. И пока не раскрутишь игру, не поймёшь, что с ней не так.


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

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

Мой путь в гейм дизайн через горнило моддинга

ThisIsZolden в Лига Разработчиков Видеоигр

Первый акт: скука и любопытство


Летом 2010-го стояла жарища, горели торфяники, густой дым заволок пространства. Я, как и многие, спасался на даче. И сторонний наблюдатель сильно удивился бы, увидев как в один из дней я спрыгнул из гамака под яблоней, купил билет на электричку и вернулся в город, напоминавший коптильню. Ночью я приехал в торговый центр и с усилием вбурился в огромную толпу разгорячённых людей, некоторые из которых были наряжены в чудовищ. Через час дружных воплей и душной стиснутости, я получил искомое: диск только что вышедшего Старкрафта 2.


При всей моей любви к стратегиям, я быстро наигрался в СК2 — механика игры не изменилась принципиально со времён первого варкрафта. Но с приятным удивлением я открыл для себя созданные игроками моды. Каждый из них по сути был отдельной мультиплерной игрой со своей уникальной механикой. Все же знают пример с Дотой, которая возникла как мод в Warcraft 3 и затем стала самостоятельной популярной игрой.


И вот, я с наслаждением погрузился в увлекательное многообразие модов. Азарта и удовольствия от них было не в пример больше, чем от самого старкрафта. На сервере игры сортировались по популярности: во что больше народу играет, то и выше в списке. Наигравшись в самые популярные, я проматывал список ниже, желая узнать, какие ещё игровые механики придумали авторы модов. Там я обнаружил, что кто-то сделал в виде мода игру Command and Conquer, а ещё кто-то — Age of Empires. Стало интересно: а не превратили ли в мод старую игру Z? Был уверен, что наверняка, классная игра была. Но нет, её не было.


"А что если сделать её самому?" — подумал я.


Открыл редактор модов и охренел от его сложности. А руководств почти не было. Но любопытство и упорство сделали своё дело, через месяц залил готовую игру на сервер.

О это чувство, когда сделаешь игру и с кем-то в неё играешь! Стыд и восторг. Гениальность и баги.

Мой путь в гейм дизайн через горнило моддинга Gamedev, Modding, Indie, Starcraft 2, Unity, Длиннопост

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


Вышло так, что несмотря на неплохую механику, карта была интересна на 2-3 раза, и потом люди уходили. Хвалили идею и исполнение, но шли играть в другие игры. Я ревниво смотрел, как люди раз за разом возвращаются в свои любимые карты, а моя малышка погружается в пучину забвения. Но я уже познал сладость признания! Мне хотелось славы, вершин, чтоб люди наперебой кричали, до чего хороша моя игра. И главное, я понял, что овладел великолепным инструментом, и теперь могу сделать любую игру, какую захочу.


Второй акт: одержимость


Осознав потенциал могущества я, мрачно расхохотавшись, задумал масштабное и беспроигрышное: я решил реализовать в виде карты заслуженную, всем знакомую и любимую игру — Heroes of Might and Magic. Решил сделать всё: замки со строительством и апгрейдами, наём войск, опыт и скилы героев, заклинания, монстров, сокровища и артефакты, шахты — вообще всю механику оригинала. Но в реальном времени! Чтобы если два героя встречаются, их огромные армии нападали друг на друга в виде оравы юнитов. Во мне бурлили амбиции, я хотел вжарить как следует, чтоб все наконец-то поняли, в чью игру должны играть.


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

Мой путь в гейм дизайн через горнило моддинга Gamedev, Modding, Indie, Starcraft 2, Unity, Длиннопост

Игра действительно быстро взлетела в рейтинге популярности, люди знали и любили Героев, и им было интересно поиграть. И они играли, удивлялись, били монстров, захватывали шахты, обстраивали замки, собирали артефакты, нападали друг на друга, устраивали эпические бои в горных ущельях с драконами и фаерболами. Но постепенно оказалось, что игрок, проведя час-полтора в игре и захватив половину карты, уставал, и в другой раз не спешил заново проделать то же самое. Конечно, были поклонники, которые играли десятки игр, но всё же большинству было скучновато. Кроме того, не знакомым с оригиналом или не слишком настойчивым было сложно разобраться с ходом игры, всё же интерфейс приходилось делать сызнова, и не всё было очевидно.


Так что поболтавшись в топ 10 пару дней, карта начала закатываться за горизонт видимости. А рейтинг популярности суров: либо карта на виду и в неё все играют, либо она ниже первой странцы списка, и людям не видна, так что спонтанный поток любопытных кликов ослабевает.


Вот так. Снова мне не удалось сделать офигительную игру, но желание никуда не делось.


Ещё более претенциозный замысел воссиял пред мои воображением. На этот раз я решил воссоздать на движке старкрафта ни много ни мало — Цивилизацию. С полным воспроизведением механик и снова в реальном времени. Клеточки ресурсов, рабочие и мелиорация, города и постройка зданий, коррупция, исследования, дерево технологий, эволюция армии от дикаря с дубиной до лазерного танка, границы, территории и ресурсы. Это была масштабная задача, это был вызов. Но ведь решение сложных творческих задач — одна из лучших составляющих жизни, не правда ли?


Не желая и не ведая отдыха, я за несколько месяцев сделал Цивилизацию на движке старкрафта.

Мой путь в гейм дизайн через горнило моддинга Gamedev, Modding, Indie, Starcraft 2, Unity, Длиннопост

Что было дальше, можете догадаться сами. Люди приходят в батлнет чтоб получить быстрый адреналин, а не час строить города и захватывать территории. Кому-то это было интересно, в мою карту играли, было несколько горячих поклонников, но большинство игроков поиграв пару минут выходили и не возвращались.


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


Это понимание я воспринял как зарождение во мне гейм-дизайнера, и решился для нового мода придумать собственную игру с нуля.


Пропущу поиск идей, дизайн и планирование и разработку, там всё как обычно.

Мой путь в гейм дизайн через горнило моддинга Gamedev, Modding, Indie, Starcraft 2, Unity, Длиннопост

Предположу, что читателю уже понятна логика этого повествования. Да, новая игра тоже провалилась. Я намешал всего что мне пришло в голову, создал эклектичный гибрид жанров tower defense, action и RPG. Это даже могло сработать, если бы я не допустил грубую ошибку в геймплейной механике. В каждой из двух команд-соперников было по три игрока, но волна монстров для каждой команды была общей, и в созданных условиях выигрывала стратегия, когда один игрок в команде строит башни, а два других на подхвате. Игроки одной команды начинали конкурировать друг с другом за роль главного побивателя, и расстраивались, когда проигрывали в этой внутрикомандной борьбе. А от сотрудничества в первую очередь должен выигрывать игрок, и только во вторую — команда.


Когда я осознал эту ошибку, игра уже была закончена и отбалансирована, и мне не хотелось её снова глубоко переделывать, потому что менять пришлось бы слишком многое. Не скажу, что этот провал я воспринял легко, но это был полезный урок: если в предыдущие игры мне искренне нравилось играть, то в этом случае я сам чувствовал, как остываю, игра не была слишком вознаграждающей. После этой неудачи я понял, что вовсе не гений гейм-дизайна, и хорошую игру не сделать на одних лишь неуёмной энергии и умении программировать. Но на тот момент я не знал, куда двигаться дальше.


Третий акт: осмысленность


Не помню, сколько времени прошло прежде, чем я взялся за новую карту. Но она стала для меня особенной. Впервые я делал её не из желания сделать популярный мод, а из любви к искусству и из желания прыгнуть выше головы. Я решил воссоздать на движке ск2 другую стратегическую игру (Rise of Legends), которую мало кто знал из-за провалившейся маркетинговой компании её издателя. Но игра это была роскошная, для сражений по сети с другими людьми она была очень хороша, потому что разработчики значительно развили жанр RTS, добавив кучу уникальных механик. Но эта прекрасная игра умерла: в ней были баги, которые никто не исправлял, игроков становилось всё меньше, и в какой-то момент сервер отключили.


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

Мой путь в гейм дизайн через горнило моддинга Gamedev, Modding, Indie, Starcraft 2, Unity, Длиннопост

В этот раз получилось как хотел. Мультиплеерные сражения получились остры и напряжённы, все тактики оригинала срабатывали, у игроков был выбор стратегий и манёвров. У карты была всё та же проблема, новые игроки с трудом разбирались в том, как играть, и многие бросали. Но всё же у неё появилось несколько поклонников, с которыми мы в неё азартно играли.


Утолив ностальгию и жажду сложного, я снова захотел сделать популярную карту, и решил пойти по довольно очевидному пути: взял за основу одну из популярных карт, в которую я много играл и которую хорошо понимал. Понимал, чем она цепляет, и видел её недостатки. Потратил месяц на поиск новых идей и переработку механики, и получилась по сути новая игра — сложная, с большим количеством стратегий. Но сложна она оказалась и для разработки. Впрочем, после подвига разработки предыдущей карты ничего не могло быть достаточно сложно, чтобы меня остановить. Хотя, сложность этой новой карты была не только в программировании, но и в необходимости кропотливого создания огромного количества юнитов с уникальными способностями, поиска для них 3д-моделей, подбора для звуков, иконок и визуальных эффектов. Разработка растянулась больше, чем на год — это был мой рекорд на тот момент.


А когда я загрузил готовую карту на сервер, за несколько часов она угодила в топ 5 по популярности и уже несеолько лет его не покидает.

Мой путь в гейм дизайн через горнило моддинга Gamedev, Modding, Indie, Starcraft 2, Unity, Длиннопост

Игра удалась. Я видел людей с четырьмя тысячами сыгранных игр, при том, что одна игра может длиться до часа. Я сам сыграл больше тысячи игр, и хотя у меня был формальный повод это делать (занимался балансом), но после каждой игры мне страстно хотелось сыграть новую, она была действительно очень кайфовая.


Эпилог


Возможность загружать игру на сервер и мгновенно получать обратную связь от игроков помогла мне расстаться с иллюзиями и начать делать игры осмысленно. Но главной для меня проблемой моддинга в ск2 было не отсутствие опыта дизайна игр, а ограничения редактора, который был слишком высокоуровневым инструментом, чтобы воплощать все мои идеи. Кроме основных карт я делал прототипы, но эксперименты наталкивались на отсутствие необходимого функционала. Так что решение назревало давно. И после успеха новой карты я решил, что с гейм-дизайнерским опытом у меня порядок, перешёл на Юнити и стал делать standalone-игры. И это оказалось восхитительно: выйти за пределы технических ограничений, получив возможность напрограммировать любой нужный функционал. Ух, я разошёлся. Например, одну из недавних игр я сделал в виде физической симуляции, так что всё в ней было реалистично разрушаемо.

Мой путь в гейм дизайн через горнило моддинга Gamedev, Modding, Indie, Starcraft 2, Unity, Длиннопост

Если эту статью хорошенько полайкают, как-нибудь напишу о своём пути в инди-геймдеве после перехода на Юнити.

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

Физическое моделирование на GPU с использованием compute shader в среде Unity3D

ThisIsZolden в Лига Разработчиков Видеоигр

Я тут публиковал раньше постик о своей игре, физической симуляции, вычисляемой на видеокарте. Люди спрашивали, как это сделано. Но та игра была слишком громоздкой, чтобы по ней что-то объяснять. Поэтому, я сделал небольшой проектик, чтобы по нему всё объяснить. Это двумерная модель волос, вот гифка:


https://i.imgur.com/pxfW7cC.gifv


И для неё я написал подробный туториал:


https://habrahabr.ru/post/346268/


Там есть ссылка на сам проект с моделью волос. И там же есть есть ещё ссылка на более простой туториал, посвящённый тоже вычислениям на видеокарте.


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

Рисование фрактала на GPU, руководство, лёгкий уровень

ThisIsZolden в Unity

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


https://habrahabr.ru/post/346260/


Программа рисует фрактал мандельброта с помощью компьют шейдера.


Это пока простой туториал, скоро напишу более сложный, посвящённый физическому моделированию на GPU, в котором в качестве примера будет вот это


https://i.imgur.com/pxfW7cC.gifv

Появился сервис для написания визуальных демок на javascript не длиннее 140 знаков

ThisIsZolden

Называется "Dwitter", любой приходит, кодит, сразу видит результат, публикует в общую ленту, все лайкают. Суть в том, чтоб минимумом кода изобразить наиболее впечатляющую визуалку. Особенно оценят те, кто застал в 90-е эпоху микроскопических исполняемых файлов, рисующих сложную красоту.


Вот лучшие работы: https://www.dwitter.net/top


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

Доделал игру, работающую на видеокарте

ThisIsZolden в Лига Разработчиков Видеоигр

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


Основная особенность игры в том, что она представляет собой физическую симуляцию, которая выполняется на графическом процессоре. Основной код игры - это огромный compute shader, 6 тысяч строк на HLSL. Десятки тысяч взаимодействующих частиц обрабатываются параллельно, и выходит довольно быстро. Всё в игре сделано из этих частиц. Вот видосик с геймплеем:

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


Достоинства:


1. Производительности GPU в 10-100 раз выше, чем у процессора, когда дело касается параллельных вычислений. Это очен много, так что на видеокарте можно делать принципиально другие игры, чем на процессоре. Моя игра просто не работала бы на CPU (то есть, была бы слишком медленной).


Недостатки:


1. Мало туториалов. Я потратил довольно много времени, чтобы всё изучить. И ещё больше - чтобы решить возникавшие проблемы.


2. Это в принципе сложнее, программировать для графиеского ядра. Привычные для процессорного вычисления вещи могут не работать. Например, вместо трёхмерного цикла на трёхмерном массиве я должен был делать трёхмерное пространство потоков, одновременно обрабатывающих одномерный массив (в который пришлось разложить исходный трёхмерный). Кроме того, надо заботиться, чтобы параллельные потоки работали с общими данными в защищённом режиме. В целом всё это решаемо, но требует больше времени.


3. Проблемы возникли и при чтении данных из видеопамяти. Это приходилось делать на каждом цикле, но работало оно слишком медленно. Потоу что в юнити не было асинхронного чтения в удобное для графического конвейра время, и он постоянно блокировался при чтении данных. В итоге fps падал вдвое. Пришлось использовать нативный плагин для асинхронного чтения из видеопамяти средствами directX, но во-первых, это не работало вне windows, а во-вторых, по неизвестным причинам это не работало на некоторых видеокартах, игроки жаловались.


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


5. Графические API на разных платформах немного отличаются друг от друга. В простых случаях они совместимы со стандартом directX, но у меня - не простой случай. У Metal одно небольшое ограничение, на андроиде - другое, на Vulkan - третье. В итоге, моя игра работает только на Windows.


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


Но по итогам, я всё-таки доволен, что сделал что хотел. Очень интересно было посмотреть, каково играть в полностью физической, разрушаемой среде. Было бы неплохо, если б все графические API были совместимы, надеюсь, в будущем это всё устаканится. Потому что технология очень полезная из-за гигантского выигрыша в производительности. Вовсе не обязательно делать целую игру, можно перенести некоторые части игры на обработку в видеопроцессор. Например, поиск пути в стратегиях. А сейчас не любой разработчик будет готов писать compute shader, если всё равно его придётся дублировать, на случай, если игра запущена на платформе, не поддерживающей вычисление на видеокарте.


Ну и если кто-то вдруг захочет попробовать свои силы в этой области, то вот парочка туториалов:


http://kylehalladay.com/blog/tutorial/2014/06/27/Compute-Sha...


http://www.emersonshaffer.com/blog/2016/5/11/unity3d-compute...

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

К чему привели несколько лет моддинга для SC2

ThisIsZolden в Blizzard Community

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


В основном я импровизировал на тему известных игры, внося в геймплей изменения. Иногда делал свой гейм-дизайн и по нему - совершенно новую игру. То есть, по сути мои моды были самостоятельными играми, сделанными на движке старкрафта. В числе прочего я воссоздал такие игры: Heroes of Might and Magic, Civilization, Z, Rise of Legends, Arcanoid.


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


В итоге, моддинг для старкрафта 2 был для меня стал для меня отличной школой гейм-дизайна.


На свою последнюю игру я потратил год. Взял за основу другой мод, под названием Squadron TD (римейка Legion TD из Warcraft 3), и полностью переработал геймплей, попытался внедрить всё то, что, по моему мнению, должно было сделать игру интересной.


И эта-то игра наконец-то стала популярна! В первый же день добралась до топ-5, и уже 3 года там держится.


После этого успеха я уверовал в свои геймдизайнерские способности и перешёл на Юнити, стал делать уже нормальные игры, не связанные с движком старкрафта, сделался инди гейм девелопером. Вы может быть слыхали тут на пикабу о моей игре "Jelly in the Sky". Но я сейчас пишу не о ней, а о том самом моде "Mines and Magic", который удалось сделать интересным.


Просто хотел рассказать, в чём состоит эта игра. Возможно, кто-то решит поиграть и хорошо проведёт время.


По сути эта игра от носится к жанру Tower Defense, но это очень сильная эволюция того, что мы обычно называем TD.


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


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

К чему привели несколько лет моддинга для SC2 Starcraft 2, Battle net, Starcraft, Мод, Mines and magic, Gamedev, Длиннопост

Во-вторых, в игре сильно развита экономика. Игрок должен строить шахты, усовершенстовать их, распространять своё влияние по территории карты. Шахты приносят ресурсы, за счёт которых можно исследовать новые башни и строить их. За убийства врагов дают золото. То есть, приходится думать, как распорядиться накоплениями, пустить всё в защиту или рискнуть и обеспечить себе доход.


Ресурсов - семь разновидностей. Основное - золото, оно необходимо для всего. А доволнительные ресурсы нужны для различных башен. Для танков - еда, для дпс-ников - металл, для кастеров - мана. Есть ещё редкие ресурсы, которые требуются для исследования крутых юнитов.


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

К чему привели несколько лет моддинга для SC2 Starcraft 2, Battle net, Starcraft, Мод, Mines and magic, Gamedev, Длиннопост

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

К чему привели несколько лет моддинга для SC2 Starcraft 2, Battle net, Starcraft, Мод, Mines and magic, Gamedev, Длиннопост

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


Команда соперников занимается тем же самым, и вы можете потратить ресурсы, чтобы подослать сопернику дополнительных юнитов к их волнам. За это и доход повышается, и можно получить бонус, если подосланный вами юнит убьёт кого-то из юнитов соперника.


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


На картинке внизу справа можно видеть разнообраие защитных апгрейдов.

К чему привели несколько лет моддинга для SC2 Starcraft 2, Battle net, Starcraft, Мод, Mines and magic, Gamedev, Длиннопост

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


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


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


Впрочем, игроку есть, с чем выйти в бой. Каждый игрок выбирает в начале игры своего билдера с уникальным набором башен. Плюс, добыв ресурсов можно исследовать новые сильные башни. Всего в игре 8 билдеров, у каждого по 3 базовых башни, каждую из которых можно 1-2 раза апгрейдить. Исследуемых башен - ещё 20, тоже с апгрейдами. То есть, в игре можно построить порядка сотни различных башен, и у каждой есть уникальные способности. Замечу, что 3д-модели для каждой башни приходилось делать вручную или импортировать из WoW. Возможно, вы встретите знакомых монстров в новой роли.


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


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


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


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


И если вам любопытно, и у вас установлен старкрафт 2, то идите в раздел "arcade" (в русском интерфейсе это вроде называется "игротека") и там кликайте на мой мод. Игра бесплатная, народ в неё играет активно, так что долго ждать в лобби не придётся. Если чего непонятно - спрашивайте.

К чему привели несколько лет моддинга для SC2 Starcraft 2, Battle net, Starcraft, Мод, Mines and magic, Gamedev, Длиннопост
Показать полностью 5

Побег из ледяной трещины

ThisIsZolden в Лига Геймеров

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

Побег из ледяной трещины Физика, Игра симуляция, Jelly in the sky, Гифка

Пикабушный уровень в Jelly in the Sky

ThisIsZolden в Лига Геймеров

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


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

Пикабушный уровень в Jelly in the Sky Artillery, Physics, Симуляция, Jelly in the sky, Steam, Гифка

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

Пикабушный уровень в Jelly in the Sky Artillery, Physics, Симуляция, Jelly in the sky, Steam, Гифка

Сейчас в игре работает только режим hot seat, чтоб с одного компа играть. Или можно ботов пострелять. Они, правда, туповаты пока. А сам я в данный момент работаю над кампанией для одного игрока. Хочется сделать эдакий гибрид леммингов с платформером и артиллерией. Чтоб и пострелять весело, и чтоб физичность мира была задействована.

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

Что будет, если в игре использовать видеокарту для физики, а не для графики

ThisIsZolden в Лига Геймеров

Хочу поделиться с игровым сообществом результатми своего эксперимента.


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


Но мои эксперименты ожидаемо наталкивались на непреодолимую слабость процессоров, не спообных вычислять такую сложную систему.


Но недавно я нашёл решение.


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


То есть, для для моделирования сделанной из частиц материи - самое то.


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


По жанру игра - 2д артиллерийская стрелялка. Вроде Scorched Earth, Pocket Tanks или Worms. Но разница с этими играми - в физической реалистичнсти моей версии.


Как всё это выглядит, можно посмотреть в этой короткой гифке:

http://i.imgur.com/Q5w8cjF.gif


Или вот длинный, на 10 минут видос, в котором показан игровой процесс:

https://www.youtube.com/watch?v=SyCSEAfGGwU


Как вам, нравится?


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


Добавлено:


Тут спрашивают про финальный продукт.

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

http://steamcommunity.com/sharedfiles/filedetails/?id=845215...

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