Как сделать свою первую игру. 7 главных советов

Содержание:

Как мы изменили пайплайн создания контента в PvP-шутере и забыли про кранчи

Огромное количество игр построено на сервисной поддержке, будь то тактический шутер Rainbow Six Siege или большая ролевая World of Warcraft. Игроков постоянно вовлекают ивентами, игровыми режимами, картами, персонажами или перками. Но когда в проекте уже сотни и тысячи единиц контента, а релизы ежемесячно — это может стать проблемой для разработчиков.

В какой-то момент мы тоже с этим столкнулись в мобильном PvP-шутере и пришлось искать решение. В итоге полностью пересмотрели пайплайн создания контента и оптимизировали процессы так, чтобы одна гугл-таблица заменила нам таск-трекеры. О нашем опыте на проекте со 170 млн инсталлов и 1 млн DAU подробно расскажу под катом.

Construct Classic

Construct Classic — небольшая программа, основной функцией которой является создание игр, 2d-анимационных роликов и мультфильмов. Данный конструктор создан по принципу WYSIWYG. Это значит, что вам не предстоит для создания собственного анимационного ролика подолгу сидеть за учебниками программирования. Все гораздо проще — добавили какой-то объект, включили для него анимацию и он начинает двигаться.

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

Основные возможности Construct Classic:

  • Система редактирования событий и реакции на них посредством drag-n-drop.
  • Возможность использования огромного количества плагинов.
  • Программа создана на python, но дорабатывать ее можно на C++.
  • Есть возможность подключать пиксельные шейдеры на HLSL.
  • К программе можно подключать готовые исходные коды игр и приложений в формате САР.

Изменения в последней версии

  • Физика: Исправлен баг версии r1, когда физические объекты созданные после старта, могли улететь за экран на высокой скорости.
  • Поведение: Исправлен баг. когда вы не могли спрыгнуть с платформы. Вызван исправлением бага «приземления в воздухе» в версии r1. Оба исправления теперь работают.
  • Установщик: Исправлена проблема с установкой в версии r1.

Как я сократил время загрузки GTA Online на 70%

Перевод

GTA Online. Многопользовательская игра, печально известная медленной загрузкой. Недавно я вернулся, чтобы завершить несколько ограблений — и был потрясён, что она загружается настолько же медленно, как и в день своего выпуска, 7 лет назад.
Пришло время докопаться до сути.

Разведка

Сначала я хотел проверить, вдруг кто-то уже решил проблему. Но нашёл только рассказы о великой сложности игры, из-за чего она так долго загружается, истории о том, что сетевая p2p-архитектура — мусор (хотя это не так), некоторые сложные способы загрузки в сюжетный режим, а потом в одиночную сессию, и ещё пару модов, чтобы скипнуть видео с логотипом R* во время загрузки. Ещё немного почитав форумы, я узнал, что можно сэкономить колоссальные 10-30 секунд, если использовать все эти способы вместе!

Концепция

Совет

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

Фишки. Что делает вашу идею крутой? Это самый главный вопрос. Как только вы сможете уловить и зафиксировать это, остальные этапы покажутся легче. Ваша игра поднимает острые темы? Станет новой классикой? Или будет отличаться от всего, что было раньше?

Механика. Что делает игрок и зачем? Это ваш игровой процесс. Он может быть простым, как поочерёдное нажатие клавиш Q, W, O, P в игре QWOP, или сложным, как комбинации в Dwarf Fortress.

Легенда. Благодаря чему игроки запомнят вашу игру? С какими эмоциями они будут её покидать? У каждой игры есть история. Если история неочевидна, игрок сам создаст её. История бывает разная: возрастание чисел в игре 2048, восхождение империй в Civilization или безмолвные взаимодействия в Monument Valley. Подумайте, какая легенда будет стоять за вашей игрой.

Настроение

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

  • Участвуйте в хакатонах. Вам и другим участникам нужно будет сделать игру за отведённое время. Как минимум вы вдохновитесь и встретите единомышленников. Попробуйте Ludum Dare, один из самых больших геймджемов.
  • Создайте список идей. Записывайте каждую новую мысль. В моменты ступора всегда можно заглянуть в список и найти что-то интересное. Так выглядит мой личный Google Doc идей и заметок.

Инструменты

Командная работа:

  • Google Диск.
  • GitHub. Требуется git и Unity .gitignore.
  • Unity Collab. Самый простой инструмент, но с ограничениями в бесплатной версии.

Я делаю игры на Unity. Дальше речь пойдёт о нём, но не бойтесь использовать другой движок.

Что делает геймдизайнер

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

Геймдизайнер конструирует базовую динамику игры, которая отвечает за общее ощущение от игры у пользователя. Базовая динамика основана в свою очередь на базовой игровой механике — способах взаимодействия объектов с игроком и игровым пространством. Например, главная игровая механика шахмат — это перемещение шахматных фигур по полю.

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

Обычно различают такие уровни геймдизайна:

  • игровой контент — это механики;
  • миры и нарратив — где играть;
  • интерфейсы — как играть;
  • контент — во что играть.

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

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

А ещё тут есть:

— аналитики;

— балансировщики;

— UX-дизайнеры;

— специалисты по онбордингу;

— левел-дизайнеры;

— прототипщики и R&D специалисты;

— специалисты по монетизации;

Ren’Py

Проекты на этом движке: Long Live the Queen, A Hate Story, Analogue.
Ren’Py

Плюсы Ren’Py:

  • Кроссплатформенный движок, который позволяет делать игры под любые устройства;
  • Удобен в использовании и наглядно показывает, что писать код во время разработки не так страшно, как кажется;
  • Лучшее решение для квестов и визуальных новел.

Минусы Ren’Py:

  • Есть ограничения в поддержке различных механик;
  • Ориентирован в первую очередь на 2D проекты, поэтому с 3D работать сложно;
  • Изначально был заточен под конкретные жанры, соответственно, какой-то шутер от первого лица или стратегию в реальном времени на нем сделать практически нереально.

Как мы «вырастили» и победили читеров в своем онлайн-шутере

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

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

Разработчик браузерных игр

Об онлайновых браузерных играх жители СНГ узнали, когда началось широкое распространение Интернета. Сегодня эта игровая отрасль продолжает жить и успешно развиваться. Единственные глобальные изменения касаются компании Adobe — флагмана разработки браузерных игр, которая объявила о прекращении поддержки Flash до конца 2020 года. Это популярная мультимедийная и программная платформа, благодаря которой разрабатываются веб-приложения, а в частности — браузерные игры. Таким образом. основной фокус будет окончательно смещен в сторону HTML5, JavaScript и вспомогательных графических технологий — WebGL, Canvas и т. д.

HTML5 (язык верстки веб-страниц) прекрасно взаимодействует с JavaScript (мультипарадигменный язык программирования) посредством элемента Canvas, который делает возможным добавление растровой 2D графики на веб-сайт. WebGL — кроссплатформенный графический API — главный инструмент создания 3D графики в браузере. Очень часто эти технологии используются не только для создания игр, но и для добавления крутой интерактивности сайтам, что справляет приятное впечатление на пользователей.

Для разработки серверной стороны браузерных игр необходимо знать РНР/Python либо любой другой язык, который хорошо подойдет под организацию закулисных взаимодействий — регистрация и авторизация пользователей, обработка пользовательских данных, ведение игровой статистики, хранение информации в базе данных, реализация многопользовательского режима и прочее.   

3D Rad

3D Rad — бесплатная программа для простого создания (без использования кода) различных ЗD-игр, интерактивных приложений и физических симуляций. Создание приложений в 3D Rad основывается на сочетании в различных комбинациях компонентов (объектов) и настройки взаимодействия между ними. Физика базируется на учете взаимодействия между объектами.

В 3D Rad есть функция импорта моделей в создаваемый проект, большое количество примеров и образцов трехмерных объектов, а также возможность добавления звуковых эффектов в формате WAV или OGG. Работы сделаны с помощью 3D Rad можно распространять в виде отдельных программ или веб-приложений.

Основные возможности 3D Rad:

  • Создание качественных ЗD-игр.
  • Реалистичная физика взаимодействия объектов.
  • Возможность импорта моделей.
  • Качественная обработка графики.
  • Возможность применения искусственного интеллекта.
  • Возможность использования мультиплеера.
  • Высококачественные аудиоэффекты и музыка
  • Возможность встраивания игр на веб-страницы.

Основные инструменты Gamefroot

После создания аккаунта вам доступна контрольная панель (Dashboard), где вы можете создать игру с чистого листа или оценить возможности платформы, выбрав Game Kits — готовые игровые наборы, либо Tutorial Games — учебные игры.

Например, выбираем Maia the Brave и попадаем в заготовку лесной бродилки с персонажем-девушкой. Выглядит неплохо, правда?

Возможностей графики хватает для создания приличных бродилок. В левой части экрана имеются различные объекты, которые можем добавлять в игру простым перетаскиванием. Имеются три раздела Media, Code и Levels — отвечающие за объекты, код игры и ее уровни — естественно, можно делать многоуровневую бродилку со сложной логикой и скриптами. Кроме того, имеется маркетплейс — страница, где можно приобретать (Premium) или скачивать бесплатно (Free) разнообразные наборы предметов для игры и тому подобное. Это очень облегчает создание игры. Собственных персонажей можно создавать при помощи кнопки Character Creator, постепенно «собирая» их.

В середине находится игровой экран, а также карта всего «царства» (уровня), масштаб которого можно менять кнопками — и +.

Справа расположено окно, в котором платформа предоставляет возможность работать со слоями (Layers), создавать достаточно сложную логику поведения объектов — это реализовано при нажатии на них правой кнопкой. Для удобства окно Layers можно перетащить в любое место экрана, если оно закрывает какую-то нужную в данный момент часть.

Посмотрим, как работает слой с главным персонажем. Для этого выберем строку «Player», и вокруг девушки возникнет синий прямоугольник. С помощью него ее можно менять в размерах, вращать, перемещать.

Далее мы видим слой Park objects, к которому относятся объекты парка — в данном случае это деревья. Их также можно двигать и модифицировать. Ниже находится слой Collectibles, самый вожделенный для любителей игр. В него можно добавлять те самые предметы, которые требуется собирать: монеты, шоколадки, одним словом, клад (gem). В левой части экрана есть выбор из 6 таких предметов. Они имеют статус pre-scripted asset — то есть предмет, имеющий заданное скриптом заранее поведение. 

Следующий слой Non-Player — это другие персонажи, не относящиеся к главному. Здесь это некоторые животные. Их тоже можно перетащить на основной экран и добавить в игру. Например, это Dr. Peck — птичка в стиле Angry Birds, расхаживающая туда-сюда. Выглядит это просто потрясающе, в лучших традициях бродилок. Что особенно приятно, процесс расхаживания птички можно редактировать в редакторе анимации Animation Editor, управляя ей покадрово. Для этого надо нажать на птичку правой кнопкой и выбрать Dr. Peck -> View Animation. А при контакте девушки с птичкой появляется сообщение, либо можно запрограммировать другую логику на ваш вкус. Также есть слои с водоемами (Water), дорожками (Paths) и насаждениями (Hedges). Их можно включать или отключать, по аналогии с Adobe Photoshop.

Слой Background отвечает за фон игры. Также важным моментом является добавление нового слоя. Это можно сделать, нажав плюсик справа от надписи Layers. На выбор будет два варианта: New Layer (добавление нового слоя) и New Tile Map (добавление сетки для выравнивания элементов). Последнее требуется для того, чтобы расположить элементы ровно по сетке.

Проверить, как работает игра в режиме предпросмотра можно, нажав кнопку Play. Разрешение игры меняется в разделе Game Settings. По умолчанию это 960×540. А общий размер игрового мира находится в разделе Levels, по умолчанию это 2800×2880, довольно масштабная бродилочка.

В разделе Scripts можно создавать обработчики событий по нажатию на клавишу и все в таком роде — полное управление событиями в игре. Слева цветами выделены разные категории — можно управлять звуком, физикой, анимацией, событиями, переменными и так далее. То есть назначать те или иные действия при запуске игры, достижении уровня и так далее. Например, задавать кнопки управления, скорость бега… Возможностей очень много, можно импортировать и экспортировать скрипты. Этот раздел наиболее сложный для освоения, но с помощью обучающих примеров можно разобраться. Для начала можно попрактиковаться на готовых примерах, в которых уже встроены скрипты.

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

С помощью Gamefroot можно встроить игру на собственный сайт, предоставляется embed-код. Получится вот такая игра (на третьем слайде нажмите Play):

Оплата труда

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

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

Карьера

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

Профессиональные знания

  1. Языки программирования.
  2. Обязательно знание английского языка.
  3. Умение рисовать от руки или с помощью специальных программ.
  4. Знание Unity и других игровых движков.
  5. Умение работать с 3D-редакторами, программами для 3D-моделирования и другими инструментами для разработки игрового ПО.
  1. Американ Макги.
  2. Уилл Райт.
  3. Хидэо Кодзима.

Как желание поиграть в шахматы превратилось в написание своего движка. История и реализация

Всем привет! Меня зовут Борис Николаев, сегодня я хотел бы поделиться с вами своими наработками по технической реализации простого шахматного движка на Kotlin.
Пару месяцев назад я посмотрел сериал «Ход королевы», и вполне ожидаемо, что сразу захотелось поиграть в шахматы. Прежде всего я установил несколько бесплатных и условно-бесплатных игр. Но в каждом варианте были какие-то недостатки и ограничения. Ну, а поскольку я программист, то довольно быстро «захотелось поиграть» превратилось в «реализовать свой шахматный движок» и алгоритм игры.
В принципе это две большие темы. Забегая вперед скажу, что при реализации большую часть времени я потратил именно на сам движок, который обеспечивает правила игры, а не на алгоритм игры компьютера.

Кто такой разработчик игр и что он делает?

Современные игры часто создаются на движках, которые содержат готовые решения и позволяют выпускать проекты для ПК, консолей, мобильных устройств. Примеры таких платформ: Unity, Unreal Engine, CryEngine, GameSalad, HeroEngine и множество других.

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

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

Для работы программистом игр необходимо не только знать движки, но и понимать физику процессов, математику, владеть разными технологиями. Например, Unity разработчикам необходимо знать язык C# (Си шарп). Поскольку в процессе разработки требуется писать код именно на нем. Также пригодится знание С++, Python, Java и JavaScript.

Преобразование графов для процедурной генерации уровней

Перевод

Я много занимался деконструкцией инди-игры 2017 года Unexplored Джориса Дорманса. Она идеально воплощает идею процедурно генерируемых подземелий в стиле Zelda, и я обязан был выяснить, как происходит эта магия. К счастью, основная часть логики генерации написана на специализированном языке PhantomGrammar, поэтому с помощью разработчиков я получил достаточно полное представление о том, как она работает.
Заложенные в Unexplored идеи настолько интересны, что, по моему мнению, заслуживают отдельной статьи. В основе игры лежит концепция преобразования графов, она хорошо изучена с научной точки зрения, но редко используется в играх. Эту статью я целиком посвящу данной технике, а в следующей расскажу о том, как её использует и расширяет PhantomGrammar. Далее я объясню, как эти методики используются в Unexplored для создания столь сложных уровней.

Обучение на разработчика игр

Если студент желает после завершения учебы заниматься разработкой игр, то он изначально должен освоить либо профессию программиста, либо специальность геймдизайнера. Специальности «разработчик игр» в вузах СНГ нет, но после получения высшего образования можно пройти дополнительный обучающий курс в частной IT-академии.

Курсы

Онлайн-курсы GeekBrains

Всего за 4 месяца люди без дополнительной подготовки могут освоить профессию «разработчик игр», занимаясь практической работой. Курс состоит из многоуровневой программы, поэтому студенты находят работу еще на стадии обучения. После завершения курса в руках у студента остается портфолио, отличное резюме, опыт работы и сертификат!

Перенос Quake 3 на Rust

Перевод

Наша команда Immunant любит Rust и активно работает над C2Rust — фреймворком миграции, берущим на себя всю рутину миграции на Rust. Мы стремимся автоматически вносить в преобразованный код на Rust улучшения безопасности и помогать программисту делать это самому, когда не справляется фреймворк. Однако в первую очередь нам нужно создать надёжный транслятор, позволяющий пользователям приступить к работе с Rust. Тестирование на мелких CLI-программах потихоньку устаревает, поэтому мы решили перенести на Rust игру Quake 3. Спустя пару дней мы, скорее всего, стали первыми, кому удалось сыграть в Quake3 на Rust!

Подготовка: исходники Quake 3

Изучив исходный код оригинального Quake 3 и различных форков, мы остановились на ioquake3. Это созданный сообществом форк Quake 3, который до сих пор поддерживается и собирается на современных платформах.

Анти-Factorio

Приветствую, хабровчане! Эх, чувствую, заминусуют меня сейчас некоторые добрые люди… Однако как говорится, истина дороже, а риск дело благородное. Поэтому рискну. Начну с того, что я ни разу не геймер, мне кодить интереснее (а ещё интереснее разбираться во всяких хитромудрых железяках). Изредка играл в Цезаря, до того в Цивилизацию. Но после прочтения вот этой статьи захотелось посмотреть, что же это за штука такая Factorio. И что-то основательно на неё залип, уже неделю отлипнуть не могу. Игра действительно очень качественная, мне угодить очень трудно. Но совершенно добил ютуб-канал одного доброго человека, где несчастных кусак и плевак жгут огнемётами в промышленных количествах и разносят в щепки гранатами деревья! Куда смотрит Гринпис! Где защитники прав насекомых ! Или они пока не добрались до других планет? И поскольку экологического звездолёта с Земли можно ждать ещё долго, придётся кусакам с плеваками самим позаботиться о защите себя и родной планеты.

Как мы «вырастили» и победили читеров в своем онлайн-шутере

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

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

Unreal Engine 4

Проекты на этом движке: , , Daylight, .
Unreal Engine 4UE 4

Оказывается, Unreal Engine 4 может быть невероятно фотореалистичным, а не только мультяшным

Профессиональные разработчики поделились скриншотами локаций на движке Unreal Engine 4, которые доказывают, что на нем можно не только мультяшные…

UE 4

Плюсы UE 4:

  • Есть огромное количество инструментов, чтобы создавать любые игры;
  • Удобный интерфейс, в котором разберется даже новичок в игрострое;
  • Разработчики сделали отличную документацию и даже выпустили обучающие видеокурсы для пользователей.
  • Высокий порог вхождения, до UE 4 лучше попрактиковаться на более простых движках и начать изучать программирование;
  • Если проект выстрелит, то вам придется платить создателям движка пожизненно;
  • Не самые удобные инструменты для 2D проектов, и именно с ними здесь часто возникают проблемы во время разработки.

Заключение

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

Чем дольше идет разработка, тем печальнее становится ситуация

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

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

Научиться работать с этим инструментом вы можете, записавшись на наш курс «Профессия Разработчик игр на Unity».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector