Как сделать игру за 3 дня, или история создания двух игр

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

Для начала, зачем мы всё это делаем? Каждые 4 месяца мы участвуем в Ludum Dare - это конкурс, в котором за 3 дня (или 2, если ты делаешь всё в одиночку) нужно сделать игру на заданную тему, притом все компоненты - код, графика, идея должны быть придуманы в этот период времени. Недавно он прошел уже в 43 раз. В предыдущей же, 42, раз темой стала фраза "Running out of space".

Формирование идеи

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

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

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

Геймплей

Для того, чтобы сделать игру реиграбельной, но в то же время иметь возможность сделать всё быстро, мы придумали добавить к каждому уровню определенные условия - этакие "звезды"из мобильных игр. Таким образом, каждый игрок мог пройти игру на одну звезду достаточно легко (немного наперед: оказалось, что и это достаточно сложно), но чтобы получить все три звезды ему пришлось бы попотеть. В итоге, мы придумал три условия для каждого уровня: первая звезда - поставить необходимый минимум предметов, вторая звезда - поставить ВСЕ предметы , третья звезда - выполнить условия "соседства" (например, полка рядом с телевизором).

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

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

Программирование

Основные функции, которые должны быть доступны игроку, мы ограничили несколькими действиями: ставить предметы, вращать их вдоль двух осей и регулировать высоту. Со стороны внутриигровой механики оставалось "всего лишь" сделать воксельный мини-движок, который бы позволял настраивать размеры каждый модели, рассчитывал бы коллизии и позволял определять соседние клетки (это оказалось нужным для определения условий для второй звезды). В качестве среды разработки мы решили использовать Unity. Итерации проекта выглядели как-то так:

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

Графика

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

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

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

Что касается формы объектов, то мы решили использовать бесплатную программу MagicVoxel. Она позволяет достаточно быстро и просто набросать основные формы и помогает понять дизайнеру, как вписать в эту форму модель.

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

В итоге в Blender было создано 36 моделей мебели (а ведь есть еще стены/двери/окна/полы, которые не участвуют в геймплее).


Музыка

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


Прием игры

Огромный плюс Ludum Dare в том, что твою игру посмотрит достаточно большое количество людей, которые при этом сами являются разрабочиками. Очень часто из их комментариев к игре можно получить полезные подсказки, которые сделают игру интереснее (у нас всего после 4 дней уже составлен большой документ с улучшениями, которые мы собираемся добавить в пост-ЛД версию). Также, многие стримеры проводят LD-week, где играют в игры с этого конкурса и дают комментарий по поводу нее - иногда очень полезно посмотреть, как другой человек проходит твою игру и послушать его мысли по этому поводу в "прямом эфире" (особенно крики в духе КУДА ПОСТАВИТЬ ЭТОТ ФОНТАН?!). Радует, что большинству, похоже, наша игра кажется интересной.


Как поиграть

Поиграть можно бесплатно тут, прямо из сайта.

Управление:

Левая кнопка мыши: поставить объект

A и D: повернуть комнату

Правая кнопка мыши или R: повернуть объект по оси X

Средняя кнопка мыши или F: повернуть объект по оси Y

Колесико: регулировать высоту объекта


Авторы

Программист: Шишов Борис

3D художник: Шишов Глеб

Музыка: Шишова Екатерина

Гейм-дизайн (и эта статья): Фролов Артемий

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

Ludum Dare 43

Темой Ludum Dare 43 в этот раз стала Sacrifice must be made. И если в прошлый раз тема ("Running out of space") напрямую влияла на геймплей, то сейчас простор для идей был просто безграничен. Для того, чтобы собрать всё независимо друг от друга, мы решили создать гугл-форму: каждый должен был описать как минимум 3 идеи, при этом выделив основные ее признаки - механика, соответствие теме и прочее.

Тут все наши идеи - у кого-то вышло подробно, у кого-то не очень, но если используете хоть одну из них - не забудьте перевести нам отступные! :D

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

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

Проработка идеи

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

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

Кстати, некоторые идеи я писал на стекле.


В конечном итоге мы пришли к идее живого барабана, который тратит свою энергию каждый раз, когда по нему ударяет главный герой. Чтобы пополнить эту энергию, на специальных алтарях можно принести в жертву своих подручных - и именно здесь появляется тот самый баланс, которы ймы искали: до конца нужно довести определенное количество хомяков, но при этом Sacrifice must be made.

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

Организация времени

До Ludum Dare 43 для организации процесса мы обычно использовали Trello - удобный таск-менеджер, который позволял каждому определять нужную задачу. В этот раз мы попробовали Hack'n'Plan, и, если честно, он мне понравился гораздо больше - интерфейс был ближе, да и распредление задач по разным доскам помогало удобно разбираться в том, что необходимо сделать дальше.

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

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

Так что уровни ближе к официальному окончанию выглядели как-то так. Довольно пустовато, не так ли?

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

Послеконкурсное

После окончания официальной части Ludum Dare 43 мы не бросили работу над проектом - мы все-таки добавили новые фичи в уровни, пофиксили баги и баланс и, самое главное, сделали очень красивые уровни. Каркас и основной геймплей остались такими же, но с дополнительными моделями уровни просто расцвели (в прямом и переносном смысле):

Как сделать игру за 3 дня, или история создания двух игр Игры, Программирование, Длиннопост, Гифка, Видео

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


Как играть?

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

Для ходьбы используете WASD, для игры красным битом - левую кнопку мыши, для игры фиолетовым битом - правую кноку мыши.

А если же играть неохота, но интересно посмотреть, что получилось, то есть видео-прохождение:

Авторы

В этот раз стало на 2 человек больше.


Программист: Шишов Борис, Бедердинов Григорий

3D художник: Шишов Глеб

Музыка: Шишова Екатерина

Гейм-дизайн: Фролов Артемий, Пискарев Антон


В заключение

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

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

6.6K пост22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

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

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

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

- Выдавать чужой труд за свой

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


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

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


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

раскрыть ветку (2)
Автор поста оценил этот комментарий

Да, вот мы долго поэтому и выбирали - вроде все идеи интересные, а выбрать надо одну =)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну вы это, не забрасывайте эти идеи. Я бы поиграл в них.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку