Как сделать свой первый игровой прототип

Всем привет!

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

Несколько уточнений:

  • под разработчиком игр будем понимать человека, который программирует логику игры (программист, геймдизайнер);
  • я говорю не о коммерческой разработке и не о завершенных проектах, а именно о прототипах или технических демках Ваших идей. Разработка полноценной игры, это уже следующий шаг, который здесь не рассматривается;
  • я говорю о 2D проектах, с 3D всё "сложнее".

Чтобы не томить, то сразу напишу пункты, о которых тут написано:

  • конструкторы игр;
  • конкурсы (GameJams).

Теперь, подробнее рассмотрим, в чём суть.

Кратко обо мне

Я работаю программистом более 10 лет в сфере разработки программного обеспечения. За это время изучил несколько языков, разбирался с разными технологиями, фреймворками. Люблю изучать что-то новое и экспериментировать.

Параллельно, в качестве хобби, занимаюсь разработкой игр. Приходили идеи, которыми я загорался. Чувствовался подъём и ощущение, что на этот раз я сделаю игру, и она будет классной. В свободное время брал понравившийся мне инструмент и начинал "творить": “Сейчас быстро всё накодим...”.

Почему не получается?

“Свободное время” - волшебные слова. Кажется, что как оно наступит, Вы сможете всё. Но на самом деле, к этому времени Вы приходите без сил. Кто-то устаёт от работы, кто-то от учёбы. Также и я, после рабочего дня, выполняя интересные, но сложные задачи, пытался изучать движки, продумывать и создавать архитектуру игры, ну и саму игру.

И получается так: сегодня у Вас есть силы, а завтра нет желания даже садиться за компьютер. После таких волн, через пару месяцев я “перегорал”. Идея становилась уже не интересной, и желание продолжать уходило от меня. Такой цикл происходил не один десяток раз. Думаю я не один, кто (по своим причинам) стоит у “разбитого корыта”.

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

Конструкторы игр

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

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

Как сделать свой первый игровой прототип

Лично я использовал такие конструкторы, как GDevelop и Construct 2. Ещё слышал о Construct 3, Construct Classic, Stencyl, Buildbox. Некоторые платные, но имеют бесплатную ограниченную версию.

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

Как сделать свой первый игровой прототип

а можно и на русском языке (правда перевод кое-где хромает):

Как сделать свой первый игровой прототип

Получается, что Вы пишете действия (псевдокод), в результате они становятся кодом игры. Таким образом, достигается низкий порог вхождения. Конструкторы стремятся быть доступными и простыми в освоении. И, по-моему мнению, если Вы не сможете самостоятельно освоить такую программу, как Вы сможете разобраться с такими большими и сложными инструментами, как Godot Engine, Unity, Unreal Engine?

Конкурсы (GameJams)

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

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

Я наткнулся на конкурс в YouTube (автор удалил видео, связанные с конкурсом, так что ссылок не будет). Тема была "Управление временем", время на разработку 72 часа, и обязательное условие, чтобы графика была своя. Что я сделал:

  • в качестве инструмента использовал GDevelop;
  • механика - мне пришла идея о замедлении и ускорении препятствий для прохождения (я успел сделать только замедление). То есть игрок должен создавать некую зону, в которой менялось время. Я решил сделать это за счёт снарядов: у персонажа есть пушка, которая стреляет бомбами; бомбы, сталкиваясь с препятствием, на некоторое время создают круг. Любое препятствие, которое столкнётся с этим кругом, замедляется. Снаряды ограничены и подбираются на уровне;
  • графика - рисовать я не умею, поэтому для быстрого создания графики использовал чёрно-белую палитру и персонажа Stickman (нашёл в интернете картинку с анимацией бега и перерисовал в графическом редакторе). Оружие, пули, препятствия были сделаны из простых геометрических фигур.
  • уровни - задача игрока проходить уровни. Я сделал 2 уровня, но из-за спешки (второй уровень я начал делать за час до окончания срока) допустил ошибку и если игрок проходил первый уровень, то попадал снова на первый уровень;
  • музыка, звуки - отсутствуют;
  • главное меню - просто кнопки для запуска игры и просмотра страницы с текстом, якобы предысторией.

В связи со всеми обстоятельствами я затратил на проект около 9 часов. Выглядит это так:

Как сделать свой первый игровой прототип

Запустить можно тут.

В итоге из 17 присланных проектов, организатор конкурса через видео продемонстрировал 11 из них, для проведения голосования. Остальные проекты были слишком слабыми. Конечно, моего проекта не было среди этих 11. Но я радовался, что мой кривой, косой прототип был сделан. Его может и посмотрели пару человек, и он стал последним из всех - это неважно, потому что я достиг цели. Я смог поставить “точку” и отправить его на конкурс.

Меньше, чем через неделю я решил участвовать в следующем конкурсе Great Spring Game Jam: 2021. Он длился уже 3 недели, тема была “Весна”. И чтобы не дать своей лени возможности отлынивать, я в Discord-чате этого джема договорился о совместной работе над проектом с музыкантом Rosko Vair. Он из США, общаемся мы через Discord (до сих пор, мы вместе ещё потом участвовали в джемах). Как только, я узнал о теме, то накидал документ из 4 страниц с описанием идеи (я ведь не один над проектом теперь работаю, надо рассказать об идеи). Отправил напарнику, и, получив одобрение, лёг спать.

Как сделать свой первый игровой прототип

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

Что мы сделали:

  • в качестве инструмента я взял Construct 2 (мне было интересно попробовать другой конструктор);
  • механика - нужно, соединяя кран, трубы и ороситель, полить цветы. Трубы, ороситель можно перемещать на поле из клеток и поворачивать (начиная с 4 уровня);
  • графика - брал из свободных источников и редактировал (дорисовывал) в графическом редакторе;
  • 15 уровней, главное меню с анимацией;
  • 4 музыкальных трека (1 - главного меню, 3 - во время игры), звуки окружения, которые проигрывалось между музыкой во время игры (по идеи от Rosko, так игрок смог бы отдохнуть от музыки, так сделано в компьютерной версии настольной игры “Билет на поезд”), звуки интерфейса и элементов игры;
  • я добавлял плавную анимацию, плавные переходы музыки, обучение.

Выглядит и звучит это так:

Запустить можно тут.

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

Далее, я участвовал ещё в конкурсах, но, набравшись опыта и почувствовав уверенность, уже использовал игровые движки посложнее (Godot Engine, GameMaker Studio 2).

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

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

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

Если хотите выбрать себе джем, то Вам сюда.

Заключение

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

Спасибо, что дочитали! =)

4949
26 комментариев

Как сделать свой первый игровой прототип

16
Ответить

Комментарий недоступен

8
Ответить

Если бы всё так было просто... =)

3
Ответить

Комментарий недоступен

4
Ответить

Комментарий недоступен

5
Ответить

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

2
Ответить

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

1
Ответить