Придумайте концепт
Для того, чтобы игра получилась хорошей – процесс её разработки должен быть осмыслен, для того чтобы он был осмыслен – у игры должна быть четкая концепция. Она включает в себя много разных мелочей, из которых строится игра. Сначала определитесь с идеей, о чем будет ваша игра, в каком жанре. При выборе жанра нужно учесть, что основной задачей вашей первой игры является ознакомление вас с паттерном MVC и от правильности его реализации будет зависеть ваша оценка. Относительно простыми в реализации паттерна будут жанры, в которых есть прямое управление персонажем, такие как:
  • Quest
  • Shooter
  • Looter
  • Survival
Это жанры, в которых вы управляете персонажем через кнопки WASD, стрелочки на клавиатуре или другие способы, но главное – напрямую. Напрямую – это значит персонаж мгновенно откликается на ваши команды, а обработка этих команд идет постоянно. Реализация паттерна MVC для игр с прямым управлением – тривиальная задача, на эту тему собрано множество гайдов, и вы без особого труда сможете это реализовать. Для тех, кто хочет вызова или трудностей, есть жанры, в которых правильная реализация паттерна будет сложнее и, зачастую, потребует более глубокого понимания принципов работы паттерна MVC. К ним можно отнести:
  • Стратегии
  • Головоломки
  • Игры жанров Quest Horror Shooter Survival с непрямым управлением [1]
  • Пошаговые игры
На игры с непрямым управлением намного меньше гайдов и вам будет тяжелее реализовать базовые механики. Беритесь за такую игру, только если уверены в своих силах. Что можно сказать точно – если вы правильно реализуете паттерн MVC в игре с нетривиальными базовыми механиками – вы с уверенностью сможете сказать, что вы знаете, как работать с MVC. Для того, чтобы вы успели написать игру в срок рекомендуем определиться с несколькими основными аспектами:

а. Цели игры (Что в вашей игре нужно будет делать)

Цели игры, в вашем случае – то, чего хочет достичь игрок. Чтобы игра была понятной – нужна ясная цель, к чему будет стремиться игрок.

На рынке есть огромное число игр, которые не всегда следуют этому правилу, например Project Zomboid. Тезис игры – «Это история вашей смерти». В неё нельзя выиграть. Почему такой способ не подходит для курса?

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

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

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

  • Quest
    ○ пройти все уровни до конца
    ○ решить все загадки, найти все ответы
  • Shooter
    ○ устранить всех противников на уровне
    ○ дойти до конечной точки, отстреливаясь от противников
    ○ набрать наибольший счет
    ○ победить последнего босса
  • Looter
    ○ Найти все предметы на карте
    ○ Найти сочетание конкретных предметов
    ○ Найти один предмет
  • Survival
    ○ Выжить определенное число волн
    ○ Прожить определенное число дней
    ○ Умереть, прожив наибольшее число дней
    ○ Умереть, прожив наибольшее число волн

Эти цели лишь пример того, как вы можете выбирать их для своей игры. Важно, что они все конкретные. При выборе цели руководствуйтесь главным правилом – цель должна быть конкретной!

b. Процесс игры (Как в вашу игру будут играть)

Важно продумать и то – как в вашу игру будут играть, как игрок сможет достичь цели. Обратите внимание на следующие моменты:

  • Что игрок сможет делать, а что нет

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

Игрок может:
    ○ Подбирать предметы
    ○ Выбрасывать предметы
    ○ Использовать предметы
    ○ Стрелять из оружия
    ○ Пить напитки
    ○ Есть еду

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

  • Как игроку выиграть или проиграть

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

Хорошим примером будет игра «Tetris». Она бесконечная и выиграть в нее невозможно, но при поражении игрок видит свой счет, который можно однозначно интерпретировать.

Игра должна давать игроку объективную, непредвзятую оценку его игры, это может быть экран поражения, экран победы или счет. Если у игры нет счета, как например в «Project Zomboid» — покажите одну из метрик вашей игры. В «Project Zomboid» показывается количество прожитых дней.

  • Что игрок должен делать, чтобы победить

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

  • Как будет проработано межсессионное взаимодействие

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

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


[1] Игра с непрямым управлением – игра в которой управление персонажами осуществляется не посредством обработки пользовательского ввода в непрерывных методах игрового цикла.