Серия «Творческий марафон»

Зацикливаю уровни, и вас научу

Сегодня вторник. В этот день я обычно освещаю недельный прогресс по своим проектам. Уверен, сегодня вам будет интереснее не ЧТО я сделал, а КАК. Поэтому в своём рассказе я поделюсь парой приёмов как сделать в игре бесшовный цикл по уровню. Без привязки к коду или движку. От простого к сложному - всё, чем я занимался последнее время.

Зачем мне это

Напоминаю, что я работаю над проектом Zzzz-Zzzz-Zzzz. Это игра про исследование мира снов. Сновидения ставят игрока в конфуз своей запутанностью и неоднозначностью. Для этого я использую циклические уровни как один из инструментов.

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

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

Эта локация имеет вертикальный и горизонтальный циклы. Так я показываю неограниченность пространства. Подчёркиваю атмосферу мира сновидений.

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

Если камера не двигается - всё гораздо проще. С этого и начнём.

Статичная камера

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

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

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

Звучит просто, но нужно учесть два момента:

  • Ширина камеры - величина непостоянная. Зависит от разрешения экрана или размера окна.

  • При переносе персонажа на экране всё ещё видна его часть - "задняя". Она резко исчезает, и на другом конце экрана появляется "передняя" часть персонажа.

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

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

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

Такой метод подходит только для небольших уровней:

  • Уровень должен помещаться на экране.

  • Размер цикла совпадает с размером экрана.

Что делать если размер цикла меньше экрана или больше? Двигаемся дальше.

Локальные циклы

Если размер цикла меньше габаритов камеры - вместо копирования персонажа нужно будет копировать окружение. В Zzzz-Zzzz-Zzzz есть уровень Лестница. Я реализовал в нём вертикальный цикл высотой 64 пикселя. Это гораздо меньше высоты камеры в 192 пикселя.

Почти тот же трюк с перемещением персонажа на границах цикла, но с тремя главными отличиями:

  • Камера двигается и переносится вместе с персонажем.

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

  • Копии персонажа при этом рисовать уже не нужно

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

Ось цикла - это направление движения персонажа, в котором будет повторяться циклический контент.

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

Клонировать окружение можно разными способами. Я знаю три:

  • Для каждого ассета в циклическом контенте рисуйте его копию. Вдоль каждой оси цикла впереди и позади. Как я делал в статичной камере с персонажем. Большое количество склонированных ассетов может повлиять на производительность.

  • Заранее разместите копии ассетов на уровне. Этот способ использую я.

  • Динамически копируйте или переносите контент цикла при движении персонажа. При этом контролируйте значение координат персонажа, чтобы они не переполнили стек. Это может случиться при длительном движении персонажа в одном направлении.

Чем меньше зацикленный кусочек - тем больше раз его нужно скопировать. Количество копий в одном направлении оси цикла можно рассчитать так:

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

То есть целое количество контента в камере +3. Или подвигайте камеру в пределах границ цикла и клонируйте контент столько раз, сколько нужно будет.

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

В 2Д мире вы скрываете швы при помощи области видимости камеры. В 3Д мире вам придётся использовать другие приёмы: туман, большие объекты.

Глобальные циклы

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

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

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

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

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

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

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

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

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

Зацикливаю уровни, и вас научу Инди, Инди игра, Gamedev, Разработка, Pixel Art, Видео, Длиннопост

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

Этот способ имеет недостаток: персонаж будет находиться в пустоте на границах цикла. При вертикальном движении пару секунд он проведёт в пустоте:

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

Ещё немного занудства

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

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

  • Любите параллаксы и динамичные фоны? Получите целый пласт работ.

  • Вместо виртуальных камер выбрали клонирование или перенос/создание? Будете поддерживать клоны динамических объектов - противников и их выстрелы.

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

Для чего использовать циклы?

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

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

Можно использовать отдельные зацикленные зоны в скроллерах. Для засад и боссов. Игрок находится в цикле всё сражение, а потом игра его выпускает дальше. И не только в скроллерах! Игрок прыгает в шахту - начинается сражение с боссом. Как обеспечить нужную глубину шахты, чтобы хватило на всё сражение? Использовать циклы.

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

Заключение

Я показал вам три вида циклов: статичные, локальные и глобальные. Рассказал, как их организовать. Привёл примеры использования циклов в играх. Делайте свои циклы!

А я продолжу делать свой проект Zzzz-Zzzz-Zzzz. Следующую неделю я обогащу карту снов и добавлю ещё уровней.

Спасибо за внимание! Надеюсь, через неделю я смогу ещё вас чем-нибудь порадовать.

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

Проще, чем 12 лет назад, но сложнее

В 2011-ом году я сделал игру Danger! Energy. Это был мой первый опыт отрисовки сложного арта. До этого я неплохо рисовал и придумывал персонажей. Рисовать катсцены и сопроводительный арт не умел. Научился. Сейчас расскажу, чему именно. Надеюсь, кому-то из вас это тоже пригодится.

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

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

Подготовка

На момент разработки была проблема. В сюжете игры встречаются всего три капитана команды добычи:

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

Других капитанов в повествовании не было. Поэтому собрание капитанов я решил тогда изобразить в виде загадочных фигур над "лицом" самого главного антогониста игры - ЕВК. Расшифровка: Единый Виртуальный Контроллер - так его назвали создатели. Ему не нравится, он требует называть себя ЕВГЕН. Чтобы вы лучше представляли о ком речь, прилагаю его арт:

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

Вернёмся к задаче. Даже в 2011-ом я понимал, что собрание капитанов выглядит позорно:

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

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

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

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

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

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

Спустя время, я стал ответственнее относиться к своему творчеству. Потратить время на отрисовку ещё 6 персонажей для арта в библиотеку я теперь воспринимаю как нормальную задачу.

Если у вас есть бюджет и желание сделать хорошо - не стоит экономить на мелочах. Мелочи подчёркивают атмосферу, оживляют контекст.

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

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

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

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

Разбиваю заливки на несколько групп, рисую им грубую клип-маску вектором. Слежу за тем, чтобы внутри нужной заливки тень правильно легла.

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

Группирую получившиеся слои. Назначаю этой группе клип-маски с мягкими тенями и бликами. Рисую мягкой кистью с максимальной растушевкой.

Получился пирог, который очень просто исправлять. Так я нарисовал ещё шесть персонажей, стараясь попасть в ту же стилистику.

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

Только четыре из них имеют узор, характерный для капитанов команды добычи. Почему Флареон и Амфус стали капитанами - стоит только догадываться. Обратите внимание, в старой тройке капитанов таким же является Ведекс. По лору он глава города, но вынужден курировать команду добычи. ЕВК лично казнил капитана его команды добычи энергии.

Вы можете придумать историю для каждого нового персонажа. Возможно, она или её часть попадёт в финальную игру. Пишите в комментариях =)

Компоновка частей в единое целое

Теперь нужно собрать всех капитанов на "общее фото". Задача только кажется простой. Есть нюансы. Закинете всех персонажей кучей, и как-то их расставите - скорее всего получится каша.

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

Сперва я отделяю персонажей друг от друга лёгким затенением вокруг. Каша всё равно остаётся, но меньше. Важнее разбить картинку на планы. Планы отделить друг от друга градиентом.

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

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

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

Проще, чем 12 лет назад, но сложнее Gamedev, Разработка, Цифровой рисунок, Инди игра, Инди, Длиннопост

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

Заключение

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

Сейчас я занимаюсь проектом Danger! Eenergy в фоновом режиме. Эти 14 часов на одну картинку размазались на 3 месяца. Из-за других проектов, которые у меня в фокусе.

  • Про актуальные проекты и редкие новости по Danger! Energy читайте в моей группе ВК.

  • Пообщаться со мной можно на моём дискорд-сервере. И на тему этой статьи, и на тему моих проектов, и на тему ваших проектов! И просто про игры поболтать.

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

P.S. Это вместо Вдохновельника по понедельникам.

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

Игромятница #3

Сегодня пятница - время расслабиться и помять что-нибдь околоигровое! Я снова приготовил вам пост про одну из своих многочисленных игр. В этот раз в 3Д - про остров, в который воткнуты части ПК. К посту прилагается ссылка на игровой билд, на случай если вам захочется это потыкать.

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Этот проект я делал очень давно по собственной инициативе без всяких конкурсов. Один из немногих, которые я делал на Unity, а не на Game Maker. Я её так и не доделал...боюсь, что и не доделаю, т.к. исходники перестали открываться в новых версиях юнити. Увы, но даже установка той самой версии 3.5 из юнити-хаба не помогает увидеть проект.

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

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

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

Экскурсия

Остров поделён на несколько зон. Стартовая зона - овраг с кучей капсул, в одной из которых просыпается игрок. Видит приветствие.

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

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

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

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

Примерно в центре острова находится конструкция с воронкой.

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

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

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

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

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Двигаясь по периметру можно найти Храм Гравитации, перед которым аллея из красных кристаллов.

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

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

Вдоль стены территории этого храма есть тропа, ведущая к островку с видеокартой.

Попасть на этот остров непросто. А всё из-за соединяющего тонкого мостика. Часть его панелек плохо держатся и проваливаются.

Дальше по кругу острова находится зона со Звуковой картой.

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

Предпоследней частью острова является берег охлаждения.

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

И ещё одно место в двух экземплярах - это Врата.

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Они как бы примыкают к остову трапом. Стоят из множество секций "слот+консоль". Доступ туда игроку закрыт, кроме как по одному из заданий.

Ещё планировалась локация прямо на водной глади - Блок питания, но я его так и не сделал.

Игровой процесс

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

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

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

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Перед этим местом расположена точка респавна и загадочная цифра

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

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

В звуковой локации я уже начал делать пульт с клавишами:

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Хотел раскидать по острову надписи из этих четырёх символов. При наборе этих надписей на данной клавиатуры должны были активироваться прыгалки. Вообще вся эта зона должна была быть построена на прыгалках в финале которых игрок получает двойной прыжок.

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

Забавные факты

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

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

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Мне было очень сложно придумывать геометрию комнат - вообще не было опыта 3Д левел-дизайна. Кстати, 3Д анимации я тоже делать не умею, так что 90% их в игре - это вращение чего либо. Я довольно виртуозно научился это делать.

Чем больше объектов вращается одновременно - тем живее все это выглядит.

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

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Кстати, ещё в этом НИИ на выходе я расположил картинную галерею со скринами из своих проектов на тот момент:

Игромятница #3 Инди, Gamedev, Инди игра, Разработка, Unity, Видео, Длиннопост

Почему-то мне тогда думалось, что это поможет обратить внимание игроков на эти игры.

Ну и немного сюрреализма с островка видеокарты

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

И что дальше?

Этот проект в этом виде я продолжать уже не могу, т.к. юнити не видит сам проект. Делать по новой нет желания... да и я вижу что скила в моделировании тоже нет. В своё время я решил, что это не моё и сосредоточился на 2Д играх.

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

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

  • В группу мою ВК вступайте - там новости по моим свежим разработкам.

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

Спасибо за внимание, хороших выходных!

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

Рекомендательный четверг #3

Сегодня четверг, можно начинать готовиться к выходным. Сейчас я расскажу, что можно посмотреть/почитать, или во что можно поиграть. Слышали о книжке Роберта Хайнлайна "Туннель в небе" (Tunnel In the Sky)?

Рекомендательный четверг #3 Что почитать?, Обзор книг

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

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

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

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

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

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

Проектный вторник #3

Сегодня вторник - снова время рассказать, над чем я работал целую неделю. В фокусе был всё тот же проект Zzzz-Zzzz-Zzzz. Моя легендарная игра про сны - поиск выхода из непостижимого, сюрреалистичного мира. Кратко о главном.

Проектный вторник #3 Gamedev, Инди, Инди игра, Разработка, Pixel Art, Головоломка, Видео, Длиннопост

Как я и говорил в прошлом посте, собирался работать над уровнями. Работал над ними и успел сделать шесть штук. До карты снов не дошёл. Я делаю уровни по порядку. Первые примерно 10 уровней игрок открывает линейно, и только потом попадает на Карту Снов, откуда может продолжать свои приключения, возвращаясь в прошлые уровни в поисках сновидческих тропинок в новые сны. Причём эти первые уровни на самом деле не линейные, игрок увидит только часть из них, может увидеть 5 штук, а может и 8. Всё зависит от маршрута, который будет выбран.

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

  • Разобрать слои с объектами, тайлами, ассетами, фонами - привести их к рабочему виду.

  • Все тайловые слои сделать полноценными тайловыми, что непросто, т.к. мне приходится заводить от 2 до 6 таких слоёв.

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

  • За расширением следует перенос всего содержимого слоёв в центр сцены (сцена всегда расширяется вправо и вниз).

  • Выставить камеру, зафиксировав её по осям, если нужно

  • Пройти по всем объектам этого уровня и проверить/поправить логику, т.к. частично она была завязана на координаты. Попутно заменить устаревшие функции на новые.

***

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

Первый уровень уже является развилкой и называется Пробуждение.

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

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

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

Проектный вторник #3 Gamedev, Инди, Инди игра, Разработка, Pixel Art, Головоломка, Видео, Длиннопост

***

Второй уровень - это Восхождение.

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

Проектный вторник #3 Gamedev, Инди, Инди игра, Разработка, Pixel Art, Головоломка, Видео, Длиннопост

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

Проектный вторник #3 Gamedev, Инди, Инди игра, Разработка, Pixel Art, Головоломка, Видео, Длиннопост

***

Третий уровень - Полёт.

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

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

***

Четвёртый уровень - Суперсила.

Игроку сообщается что он теперь обладает суперсилой.

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

***

Пятый уровень - Обрыв.

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

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

Проектный вторник #3 Gamedev, Инди, Инди игра, Разработка, Pixel Art, Головоломка, Видео, Длиннопост

***

Шестой уровень - Лестница.

Доконавший множество летсплейщиков.

Проектный вторник #3 Gamedev, Инди, Инди игра, Разработка, Pixel Art, Головоломка, Видео, Длиннопост

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

***

Седьмой уровень - Тюрьма.

Игрок помещается в замкнутое пространство. Именно здесь, по задумке оригинальной игры, игроку нужно было вспомнить про "ЖМИ <<Z>> В ЛЮБОЙ СИТУАЦИИ".

Проектный вторник #3 Gamedev, Инди, Инди игра, Разработка, Pixel Art, Головоломка, Видео, Длиннопост

Смысл в том, чтобы довольно очевидным образом лечь обратно в постель. Или не очень очевидным, а протыкиванием кнопки Z на каждом пикселе. В этой версии будут UI подсказки на интерактивные объекты. Поэтому мне придётся немного переделать концепт. Например, сделать так, что первые два раза засыпания в постели ничего не меняют, или только первый.

***

Восьмой уровень - Пустота.

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

Хотя на самом деле здесь просто нужно действовать согласно тексту. Любой инпут прерывает "заканчивание сна". Поэтому когда игроки крутятся возде пиктограмы с клавишами и пробуют что-то сделать - сон не заканчивается.

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

***

Заключение

Пока что 8 уровней из 36 готовы. Причём не самые сложные и не самые большие по контенту. Буду делать дальше. На грядущей неделе я скорее всего буду мучить карту снов. Хочу сделать красивую зацикленность, но есть нюансы с камерой. Кроме карты хочу ещё хотя бы 5-6 небольших уровней сделать.

Буду рад вашей поддержке:

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

  • Залетайте на мой дискорд Сервер - мы с пацанами там обсуждаем всякое - и мой прогресс по проектам, их концепты и просто трындим про игры, делимся опытом.

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

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

Вдохновельник #3

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

Вдохновельник #3 Цифровой рисунок, Инди, Vectorart

Это персонаж для одной из моих игр. Для Danger! Energy, как можно догадаться по стилю. Место этого персонажа тоже где-то на заднике одной картинки в библиотеке лора игры про капитанов команд добычи различных городов.

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

Игромятница #2

Сегодня пятница - время расслабиться и помять что-нибдь околоигровое! Я снова приготовил вам пост про одну из своих многочисленных игр. Небольшой пост - как раз чтобы прочесть за чашкой чая/кофе/пива. К посту прилагается ссылка на игровой билд, на случай если вам захочется провести выходные с пользой =)

Игромятница #2 Инди, Инди игра, Gamedev, Видео, Длиннопост

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

Как и большинство моих проектов, этот начался с конкурса. Как и большинство моих проектов, начавшихся с конкурса - этот начался с Ludum Dare. За номером 28 на тему “Ты получишь только одно“ (You only get one). Я интерпретировал тему так: “ты получишь только одного бога, которому можешь поклоняться” . Это комната, в которой вы начнёте игру. На ней висит большой монитор которым она общается с персонажем посредством текстовых сообщений.

Об игре

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

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

Игромятница #2 Инди, Инди игра, Gamedev, Видео, Длиннопост

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

Из недостатков - очень темно в игре. Прям капец. Лучше всего играть на тёмном фоне. Поэтому проще всего глянуть именно веб-версию.

Планы на проект

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

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

Помню, что я хотел сделать невероятное приключение в жанре триллера про поиск смысла жизни. Ещё хотел босса паука сделать, как мелкие пауки, только большой. С ним сражение на кладбище должно было быть (это под конец прототипа уже). Хотел сделать путешествия через телевизоры. Мне очень зашла эта тема после того как я поиграл в игру Sutef.

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

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

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

  • А ещё в группу мою ВК вступайте - там новости по моим свежим разработкам.

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

Спасибо за внимание, хороших выходных!

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

Поиграем в бизнесменов?

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

СДЕЛАТЬ ВЫБОР

Рекомендательный четверг #2

Сегодня четверг, можно начинать готовиться к выходным. Сейчас я расскажу, что можно посмотреть/почитать, или во что можно поиграть. Сегодня я расскажу вам о книжке Майкла Муркока "Се - человек" (Behold the Man).

Рекомендательный четверг #2 Что почитать?, Обзор книг

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

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

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

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

Книжка, кстати, бородатая, 1969-ый год. Мировая классическая фантастика бородатых годов тем и хороша, что читается очень круто даже сейчас. Даже в наше время истории мэтров прошлого века потрясают воображение. Особенно если копнуть чуть глубже, чем общеизвестные тайтлы типа отвратительно Космического Десанта (Космические Рейнджеры у Хайнлайна). Казалось бы, чего интересного можно придумать на темы, которые были обсосаны множество раз. Но, скажу я вам, то что написано в книжках - кардинально отличается от того, что вы видите в играх и кино. Там вы видите штампы и самокопирование трендов, а в книжке вы видите авторскую работу. Точно такую же авторскую работу я пытаюсь вести в геймдеве, но это уже совсем другая история.

Следующая рекомендация будет через неделю, спасибо за внимание!

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