73

Как сделать игру за 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

Прикольно наверное уметь сделать свою игру с блекджеком и... жаль у меня руки не из плеч. А вам успехов на поприще игростроя

раскрыть ветку 2
+2

Спасибо большое!
Но, к слову сказать, чтобы дойти до такого уровня, мы участвуем в это конкурсе, начиная с 2013 года. Так что всё приходит с опытом =)

раскрыть ветку 1
+1

Учитывая что у меня знаний в этой области 0 то это очень долгая история будет

+3

Ничоси, за 3 дня такую красоту создать! Респект! Некоторым типа меня и трёх лет не хватит. Ушёл плакать и расстраиваться(

раскрыть ветку 1
0

Спасибо! Не расстраивайтесь, надо просто начинать с малого, а там уже и пойдет потихоньку =)

+3

Кого-то мне напоминает этот хомяк

Иллюстрация к комментарию
раскрыть ветку 1
+1

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

+2

Слышал уже про этот конкурс, смотрел разведопрос с одним из участников. Так и не могу понять, как можно запилить игру за 3 дня, пусть и примитивную. Если не сложно, вкратце опиши, как оно происходит? Сначала придумывается идея, рисуются текстуры, потом пишется алгоритм, или как?

раскрыть ветку 2
+2

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

раскрыть ветку 1
+1

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

Спасибо)

+2

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

раскрыть ветку 1
0

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

+1

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


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

раскрыть ветку 1
0

Мои соболезнования...
Идея, кстати, звучит очень интересно. Если честно, то сам я именно в програмировании играю очень небольшую роль в наших проектах, так что "освоить" тут было не так много. Но в любом случае, все это реально, не опускайте руки!

+1

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


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

раскрыть ветку 2
0

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

раскрыть ветку 1
+1

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

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

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

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

Похожие посты
Похожие посты не найдены. Возможно, вас заинтересуют другие посты по тегам: