Как создаются игры на пк. Как создают игры на компьютер? Программы для игр на компьютер

С каждым днем игры становятся все сложнее и навороченнее. Ежегодно в Steam они публикуются тысячами. Они распределяются по разным платформам и категориям. Аудитория игроков стремительно растет. Число разработчиков так же стремительно увеличивается. Быть инди, а точнее соло-разработчиком игр стало тяжело. Но романтика независимости заставляет снова и снова начинать разработку инди-игры. В статье мы поговорим, как выжить на этом пути и как разрабатывать классные игры в жестких условиях конкуренции.

Хотя появляются новые технологии для создания игр, с каждым годом их разработка становится все сложнее и сложнее. Есть тройка топовых движков: Unity, Unreal Engine 4, CryEngine 5. О них постоянно говорят, и их используют для разработки самых разных проектов самые разные разработчики. Тем не менее сложность этих инструментов перевалила мыслимый рубеж. Они огромны, их функциональность достигла вселенских масштабов. Все эти возможности могут быть использованы большими студиями, но для соло-разработчика это избыточный стафф, он ему не нужен, поскольку для его реализации нужны дополнительные ресурсы, которых у инди и так нет (для разработки игры мечты он свой дом заложил). И если это не AAA-игра, то реализация этих фич бесполезна.

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

Альтернативные движки

Я понимаю, что в настоящее время существуют инди-игры всех жанров на любой вкус (и это на самом деле хорошо), но мы под инди-играми в данном контексте подразумеваем маленькие, двумерные, ориентированные на мобильные устройства, созданные соло-разработчиком творения (которых преобладающее большинство), поэтому использовать Unity, UE4 для создания прототипов будет неоправданно сложно. Существует широкий выбор альтернативных движков, они проще в использовании и позволяют достигать впечатляющих результатов за меньший срок, минус спецэффекты, которые инди бы все равно не стал помещать в свою игру. Порой для создания полноценной игры под все платформы эти движки не требуют написания кода. Особенно меня продвинуло на тему альтернативных движков после участия в московской конференции разработчиков видеоигр White Nights 2017, прошедшей в октябре. Я подходил к инди-разработчикам, демонстрирующим свои проекты, и расспрашивал об используемом инструментарии. Во многих случаях они называли вовсе не Unity, а Construct 2 или GameMaker Studio .

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

Как самому создать игру. Construct 2 с открытым проектом

GameMaker Studio представляет собой популярный конструктор игр с двумя возможностями построения игры (подобно UE4): первая - методом drag and drop, вторая - писать код на собственном языке системы. В зависимости от целевой платформы игры, созданные с помощью GameMaker Studio, визуализируются с помощью OpenGL или DirectX с использованием соответствующих шейдерных технологий. Для обработки физики есть поддержка движка Box2D. Поддерживается широкий ряд устройств ввода. Десктопная версия в Steam стоит 1599 рублей, экспортеры для других платформ надо докупать: так, экспортер для web стоит 2579 рублей, для UWP - 6396 и столько же для мобильных систем.


Как создать игру самому. GameMaker Studio

Третий заслуживающий внимания альтернативный движок - AppGameKit . В отличие от двух предыдущих, разрабатывая с его помощью игры, надо писать код на скриптовом языке. Во многом благодаря этому он меня заинтересовал больше остальных. Стоимость этого движка в Steam составляет 2059 рублей, включая экспортеры под все поддерживаемые платформы. Хорошее вложение. За более подробным описанием архитектурной составляющей движка отсылаю тебя к упомянутой статье.

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

Где взять арт и прочий стафф?

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

Разработка игры с помощью AGK

Мой выбор пал на AGK по трем причинам:

  • разработка игр основывается на написании кода двух уровней (Tier 1, 2); мне, как программисту, легче освоиться в новом API, нежели в новом интерфейсе редактора;
  • цена демократична;
  • купил я этот движок еще два года назад, все обновления приходят сразу же, как появляются.

Дополнительные фишки: AGK поддерживает множество типов контроллеров, так, кроме геймпадов, он поддерживает контроллер бесконтактного управления Leap Motion. Плюс в AGK включена поддержка VR.

Visual Editor

После запуска AGK мы видим только редактор кода без каких-либо визуальных средств, которыми богаты другие движки. Однако в августе компания The Games Creator выпустила приложение, своего рода аддон для AGK - тулзу Visual Editor. Он покупается отдельно (стоит 899 рублей). Этот редактор позволяет визуально настраивать наполнение сцены и уровня твоей игры, импортировать изображения и 3D-модели, помещать их в сцену как игровые объекты, настраивать положение, размер, угол поворота, цвет и другие свойства с помощью инспектора объектов. Как выглядят сцены на устройствах с экраном разного расширения, можно увидеть, прямо не выходя из редактора. В конце концов, сцену можно сохранить и подключить к AGK. Тот спокойно выполнит код, как будто этот файл создан здесь же. Visual Editor дает возможность строить игры методом drag & drop (не полностью, но частично), подобно другим конструкторам, рассмотренным выше. Но, признаться, это не наш выбор.

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


Как создать игру. Visual Editor

Классические танки

Движок AGK одинаково хорошо подходит для создания 2D- и 3D-игр. Мы остановимся на 2D по понятным причинам: популярность на мобильных - целевых платформах - одна из них.

Мы испробуем AGK на танках, попробуем воссоздать «классические танки» с игровой консоли NES от 1985 года с новой графикой. Кто не в теме, та игра называется Battle City, во многом именно она послужила прототипом для современных игр про танковые войны (World of Tanks, «Танки Онлайн»). Поэтому наш мир также будет двумерным с обзором сверху.

Основы AGK

Разработку мы будем вести на ярусе №1 (Tier 1) - скриптовом языке, похожем на модернизированный для нужд игродела BASIC. Первое, что необходимо помнить о BASIC, - это то, что в конце инструкции не надо ставить точку с запятой. Расслабься и получай удовольствие: никаких указателей и низкоуровневых приблуд, классов тоже нет. Их роли выполняют структуры. Можно создать экземпляр структуры, который закрепляется за числовой константой. В будущем для обращения к этому экземпляру используется закрепленное за ним число. При выполнении функции, чтобы указать, над каким объектом производится операция, надо передать соответствующее число в первом параметре. По сути, в AGK имеется только три типа данных: integer, real, string. По большому счету это все, что необходимо знать перед началом кодирования игр на AGK.

Приступаем к кодированию

Мы не будем использовать Visual Editor, напишем весь код самостоятельно (см. пример в материалах к статье). Я не буду приводить в статье листинги игры, поскольку ты всегда можешь их найти в материалах. Я лишь напишу краткие инструкции по выполняемому коду.
Создадим в AGK новый проект и начнем кодировать. Сначала инициализируем окно вывода: зададим заголовок окна, установим его размер, укажем способность менять размер. Затем установим разрешение, возможную ориентацию устройства, частоту перерисовки, зададим использование всей области экрана, последним действием инициализации включим использование продвинутых векторных шрифтов вместо растровых. Этот код входит в шаблон проекта. Ниже находится основной цикл игры: do … loop. В нем выводится FPS и происходит перерисовка экрана.

После инициализации игры определяется тип данных для танка, неважно, вражеский он или наш, все поля одинаковые. Объявление типа начинается с ключевого слова Type, за ним следует идентификатор типа, в нашем случае TTank. В первую очередь каждому танку нужны координаты. В AGK объявление происходит таким образом: x as float. Заметь, на конце точка с запятой не ставится. Второй способ объявления переменных - это просто описать их. Например, переменную типа Integer можно объявить так:

x = 4 , real : x # = 4.4, string: x$ = "four"

То есть добавляется символ после идентификатора. У типа string для задания строки равноценно можно использовать одинарные или двойные кавычки, главное, чтобы закрывающая была парной для открывающей. Далее задаем идентификаторы для спрайта, для коллизии, для флага определения, чьей стороне принадлежит танк: игрока или ИИ. Скорость, частота стрельбы, количество жизней, флаг поверженности, таймер, измеряющий количество секунд, когда танк стал поверженным, флаг, устанавливающийся, когда танк достиг препятствия (нужен для ИИ), в поворотах танка участвуют две переменные: флаг, устанавливаемый в начале поворота, и номер стороны поворота (нужны для ИИ). Заканчивается определение типа ключевым словом EndType.

Затем объявим тип для объекта снаряда. Ему нужны: координаты местоположения, координаты места назначения, идентификатор для спрайта, флаг активности, флаг принадлежности и скорость.

Создадим два массива: один - для танков, второй - для снарядов. Примерно так: Dim tanks as player. Аналогично и со вторым.

Теперь нам надо загрузить текстуры. Это делается с помощью функции LoadImage, первым параметром передается номер, за которым будет закреплено изображения, а вторым - путь и имя файла. Все игровые ресурсы загружаются из подпапки media папки с игрой. Папка media создается при первой удачной компиляции. Таким же образом загружаем изображение снаряда. В цикле создадим все снаряды. Описание цикла начинается с For makebullets = 1 to 20, а заканчивается инкрементом циклической переменной: Next makebullets. В теле цикла происходит создание спрайта (CreateSprite с параметрами: идентификатор спрайта, номер натягиваемой на спрайт текстуры), установка его позиции (SetSpritePosition), установка слоя глубины (SetSpriteDepth), смещение начала координат для спрайта (SetSpriteOffset).

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

Для игры нам надо загрузить два звука: выстрел и попадание. Это выполняется функцией LoadSound, она принимает цифровой идентификатор и имя файла. На десктопе AGK может работать с тремя форматами аудио: WAV, MP3, Ogg, а на мобильных с двумя, исключая MP3, из-за того, что этот формат не свободный. Создаем несколько глобальных переменных: текущее время, номер текущего уровня. Вызываем функцию для создания уровня. Весь код находится в глобальном пространстве и будет выполнен при запуске игры.

Далее мы погружаемся в центральный цикл нашей игры, тело которого выполняется 30 раз в секунду (зависит от частоты смены кадров, на PC может быть 60). Здесь первым делом нам надо получить количество миллисекунд (GetMilliseconds), прошедших с момента запуска игры. Затем запускаем цикл по всем игровым объектам - танкам. Если танк не вращается, он не подбит и им можно управлять (для этого вызываем функцию controlplayer), с другой стороны, увеличиваем его угол поворота. Поворачиваем определенный танк в направлении вектора его движения. Если танк вращается более двух секунд и у него закончились жизни, сбрасываем его состояние (resetplayers). Далее обновляются позиции всех снарядов в функции movefire и идет проверка на подрыв любого танка - в tankhit. Она возвращает номер подбитого танка, который начинает вращаться вокруг своей оси, вдобавок проигрывается звук попадания снаряда. Последней вызывается функция обновления экрана.

В остальном коде программы описаны используемые функции. Они представляют самую интересную часть - «живые» алгоритмы поведения игры.

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

#constant KEY_LEFT 37

#constant KEY_UP 38

#constant KEY_RIGHT 39

#constant KEY_SPACE 32

Когда игрок нажимает клавишу «Вверх», переменная Forward принимает значение 1, когда «Вправо» - переменная turn принимает 1, «Влево» - она же -1. При нажатии пробела, если танк не вращается, происходит выстрел (вызов функции makefire с передачей номера танка), с учетом того, что танк может выстрелить с интервалом в 500 миллисекунд.

Далее займемся управлением танками ИИ. Если танк противника находится на обозримом расстоянии, наш незамысловатый ИИ просто преследует танк игрока. Приближаясь к цели, он стреляет. Поэтому первым делом надо найти угол между танками. Это выполняется с помощью функции FindAngle. Ей передаются координаты первого и второго объектов. Если второй танк ниже первого, тогда переменная turn принимает значение -2, если выше, то 2. Следующим действием находим разность углов. Потом надо узнать расстояние между танками. Если оно больше 100 виртуальных пикселей, тогда вражеский танк движется к цели. К слову, в AGK измерения ведутся в виртуальных единицах; если после запуска игры их оставить по умолчанию, размер игрового поля составит 100 на 100. Размер можно произвольно менять, в этом случае он будет влиять только на расположение и размер объектов. Вражеский танк ведет стрельбу при следующих условиях: выстрел раз в две секунды, относительный угол между танками меньше 20 градусов, дистанция меньше 500 единиц. Кроме того, в этой функции надо запретить танку выезд за границы игровой области.

Последняя проверка, помещенная в эту функцию, - это столкновение с препятствиями. В цикле перебираем все препятствия, проверяем, чтобы они были активны, и тогда смотрим, была ли с танком коллизия. Если эти условия выполняются, пытаемся найти лучший путь для обхода препятствия. Когда в столкновении с препятствием участвует танк юзера, просто отключаем тягу вперед. При движении или повороте танка, управляемого ИИ, прибавляем значение переменной turn к текущему углу поворота. Поворот танка: положение по X вычисляем, прибавляя к текущей координате X синус угла поворота, умноженного на 32, положение по Y находим через вычитание из текущей Y косинуса угла поворота танка, также умноженного на 32. То есть, когда мы применяем косинус или синус к углу, поворот выполняется в начале координат, и, чтобы сместить его в заданном направление, надо произвести умножение. С помощью функции SetSpritePositionByOffset производим позиционирование танка. Последнее действие выполняется только во время движения: в нем происходит инкремент координат X и Y на синус
и минус косинус угла поворота, умноженного на скорость танка.

Также функция resetPlayers останавливает и делает неактивными все снаряды, выпущенные танками, сбрасывает параметры танков к начальным значениям.

Затем в функции makefire происходит активация, позиционирование, задание вектора движения и скорости снаряда. В начале выполнения игры мы создали 20 снарядов и спрятали их за пределы экрана, сделав их неактивными, чтобы в нужный момент не тратить время на создание и инициализацию снаряда, а, спозиционировав его, сразу запустить. Поэтому в рассматриваемой функции в цикле от 1 до 20 мы проверяем наличие неактивного свободного снаряда. Найденный, он становится активным, в качестве родителя ему присваивается номер выстрелившего танка, снаряд поворачивается так же, как материнский танк, назначается соответствующая танку позиция. С помощью операций с синусом и косинусом ему назначается вектор полета, затем в функции settankfiredest, прибегая к тонкому математическому выражению, мы вычисляем точку приземления снаряда.

В цикле функции moveFire перебираем все снаряды и для тех из них, которые активны, инкрементируем положение в соответствии с вектором и скоростью. Если снаряд выходит за границы игровой области, просто делаем его неактивным, другими словами - помещаем в список готовых к использованию.

Функция checkHit проверяет попадание снаряда в любой танк. Внешний цикл перебирает танки, внутренний - снаряды. Первым делом внутри проверяются возможные столкновения снаряда с ячейкой пола, всего их 192, а их нумерация начинается с 200. Если произошло столкновение с ячейкой пола (ракета достигла своего пункта назначения), дальнейшие проверки выполнять не надо, делаем снаряд неактивным. Следующая проверка смотрит, чтобы выпущенная ракета не принадлежала выстрелившему ею танку. Если она проходит, мы делаем проверку столкновения снаряда с вражеским танком. Если столкновение зафиксировано, уменьшаем количество жизней у подбитого танка, останавливаем ракету, помещаем ее в список доступных для очередного выстрела. Данная функция возвращает номер подбитого танка.

Функция makeLevel, судя по названию, формирует карту уровня. Сначала двойным циклом проходим по всем 192 «кирпичам», делая их невидимыми и неактивными. Далее делаем видимыми только некоторые препятствия.

Оставшиеся три функции носят вспомогательный характер. Функция wrapAngle на основе полученного значения угла возвращает эквивалентное ему значение, не выходящее из диапазона 0–360. GetDistance получает четыре параметра - координаты двух точек и возвращает извлеченный корень из выражения, вычисленного по теореме Пифагора; таким образом, функция возвращает расстояние между двумя точками. И наконец, findAngle, получая координаты двух точек, возвращает разность между двумя углами.

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

Подготовка билда и распространение

Тестирование на мобильных девайсах

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

Разрабатывая игры с помощью AGK, их можно не только мгновенно тестировать на десктопе, но и точно так же, не заморачиваясь с установкой SDK и подготовкой билда, тестировать на мобильном устройстве. Для этого надо скачать и установить на свой девайс утилиту AGK Player .


Как создать игру. AGK Player

Я тестировал на планшете с ОС Android, однако имеется равнозначная версия плеера для iOS. Когда утилита будет установлена, надо подключить девайс к компу (через USB-кабель или по Wi-Fi), запустить AGK Player, а на десктопе в IDE AGK нажать пиктограмму Broadcast. AGK подключится к устройству, передаст данные, а в плеере запустится твоя игра.

Экспорт билда

Когда игра будет протестирована и отлажена, для ее публикации в сторе надо создать билд. Для этого с помощью команды меню File → Export Project «Tanki» → As Android Apk откроем окно Export Android APK, в котором предлагается задать свойства создаваемого пакета.


Как самому создать игру. Export Android APK

В области APK Settings, в ниспадающем списке APK Type предлагается выбрать целевую платформу: Google, Amazon, Ouya. App Name - имя приложения в операционной системе, Package Name - имя пакета, к примеру com.yazevsoft.Tanki. App Icon - иконка для приложения, Notification Icon - иконка уведомления, Oaya Large Icon - иконка в версии Android для игровой консоли Oaya. Ниже задается ориентация и минимально поддерживаемая версия Android. В области Permission задаются разрешения - доступ к компонентам системы, на которой будет выполняться наша игра: запись на внешние носители, доступ к камере, запись аудио, вибрация и прочее. Область Game Google Services/GameCircle Integration позволяет задать идентификатор для использования сервисов Google. В области Output задается путь, по которому будет сохранен итоговый пакет. Область Signing позволяет настроить свойства для подписания пакета для размещения его в сторах: задать версию, файл подписи.

Альтернативные сторы

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

Обрати внимание на альтернативные сторы: Amazon AppStore, Opera Mobile Store, Яндекс.Стор и многие другие. На них меньше пользователей, меньше трафика, вместе с тем меньше конкуренции. Я не призываю ограничиваться тремя перечисленными, смотри шире. Лидирует платформа Android, между тем, кроме Apple AppStore, есть площадки для распространения iOS-приложений.

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

Заключение

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

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

С чего начать разработку своей игры? Как ни странно, но самым первым и очевидным пунктом здесь будет: оставьте эту затею.

Серьезно. Если вы только-только планируете свой путь в игровой индустрии, у вас горят глаза, и вы точно уверены, что знаете как сделать своего « », или - не начинайте.

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


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

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


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

Допустим, что вы адекватно оценили силы своей команды, написали концепт, провели исследование рынка и сделали простой, но играбельный прототип. Что дальше?


Выставки, тусовки и шоукейсы. Показывайте. Смотрите. Получайте обратную связь. Даже если отбросить относительно большие ивенты вроде Devgamm и White Nights, где сейчас очень любят инди и охотно дают им места под демонстрации, есть огромное количество мелких инди-ивентов.

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

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

Если хотите лично посетить новые открытые лекции по игровой индустрии и узнать об этом чуть больше, то в марте можно сходить сразу на несколько бесплатных открытых мероприятий в ВШБИ, вход на которые осуществляется просто по регистрации:

  • 01 марта: Особенности локализации игр отечественных разработчиков на другие страны
  • 02 марта: День открытых дверей программы «Менеджмент игровых проектов»
  • 15 марта: Управление командой в игровой индустрии
  • 22 марта: Игровая графика: базовые принципы и инструменты
Как разработать RPG-игру за неделю с нуля и без бюджета. Часть I.

RPG за неделю? С нуля? Это вообще возможно?
Я рискнул, и я сделал это.

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

Tom Bampton, автор ежемесячных обзоров игр в номинации «Игра на день» (www.gameinaday.com), сказал: "Дерзай!" Затем он добавил дополнительное условие - я должен сделать это, не используя существующие игровые движки. Мне можно использовать только основные библиотеки / API.

Сначала я отказался от этой идеи. У меня не было лишнего времени, чтобы на неделю отстранится от разработки текущего игрового проекта на работе. Но потом я подумал: да черт с ним, ведь что такое неделя? В типичной компании, например в Е.А., рабочая неделя составляет 40 часов. Так почему бы не сделать игру не за календарную неделю, а за 40 чистых часов? Это уже реальнее, - но я не хотел создавать очередной тетрис или арканоид. А как насчет ролевой игры - одного из самых сложных игровых жанров? Это возможно?

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

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

Так вот, как я создал игру в течение одной недели с нуля, и без бюджета. Если вам лень читать, и вы хотите побыстрее заглянуть в конец повествования, чтобы узнать, как выглядит конечный продукт, посмотреть все его баги, вы можете скачать версию игры для Windows здесь: http://www.rampantgames.com/hackenslash.html

ПЛАНИРОВАНИЕ
Цель
Создать олдскульную RPG в стиле старых игр начала 80-х, с видом "сверху вниз", например как The Temple of Apshai, Ultima III, и Telengard. Игрок будет двигаться через комнаты в типичном подземелье, сражаясь с различными монстрами с помощью «меча и магии». Постепенно он будет совершенствовать свои возможности получая опыт, повышая уровень, приобретая магическое снаряжение.

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

Правила разработки

Правило № 1: Время разработки ограничено одной неделей (включающей 40 часов)
На разработку игры должно быть потрачено в сумме не более 40 часов. Они будут включать время, потраченное на непосредственную работу над игрой и на ее обдумывание. Перерывы в разработке больше, чем десять минут, не будут учитываться. Это будет "идеальная" рабочая неделя из 40 высокопроизводительных часов.

За 40 часов будет сделана полнофункциональная альфа-версия. Дальнейшее допиливание, такое как окончательная отладка игры, создание инсталятора для распространения в общее время учитываться не будут, никакой новый функционал на этом этапе добавлен не будет. Документирование процесса разработки также не учитывается.

Правило № 2: Использовать только бесплатные инструменты
За исключением программного обеспечения, которое поставляется с установкой Windows, используется только свободный софт, по возможности с открытым исходным кодом. Смысл этого - показать, что не нужны дорогие (или пусть даже дешевые) инструменты для разработки игры. На оборудование, такое как сканер, микрофон и цифровая фотокамера, данное правило не действует - если у вас их нет, будем считать, что их можно у кого-то одолжить.

Правило № 3: Нет движкам, только стандартные библиотеки / API
Игра должна быть создана "с нуля" без использования существующих игровых движков. Никакого обмана, и создания игры или каких-то ее частей с помощью конструкторов игр или использования подобного программного обеспечения.

Инструменты
Код:

Python 2,3 (http://www.python.org/)
PythonWin
PyGame (http://www.pygame.org/)
Py2exe – чтобы собрать что получится в исполняемый файл для распространения. (http://starship.python.net/crew/theller/py2exe/)

Gimp 2,0 (http://gimp-win.sourceforge.net/)
MS Paint (тот что идет с Windows) - для вставки скриншотов, захваченных клавишей PrintScreen (GIMP почему-то отказался это делать)
Бесплатные текстуры были взяты (http://www.textureartist.net/textures/index.htm) и (http://www.mayang.com/textures/)

Audacity (http://audacity.sourceforge.net/) плюс мой микрофон или бесплатные.

Расписание (План) работ
Расписания составляют, чтобы их потом нарушать, но все же они нужны, чтобы контролировать прогресс и строки, и вносить коррективы по мере необходимости.

Час 1-10: Базовая архитектура
Проектирование движка и основных компонентов. Получить отображения мира на экране. Я должен реализовать возможность перемещать тестового игрока по всему миру, и смотреть на вещи, а затем превратить то, что получится, в игровой редактор.

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

Час 21-30: Оживление мира
Добавить искусственный интеллект, игровые события, ловушки, спецэффекты. К концу этого периода я должен иметь достаточно полное техно-демо, включающее все основные особенности игры.

Час 31-40: Добавление контента и правил
Получить из техно-демки полноценную игру. Добавить все дополнительное содержимое. Добиться завершенности и баланса игровой механики. Отшлифовать все, на что хватит времени, добавить спецэффекты, анимацию и т.д.

После 40 часов: Тестирование и релиз игры
Протестировать, и устранить найденные ошибки (не добавляя новые возможности!) Собрать все в кучу, и выложить в интернете. Завершить документацию.

Дневник разработчика Hackenslash: Игра за неделю

Час 1 – Дикое проектирование и базовые классы
Этот час был проведен за созданием некоторых базовых классов для игры - и использования их в дальнейшем проектировании. Мир будет представлен в виде последовательности комнат, соединенных порталом. Все в мире базируется на комнатах, подобно тому, как это было в старых адвенчурах или MUDах. Большинство объектов в игре представлены как " GameObject ", который имеет позицию и содержимое (в том числе может содержать и другие объекты - карта может содержать комнаты, в комнате может быть сундук, в сундуке - меч... и, я думаю, меч может содержать несколько комнат, но мы так делать не будем.)

Я создаю объекты creature (существо) и player (Игрок)
Я генерирую набор атрибутов для существ, и внедряю их в класс. Видимо я задрот, который играет слишком много в РПГ игры. Я пока еще не знаю точно, как будет выглядеть и работать игровая механика.
Я делаю объект room (комната), наследуемый от GameObject. У комнаты есть ширина, высота, и стены - и на текущий момент больше ничего.

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

Час 2 - PyGame 101
Цель этого часа - инициализация PyGame, ну и начать хоть что-нибудь рисовать на экране. На самом деле, я провожу большую часть времени за чтением документации PyGame, пытаясь выяснить что там и как, поскольку у меня почти нет опыта использования PyGame или SDL.

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

Час 3 - Если бы стены имели уши, я б их сильно отругал.
Цель этой часа – обозначить контуры комнаты стенами, и отобразить это на все еще черном экране. Чтобы сделать это, мне нужна комната, и мне нужна графика. Приходится много сидеть над GIMPом, правя загруженные из интернета текстуры, так чтобы они превратились в подходящие тайлы. Я создаю класс менеджера текстур. И я заполняю структуру образца комнаты. Я также потратил немного больше времени, просматривая документацию PyGame, чтобы найти что-нибудь еще, что можно использовать, дабы сделать работу легче.

Час прошел. А у меня все тот же черный экран. Стен как не было, так и нет.

Часа 4 – В гостинице появился свободный номер
После борьбы с некоторыми синтаксическими ошибками, я, наконец-то смог добиться появления стен на экране. Правда отображаются они неправильно, находятся не в указанном месте, да еще и со щелями между сегментами. Это ужасно. Но немного настройки и правки, и я получил на экране что-то похожее на комнату, размером 10 на 10 квадратов.

Не имея подробного плана проекта, действительно довольно легко запутаться, когда выполнив определенную работу Вы задаетесь вопросом "Что дальше?" Я решил, что если рисунок одной комнаты хорошо, то нарисовать две – вдвойне лучше.

Для хранения созданных комнат я создал файл "minidungeon".
Я начать добавлять логику порталов "portals" - отверстий в стенах, для перехода в другие комнаты (и предоставляющих всю информацию о смещении, необходимую для правильного отображения смежных комнат).

Час 5 - Hackenslash получает больше комнат

Я изменил название окна на "Hackenslash!". Просто потому, что это круто.
Я создал карту объектов для хранения комнат, и класс MapMaster содержащий несколько карт.
Я добавил вторую комнату и подключил к первой через портал.
Соседние комнаты подключены к текущей через порталы, и теперь отображаются на экране.
Я исправил некоторые ошибки отсечения, чтобы правильно отображались стены, частично выходящие за пределы окна.

Час 6 - за который мы улучшаем скил рисования

Добавил класс дверей, а также настроил карты для размещения двери (дверь должна быть общей для двух комнат). (Правка: Жаль, что я никогда это так и не использовал!)
Я создал еще 3 тайла стен, объединил их в одно изображение.
Графический вид стен изменяется в зависимости от типа.
Я делаю простую графику для вида сверху вниз.

Часы 7-8 – Вращения и восклицания!

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

Часы 9-11 – Елементы - бррр!

И вот опять, мне нужно решить вопрос "Что дальше?".

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

Я решил, что элементы могут занимать больше, чем один тайл, и могут быть повернуты на любой градус. (Правка: В ретроспективе, очень тупое решение - я провел слишком много времени на его реализацию, но оно оказалось почти бесполезным.)

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

Часы 12 - 13 - Нам нужен Лут!

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

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

Час 14 - Ковры

Я сильно отстаю от графика, что же мне делать?
Черный фон кажется слишком уродливым, поэтому я замостил полы внутри комнаты коврами - отдельными тайлами.

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

Зато уровень теперь выглядит круто. Ну, по крайней мере круче, чем черный.

Часы 15-16 - Click! Click!

Я занялся управлением мышью и обработкой событий.
Добавил управление персонажем мышью. Движение пока происходит рывками, нет плавной прокрутки уровня.
Игрок может выйти за пределы комнаты, отсутствует проверка столкновений.
Я исправил несколько ошибок.
Помучил GIMP и создал красивые лестницы.
.
На разработку уже затрачено почти 17 часов, так что я начинаю немного нервничать. Я прошел 2/5 пути создания игры, - закончился второй "рабочий день" разработки. То, что у меня уже сделано впечатляет, но я понимаю, что сделать осталось много больше. У меня есть еще четыре часа, чтобы закончить основные возможности игрока, и вложится в график. Это будет трудно... но я все равно не жалею, что потратил лишнее время на рисование графики!

Час 17 – Плавно перемещаемся, пока не стукнемся лбом о стену

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

Час 18 - Переступаем пороги

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

Час 19 - Лестница в небо, Адское меню

Мой брат вызвался сделать музыку для игры. Он сделал музыку для Void War, и получилось довольно хорошо. Это напомнило мне, что нужно сделать воспроизведение звука (и музыки). Вроде бы в PyGame это сделать довольно просто, поэтому оно не должно занять слишком много времени. (Правка:. Я так и не нашел для этого времени, к сожалению в Hackenslash вы не услышите ни единого звука.)

Моя следующая цель состоит в обработке взаимодействия с существами и предметами. Мне очень нравится, как это сделано в The Sims и Neverwinter Nights, когда вы хотите взаимодействовать с игровым объектом, появляется контекстное меню. Я планирую реализовать что-то похожее.

Учу лестницы перемещать игрока в новую комнату.
Я немного проштудировал Интернет и документацию PyGame, ища, нет ли где открытых исходных кодов подобного меню на PyGame. И не нашел ничего.
Я начал делать собственное меню.

Часы 20 - 21 - Что там с меню?

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

Час 22 – Заснуть в процессе

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

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

Час 23 - Боевые параметры!

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

Час 24 - Меню игрока

Я завершил оптимизации для окна параметров.
Создал всплывающее меню, которое появляется, когда игрок кликнет на персонажа.
Я создал быстрое меню для использования зелий, кастования заклинаний и т. д.
Я исправил некоторые ошибки в работе меню.

Час 25 – До(раз)пиливаю полы и стены

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

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

Отлаживая код, я обнаружил еще несколько ошибок, связанных с переходом между комнатами.

ПЕРЕРЫВ - Кризис!

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

Выйти за пределы лимита времени мне нельзя. Также нельзя привлечь помощника или купить код/ресурсы, поскольку предусмотрено, что игру за 40 часов сделаю я один. Нужно придумать, как работать еще более эффективно – но я и так уже вкалываю на максимуме производительности. Похоже, у меня нет другого выбора, придется пересмотреть функционал, и решить, какие возможности выбросить из игры.

Двери: Вырезано! Я очень хочу сделать двери в игре. Жалко расставаться с этой функцией - тем более, что я уже некоторое время работал на ней. Но остается еще слишком много работ, например искусственный интеллект. И, наверное, понадобится 2-3 часа, чтобы заставить их работать, а их у меня нет.
Инвентарь: упростить! Забудьте о дополнительном инвентаре, и возможности смены оружия по желанию. Все, что подобрано и не стало текущим оснащением, будет сразу пересчитано в деньги.
Ловушки: упростить! Я хотел бы иметь множество ловушек с интересными и разнообразными последствиями их активации. Не судьба. Ловушки будет иметь простой визуальный эффект, наносить урон и временно увеличивать вероятность нарваться на случайного монстра
Луки (стрелковое оружие): Вырезано! В игре будет только оружие ближнего боя, на расстоянии можно атаковать заклинаниями.
Сохранение / загрузка игры: упростить! Сохранить можно только персонажа, а не состояние мира. (ПРАВКА: Я и этого не сделал!)
Система частиц: Отложить! Создание системы частиц перемещено в самый низ списка приоритетов. Я сомневаюсь, что придется их делать. Хотелось бы сделать впечатляющие визуальные эффекты с помощью частиц для заклинаний... но, скорее всего, этого никогда не будет.
Заклинания: упростить! У меня была серьезная концепция о заклинаниях: их можно было бы найти в виде свитков, и количество более десятка. Это грустно, но будет всего несколько заклинаний: Лечение, Урон, Ослабление, Усиление, и Восстановление. При повышении уровня, можно позволить игроку усилить заклинания за счет увеличения числа магических очков.
Анимация монстров и игроков: Вырезано! Я никудышный художник, чтобы сделать это достаточно быстро.

Принимая решение, что я не буду делать (или то, что отложу на после), не менее важно решить, что нужно сделать в первую очередь.

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

Отлично, с приоритетами разобрались, продолжаем разработку.

Час 26 - Бросим кости

Я работаю над механикой «игральных костей», - механизма, с помощью которого в игру будет внесен элемент случайности. Поскольку у нас нет ограничения реальных костей, мы можем получать случайное число любого желаемого диапазона. Например от 1 до 33, или от 6 до 17. Так что я могу бросить кости, сравнить то, что выпало со своей атакой и защитой врага. Если выпавшее число выше защиты, атака удалась.

Например, предположим, что у меня общее значение атаки 15. Я атакую монстра, у которого 10 защиты. Мои шансы 15 из 25 (25 =15 +10), или 3 из 5. Так игра будет генерировать случайное число между 1 и 25, и если оно выше десяти, я выиграю.

Для вычисления нанесенного урона используется немного другой способ. Я добавил защищающемуся параметр «броня», а атакующему "урон". Я генерирую случайное число от 1 до их суммы, а затем вычитаю броню. Если результат меньше единицы, урон не наносится. В противном случае, он равен полученному результату. Таким образом, если монстр, с уроном равным 10 атакует игрока с 5 очками брони, игра будет генерировать число от 1 до 15, из которого вычтет 5, то, что получится, и есть нанесенный урон.

Это объяснение и описание заняло больше времени, чем его реализация.

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

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

Выберите формат создания игры - 2D или 3D. Легче 2D, чем 3D: они не нагружают компьютер, а нужное количество программ, необходимых для создания игры, сводится к минимуму. Но даже для создания 2D-игр нужно хорошо уметь рисовать. Если вы не умеете рисовать, то можете пользоваться уже готовыми заготовками локаций, персонажей и т.д.

Одним из плюсов 3D-игр можно назвать красоту и зрелищность, но требует жертв, поэтому сразу становятся видны минусы. Вам потребуется знание различных языков программирования. Это самая сложная часть создания 3D-игры. Чем сложнее предполагается игра, тем сложнее языки. Их огромное множество и они познаются очень долго. Изучая один язык вы столкнетесь с необходимостью знания другого. И так по нарастающей. Другой очевидный минус в том, что нужны мощные компьютеры. Рисовать тут уже не нужно, но нужно учиться работать в программах для моделирования, но это не легче рисования и без фантазии тут не обойтись.

Существуют специальные конструкторы для создания игр. Из готовых деталей, которые вам даются в конструкторе, вы постепенно создаете свою игру. Они подходят как для 3D-игр, так и для 2D-игр. Если вам не хватает готовых деталей, то вы можете добавить свои и пользоваться ими. Чтобы заставить что-то двигаться, вам нужно будет присваивать объектам действия, используя готовые логические операции. При нехватке стандартных действий на помощь придут скриптовые языки. Существуют конструкторы, которые включают в себя общие языки программирования, они более функциональны, но в их работу сложнее вникнуть. Конструкторы обычно разбиты по жанрам, но есть и общие, которые подходят для создания игр различных жанров.

Компьютерные игры становятся с каждым днем все разнообразнее и интереснее. Современная молодежь, да и большое количество пользователей ПК старшего возраста очень сильно увлечены этим видом времяпрепровождения. Иногда, это увлечение становится таким сильным, что участники игры не только в нее играют, но и начинают заниматься творчеством. Несколько подсказок о том, как создать свою 3D игру могут быть полезными.

Вам понадобится

  • Для создания своей 3D игры вам понадобится взлет фантазии и команда единомышленников, желательно с программистом своих дружных рядах.

Инструкция

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

Сценарий 3D состоит из трех слагаемых: концепт-документ, дизайн и собственно сценарий.
Концепт документ – это технической составляющей игры, ее техническая основа.
Дизайн – визуализация идеи, ее стиль, красочность, графика. Придумайте образы героев, антураж и эффектные фишки.
Сценарий – как можно подробнее и тщательнее разработайте сюжет и все его линии и повороты.

После того, как вы разработали сценарий – оцените его сложность. Это важно, так как от сложности сценария будет зависеть выбор движка, «мотора, на котором будет работать игра.

Если игра довольно простая, с небольшим количеством действующих лиц и графики, вполне будет достаточно FPS Creator.
Если же вы предполагаете сделать феерическую игру, с эффектами и всевозможными фишками, со скоростными передвижениями и подвижными персонажами – воспользуйтесь NeoAxis Engine.

Затем подготовьте игровые ресурсы – модели, звуки и текстуры.

Последний шаг – вы можете доделать игру сами или попросить об этом друга-программиста. Это уже совсем не сложно.

Видео по теме

Обратите внимание

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

Полезный совет

Весь необходимый софт для создания игры вы можете скачать из интернета.

Источники:

  • аКак?, сайт
  • как делать игры в компьютере

Если вы творческий человек и при этом любите играть в компьютерные игры – рано или поздно наступит момент, когда вам захочется начать разрабатывать игры самому. Даже если вы ранее этим не занимались создать, например, игру в модном формате 3D, вполне возможно. Вот несколько советов на эту тему.

Вам понадобится

  • Для того чтобы разработать свою 3D игру вам потребуется взлет фантазии, и некоторый софт, который можно легко скачать из интернета.

Инструкция

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

Напишите . Сценарий игры в формате 3D игры состоит из нескольких частей. Каждая из них важна, поэтому поработайте с каждой частью как можно тщательнее.Часть первая «Концепт документ» – в нем нужно как можно подробнее отписать всю техническую сторону игры.Часть вторая «Дизайн» – здесь опишите визуальную сторону игры, ее меню, тип графики, цвета, спецэффекты.Часть третья «Сценарий как таковой» – это сценарий как таковой, сюжет со всеми его поворотами, интригами, героями, художественная сторона вашей авторской игры.

Оцените всю сложность технического воплощения вашей задумки. От этого зависит выбор движка, на котором будет работать ваша игра. Если ваша игра достаточно простая, в ней небольшое количество героев, нет сложной графики, и для вас это просто первый эксперимент – остановитесь на FPS Creator.
Если же вы настроены создать игру сложную, многоплановую, эффектную - воспользуйтесь NeoAxis Engine. Этот мотор позволяет воплотить в жизнь игру любой сложности.

После того как вы выбрали движок и установили его к себе на ПК, дополните свои игровые ресурсы – скачайте из интернета необходимые звуки, текстуры, модели. В интернете очень много всевозможных программных «аксессуаров» и у вас не будет с этим затруднений.

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

Обратите внимание

Почти весь софт можно скачать из сети, вам останется приобрести только микрофон.

Полезный совет

Лучше потратить лишнее время на программирование – конструктор игр не даст вам возможности создать многоплановую и сложную игру.

Источники:

  • как самому разработать

Когда вы играете в компьютерную игру, наверняка вам приходят в голову повороты сюжета или даже новые захватывающие истории. Если это так и ваша фантазия легко парит в заоблачных далях компьютерных фантазий, не откладывайте – создайте свою 3D-игру.

Инструкция

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

Жанр определили, нужно написать сценарий. Для 3D-игры сценарий состоит из трех главных частей: концепт-документа, дизайна и собственно, сценария:- концепт документ. В этом документе описывается техническая составляющая игры;
- дизайн. В этом разделе описываются все визуальные эффекты, меню, какой тип графики будет использоваться;
- сценарий. Это сюжета, всех его поворотов, героев, главная изюминка игры. В данном случае вам может пригодиться помощь друзей, чтобы игра получилась более разнообразная и интересная.

Оцените техническую и художественную сложность будущей игры. Как много в ней будет действующих лиц, специальных эффектов, насколько динамичным сюжет, какое количество графики, будет ли присутствовать искусственный интеллект, разрушения и других составляющих. От этого зависит то, какой движок вы выберете для игры. Для первого опыта, особенно в том случае, если игра будет достаточно простая, остановитесь на FPS Creator. Этот движок очень хорош и прост и будет прекрасной тренировочной площадкой для начинающих авторов. Если же вы имеете представление о более сложном программировании, выберите NeoAxis Engine. На базе этого движка можно написать игру любой сложности и любого жанра.

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

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

Обратите внимание

Большую часть софта для создания игр можно скачать из интернета. Вам потребуется купить только микрофон.

Полезный совет

Если вам лень заниматься программированием, скачайте из интернета конструктор игр. Это значительно упростит задачу, но и игра получится достаточно примитивная.

Домашних игр великое множество, например, шахматы, шашки, карты, реверси и т.д. Каждая семья выбирает игры по своему вкусу. Любителям азартных коллективных игр понравится игра «Мафия».

Инструкция

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

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

Кому и какую роль придется играть, стать мафиози или мирным горожанином, определите при помощи жребия. Далее назначьте ведущего. Несколько человек садятся напротив друг друга, каждому предлагается вытянуть из колоды карту.

Заранее определите что, например, черная масть – это , а красная горожане. То есть половина колоды, одна сторона, другая половина - соперники. Ведущий объявляет предусмотренную игрой смену дня и ночи. Ночью горожане не могут открывать глаза, члены мафии глаза не закрывают. Таким образом, мафиози могут видеть и знают друг друга, а горожане нет.

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

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

Видео по теме

Полезный совет

Для игры лучше, если будет равное количество игроков на стороне мафии и на стороне горожан. Вместо карт при жеребьёвке можно использовать сломанные и целые спички. Игроки могут, обсуждая и пытаясь уличить во лжи, выявить членов мафии. Нужно обращать внимание на мимику, жесты, тембр голоса игроков и по ним уже стараться понять лжет игрок или нет. Так как честному горожанину врать не нужно, а членам мафии приходится лгать.

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

Вам понадобится

  • - браузер;
  • - доступ в интернет;
  • - возможно, деньги для оплаты хостинга.

Инструкция

Прежде всего, выберите хостинг, на котором вы планируете создать сайт. Если этот ресурс является одним из первых, которые вы создаете, то наилучшим вариантом будет разместить его на одном из бесплатных хостингов, к примеру, ucoz.ru. На таких сервисах вы сможете также найти бесплатные конструкторы, равно как и готовые шаблоны для той тематики, которой будет посвящен ваш сайт.

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

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

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

Видео по теме

Источники:

  • как создать игравой сайт

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

Вам понадобится

  • Компьютер, доступ в интернет, программа Game Editor, компилятор подходящего языка программирования, Adobe Photoshop.

Инструкция

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

Если ваша идея не требует 3D-графики, внедрения физических характеристик и других «сложностей», присущих большим коммерческим проектам, то обратите внимание на программу для создания двухмерных игр Game Editor. В ней можно смастерить любую мини-игру с собственным сюжетом и графикой, которую нужно будет заранее подготовить в графическом редакторе, например, в Photoshop. Интерфейс Game Editor’а полностью языке, но это не помешает освоить ее даже «чайнику», ведь в сети есть масса форумов и инструкций к этой программе. Создание своих игр в Game Editor лучше всего начинать с изучения и переработки готовых образцов игр, идущих в комплекте с программой.

Если вам требуется больше ресурсов или вы чувствуете в себе потенциал программиста, то создавайте свою игру на каком-нибудь языке программирования: С++, Delphi и т.д. Например, изучив основы Delphi, можно в очень короткие сроки создать какую-либо настольную игру по типу шахмат или нард. А С++ вообще считается главным языком для написания игр – на нем создавались такие легенды, как Warcraft и Doom. Изучите учебники и форумы по этим языками программирования, разберите разработки игр на них и приступайте к созданию собственного творения.

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

Обратите внимание

Не стремитесь создать сами новый Crysis или Need for Speed. Для этого требуются сотни тысяч долларов инвестиций, большая команда профессионалов и офис, оборудованный самыми производительными компьютерами.

Источники:

  • Официальный сайт конструктора двумерных игр в 2018

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

Вам понадобится

  • - литературное произведение;
  • - участники;
  • - подручные материалы для изготовления атрибутов.

Инструкция

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

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

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

Придумайте правила. Они могут быть очень простыми. Расскажите, как могут поступать участники и чего они ни при каких делать не должны. Некоторые ограничения могут быть и у каждого персонажа. Например, Золушка не может врать, а Барон Мюнхгаузен ни при каких условиях не должен точно описывать события.

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

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

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

Разумеется, современные крупные игровые проекты вроде WoW или StarCraft - это результат многолетнего труда опытных программистов, требующий к тому же весомых финансовых вложений. Чтобы взяться за такой проект, нужно как минимум иметь диплом , определенный опыт и организаторские таланты. Однако сложность проекта - не всегда мера его успеха и не гарантия интереса игроков. А попробовать свои силы в создании игр, пусть менее сложных технически, но зато способных вызвать интерес и пользователей, и, возможно, крупных компаний-производителей игр, может каждый. Для этого даже не обязательно владеть знаниями языков программирования.

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

3D Game Maker – один из наиболее популярных движков, позволяющих создать собственную трехмерную игру. Благодаря необыкновенной простоте интерфейса, полноценная трехмерная игра с его помощью может быть создана всего за 10 минут. Выбираем жанр создаваемой игры, определяем количество необходимых уровней (система позволяет сконструировать до 20 различных уровней), среди готовых моделей подбираем главного персонажа. Игру уже можно запустить и опробовать, хотя работа над ней, конечно же, только начата. Ведь игра пока что лишена самого главного, того, что удерживает внимание и интерес пользователя - сюжета. Поэтому необходимо также подобрать противников, продумать прочие необходимые детали. Стоимость этой системы разработки игр составляет $35 - вполне посильная для начинающих создателей игр сумма.

3D Game Studio – мощнейший инструмент создания как 3D-, так и 2D игр, а программирования как такового при этом практически не требуется. Набор всевозможных шаблонных ситуаций, примеров и эффектов дает конструктору игры достаточно широкую палитру инструментов для воплощения своих фантазий. Природные эффекты, зеркальные поверхности, тени, прозрачные поверхности - все эти атрибуты можно в полной мере использовать при разработке игровых интерьеров. Готовые элементы игрового интерфейса также предоставляются разработчику, позволяя стильно и удобно оформить общение пользователя с игрой. Профессиональная версия этого движка обойдется в $900, однако версия для начинающих намного дешевле - всего $70.

Если же трехмерные миры вас не привлекают, обратите внимание на Game Maker – эта программа дает необозримый простор для фантазии, позволяя создать компьютерную игру в формате 2D. Выбираем объекты, продумываем их взаимодействие. Изображения можно нарисовать в любом графическом редакторе и импортировать в систему. Игру можно снабдить звуковыми эффектами и сигналами. Интерфейс предельно прост и логичен, идеально подходит для начинающих.