Как создать самую простую игру на компьютер. Этапы создания компьютерной игры

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

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

Лучшие программы для создания игр

Game Maker

Это конструктор игр на языке Delphi. Поддерживает как Windows, так и Макинтош. Достоинства того конструктора в кроссплатформенности, небольшой цене, интеграции с Steam. К недостаткам Game Maker относят то, что не удобен для создания больших игр, не развивается 3Д режим, предназначение из создания игр для компьютеров трансформировалось в игры для мобильных платформ.

Construct 2

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

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

Unity 3D

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

Минусом Unity 3D является – необходимость обучения по компьютерному программированию у создателя.

3D Rad

Эта утилита скачивается и используется бесплатно . Она является самой дешевой среди всех остальных, которые используют 3D движок. В 3D Rad вы найдете интуитивно-понятный интерфейс. А также в ней есть возможность создания онлайн игрушек .

Game Editor

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

Все приложения, созданные в Game Editor , имеют открытый исходный код . Утилита предназначается для тех, кто хотя бы немного освоил программирование на С++.

Stencyl

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

CraftStudio

Здесь можно добавлять и изменять объекты не только в 2Д, но и в 3Д пространстве. CraftStudio позволяет сделать создание игр увлекательным и интересным. Интерфейс данной программы интуитивно понятен. Здесь нет несовместимостей форматов или проблем с конвертацией. Для тех, кто обладает углубленными знаниями в программировании, есть раздел — Lua Scripting . Скачать программу для создания игр можно с официального сайта .

Adventure Game Studio

Плюсы данной утилиты заключаются в встроенной демо-игре, импорте звуковых файлов. К недостаткам относятся низкое качество графики и создание игры только одного жанра. Интерфейс Adventure Game Studio также не прост, как на первый взгляд может показаться. Но присутствует множество подсказок . Нет русскоязычной версии.

Arcade Game Studio

Это понятный и простой конструктор. Для работы с Arcade Game Studio не нужно обладать знаниями программирования, чтобы в нем разобраться. Он создан для написания шутеров, аркад, раннеров. Здесь можно сделать игру, относящуюся ко времени 80 или 90. Многим поклонникам олдскульного жанра, такие игрушки вполне зайдут.

Clickteam Fusion

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

Главная фишка Clickteam Fusion в том, что если программист создает утилиту на мобильный телефон, то она сможет считывать показания с GPS устройств. Русского языка нет, но можно скачать файл русификатор.

GameSalad

Данный конструктор будет полезен для начинающих программистов . Вы встретите простой и понятный интерфейс. Утилита разрешает добавить многие звуковые файлы и картинки. GameSalad легко совместима с разными платформами.

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

Visionaire Studio

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

Единственный минус Visionaire Studio в том, что бесплатна только демо версия.

Blender

Это приложение создано для изготовления 3Д анимации и 3Д графики. Эта утилита абсолютно бесплатно распространяется . В ней очень много инструментов и опций. Поэтому может понадобиться большое количество времени на ее изучение. Но оно того стоит. Однако Blender не имеет русифицированной версии. Для того, чтобы ее перевести рекомендуется скачать русификатор .

Construct Classic

Эта программа предназначена для создания 3Д и 2Д приложений. Созданные на ней игры могут использовать технологии Direct X. Здесь все действия выполняются по технологии визуального проектирования. Поэтому не требуется знания программирования.

В Construct Classic можно подключать собственные шейдеры. Поддерживает большинство плагинов, встроен интерпретатор Python.

Unreal Development Kit

Эта утилита является самым популярным движком среди разработчиков игровых приложений. Она поддерживает X Box, PC, Play Station. Основная фишка в том, что движок создан для изготовления 3D шутеров. Здесь можно обрабатывать сложные архитектуры, анимации лица, физические объекты. А также имеется собственная библиотека.

Unreal Development Kit скачивается и используется бесплатно. Но когда вы захотите официально выпустить игру, то необходимо будет купить лицензию.

NeoAxis 3D Engine

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

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

CryENGINE 3 Free

Этот движок можно считать лучшим из всех современных, которые поддерживают фотореалистичные графику, а также технологию Direct X. Far Cry и Crysis были сделаны на нем. А также он позволяет создавать игры для платформ X Box, Play Station.

Текстуры можно брать прямо из 3D Max. CryENGINE очень популярен. Можно найти большое количество обучающих материалов на русском языке.

Kodu Game Lab

Этот движок позволяет работать со многими инструментами, с помощью которых можно выпускать трехмерные приложения. Kodu Game Lab создан компанией Microsoft . В нем есть множество шаблонов, позволяет загружать собственный контент, имеет множество встроенных уроков по работе с ним.

Defold Game Engine

Этот конструктор заточен под 2D, но может работать и с 3D графикой. На нем легко создавать игры для непрограммистов. Defold Game Engine подойдет для разработки приложений для мобильных телефонов, HTML5, скрпитинг на lua.

Amazon Lumberyard

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

CryEngine 5

Это игровой движок от немецкой компании Crytec. Версия CryEngine 5 менее требовательна к вашим компьютерным характеристикам, но графика от этого не становится хуже. Есть поддержка Direct X 11 и 12.

GameMaker: Studio

Этот конструктор является бесплатной версией того, что мы рассматривали в начале обзора программ для создания игр. Он позволяет создавать двухмерные миры за несколько часов. Обладает кроссплатформенностью. На GameMaker: Studio легко изготавливать приложения для мобильных устройств, персональных компьютеров, Mac Os.

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

Как играть?

Вам не потребуется знание языков программирования. Работать придется с уже готовыми шаблонами. Они размещены в верхней части экрана. Кликами мышки можно выбирать объекты и место их будущего размещения. В игре всего два персонажа, несколько типов бонусов, платформы и многое другое. Действия должны происходить на фоне гор. Когда вы выберете все, что хотели видеть в игре и найдете место для каждого объекта, нажмите на стрелку «далее». Теперь на экране появляется уже готовая игра, которую вы сможете попробовать первым. Получилось? Если увидели ошибки, то можно вернуться назад.

Здравствуйте.

Игры… Это одни из самых популярных программ, ради которых многие пользователи и покупают компьютеры и ноутбуки. Наверное, ПК не стали бы так популярны, если бы на них не было игр.

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

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

1. Программы для создания 2D игр

Под 2D - понимают двумерные игры. Например: тетрис, кот-рыболов, пинбол, разные карточные игры и пр.

Пример-2D игры. Карточная игра: Солитер

1) Game Maker

Сайт разработчика: http://yoyogames.com/studio

Процесс создания игры в Game Maker…

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

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

Нельзя не отметить большое разнообразие эффектов и действий, которые можно задавать различным объектам (будущим персонажам) в этом редакторе: количество просто поражает - более нескольких сотен!

2) Construct 2

Сайт: http://c2community.ru/

Современный игровой конструктор (в прямом смысле этого слова), позволяющий даже начинающим пользователям ПК делать современные игры. Причем, хочу подчеркнуть, при помощи этой программы игры можно изготавливать для разных платформ: IOS, Android, Linux, Windows 7/8, Mac Desktop, Web (HTML 5) и пр.

Этот конструктор очень похож на Game Maker - здесь так же нужно добавлять объекты, затем прописать им поведение (правила) и создать различные события. Редактор построен по принципу WYSIWYG - т.е. вы сразу же будете видеть результат по мере создания игры.

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

2. Программы для создания 3D игр

(3D - трехмерные игры)

1) 3D RAD

Сайт: http://www.3drad.com/

Один из самых дешевых конструкторов в формате 3D (многим пользователям, кстати, хватит и бесплатной версии, у которой ограничение на обновление сроком на 3 месяца).

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

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

2) Unity 3D

Сайт разработчика: http://unity3d.com/

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

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

Пожалуй, единственный недостаток у этого пакета - это необходимость знания программирования на C# или Java - часть кода при компиляции придется дописывать в «ручном режиме».

3) NeoAxis Game Engine SDK

Сайт разработчика: http://www.neoaxis.com/

Бесплатная среда разработки практически любых игр в формате 3D! При помощи данного комплекса можно делать и гонки, и стрелялки, и аркады с приключениями…

Для движка Game Engine SDK в сети имеется немало дополнений и расширений под множество задач: например, физика автомобиля или самолета. При помощи расширяемых библиотек вам даже не понадобиться серьезное знание языков программирования!

Благодаря специальному плееру, встроенному в движок, игры созданные в нем могут воспроизводиться во множестве популярных браузерах: Google Chrome, FireFox, Internet Explorer, Opera и Safari.

Game Engine SDK распространяется как бесплатный движок для некоммерческих разработок.

3. Как создать 2D игру в редакторе Game Maker - пошагово

Game Maker. Добавление объекта.

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

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

Добавление событий к объектам.

Game Maker. Для объекта Соник добавлены 5 событий: перемещение персонажа в различных направлениях при нажатии клавиш-стрелок; плюс задано условие при пересечении границы игровой зоны.

Кстати, событий может быть очень много: здесь Game Maker не мелочиться, программа предложит вам много всего:

Задание перемещение персонажа: скорость перемещения, прыжки, сила прыжка и пр.;

Накладывание произведения музыки при различных действиях;

Появление и удаление персонажа (объекта) и т.д.

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

6) Последнее и одно из важных действий - создание комнаты. Комната - это своего рода этап игры, уровень, на котором и будут взаимодействовать ваши объекты. Чтобы создать такую комнату, нажмите кнопку со следующим значком: .

Добавление комнаты (этапа игры).

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

Запуск полученной игры.

Game Maker откроет перед вами окно с игрой. Фактически, вы можете смотреть, что у вас получилось, экспериментировать, играть. В моем случае Соник может перемещаться в зависимости от нажатия клавиш на клавиатуре. Своего рода мини-игра (эх, а были времена, когда белая точка, бегающая по черному экрану, вызывала дикое удивление и интерес у народа… ).

Полученная игра…

Да, конечно, полученная игра примитивная и очень проста, зато пример ее создания очень показателен. Далее экспериментируя и работая с объектами, спрайтами, звуками, фонами и комнатами - можно создать очень даже не плохую 2D игру. Чтобы создавать подобные игры лет 10-15 назад необходимо было обладать специальными знаниями, сейчас - достаточно уметь вращать мышку. Прогресс!

С наилучшими! Всем удачного игро-строя…

С каждым днем игры становятся все сложнее и навороченнее. Ежегодно в 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. И все это в рамках одной статьи.

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

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

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


Есть еще одна программа для разработки игр, которую могут использовать как новички, так и опытные программисты. Она называется 3D Game Studio и обладает широким спектром инструментов для реализации игр любого жанра и уровня сложности. В программе имеется пакет шаблонов, атрибутов для создания интерьера и эффектов – зеркальные и прозрачные плоскости, тени и т.д. Начинающим разработчикам предоставляются готовые элементы игрового меню на выбор. Движок для начинающих стоит 70$, а продвинутым программистам придется заплатить 900$. Если не нравятся 3D игры, обратите внимание на программу Game Maker. Она позволит создать качественную игру в формате 2D. Вам предложат выбрать объекты и придумать взаимодействие между ними. У пользователя есть возможность рисовать в любом графическом редакторе изображения и импортировать их в систему. Программа содержит много интересных эффектов и звуков. Меню является простым и удобным, поэтому программа идеально подходит для новичков. Программа Stencyl Works предназначена для более опытных программистов. На ней может работать и начинающий пользователь, но ему придется столкнуться с некоторыми трудностями. Более опытные пользователи могут создавать собственные блоки. Если вы знаете язык программирования Action Script 3, то сможете написать собственный сценарий для игры. Вы можете опубликовывать свои игры и делится с ними на различных порталах. При желании получится найти спонсоров, которые смогут купить ваш продукт. Если вы хотите создать профессиональную и качественную игру, изучите основные игровые жанры и выберите свой жанр для создания авторской программы. Напишите хороший сценарий. На это уйдет основное время. Продумайте сценарий и каждый сюжет в деталях. Опишите визуальный образ, графику, составьте меню игры. После этого оцените сложность написанной программы, чтобы подобрать правильный движок для ее создания. Если она относительно проста – воспользуйтесь программой Creator. Если вы довольно неплохо разбираетесь в программировании, создайте игру на базе Neo Axis Engine. Данная программа получила много хороших отзывов и подходит для создания игр любого уровня сложности. Скачайте программу и начинайте создание игры. Если вы совсем новичок, попрактикуйтесь и создайте несколько легких игр. Если у вас есть возможность, попросите друзей-программистов помочь вам в написании кода для игры. Если сценарий разработан хорошо – сделать программу не составит большого труда.

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

Статьи по теме: