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

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, то, что получится, и есть нанесенный урон.

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

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

Игровой движок - сердце компьютерной игры и центральный инструмент геймдевелопера. Центральный, но не единственный - без трехмерного графического редактора, программы для создания анимированных персонажей, звукового редактора, средства для создания уровней, средства разработки шрифтов и многого другого труд инди-разработчика был бы просто невозможен. В этой статье мы с тобой подберем полный комплект бесплатного либо недорогого ПО, которое пригодится тебе в нелегкой работе индивидуального разработчика игр. И нет, это будет не Unity 3D + Visual Studio + Photoshop + Maya.

Игровые движки

В статьях про выбор игрового движка (« » и « ») я рассказывал преимущественно о топовых продуктах, которые у всех на слуху: Torque 2D/3D, Unity 3D, Unreal Engine 4, CryEngine. По сути, с ними все понятно, за прошедший год мало что изменилось, а в этой статье мы коснемся лишь того, что не вошло в предыдущие, - рассмотрим интересные, но не очень популярные «модели».

Компания TheGameCreators гордо создает тулзы для разработки игр с 1999 года. И при том, что многие тулзы других вендоров бесплатны, TGC продает свои продукты и очевидно имеет профит. На ее счету такие проекты, как DarkBASIC, DarkGDK (когда-то очень давно я написал об этом движке целый цикл статей), FPS Creator . Сейчас все эти продукты отданы в сообщество открытых исходников и хостятся на GitHub. DarkGDK всегда представлял собой либу для C++. В настоящее время компания активно развивает три продукта: MyWorld (для создания RPG), GameGuru (для создания 3D-шутеров без программирования) и AppGameKit .

AGK - флагманский продукт компании TGC, универсальный движок, с помощью которого можно создавать игры любых жанров под все распространенные платформы: Windows, Linux, macOS, Android, iOS, HTML5 и даже для Raspberry Pi (модуль скачивается отдельно). И все это единожды написанный код! Этим сейчас, правда, уже никого не удивишь, но все равно приятно. С помощью AGK можно создавать не только 2D- и 3D-игры, но и обыкновенные приложения.

AGK состоит из двух уровней (tiers). Tier 1 - это разработка игры с помощью многофункционального скриптового языка (модифицированный под игры легкий в изучении BASIC). Tier 2 представляет собой фреймворк, подключаемый к C++. Таким образом, AppGameKit - это смесь модернизированных и улучшенных старых продуктов компании: DarkBASIC и DarkGDK в одном флаконе.

Неважно, какой уровень будет использоваться для разработки, в обоих случаях игру можно размножить на все поддерживаемые платформы. На первом уровне код пишется в специальной IDE для скриптового языка AGK, во втором - в любимой среде разработки на C++, например Visual Studio.

Вдобавок AGK поддерживает легкую интеграцию с PHP для разработки онлайновых игр и приложений. Среди ключевых возможностей разрабатываемых в AGK игр: поддержка физических движков Box 2D и 3D Bullet (соответственно для двумерной и трехмерной графики), системы частиц, проигрывание видео, отображение рекламы, поддержка камеры и разные социальные сервисы.

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


Еще один движок, на котором я хочу остановиться, - это Godot . С недавнего времени он стал для меня интересен, и вот почему. Он полностью открытый и кросс-платформенный. На нем можно разрабатывать игры, сидя в Windows, Linux, macOS, а создавать их для Windows Desktop, Windows Universal, Linux, macOS, BSD, Haiku, Android, iOS, BlackBerry 10 и HTML5. Начало движку Godot было положено сотрудниками аргентинской компании Okam в 2007 году. Изначально он создавался для собственных проектов компании, однако после того, как он достиг определенного уровня, авторы решили выложить его на GitHub. Это произошло в 2014 году. С того времени сообщество стало помогать с разработкой.

С самого начала движок создавался как полноценная среда для разработки игр, не требующая посторонних средств кодирования. Он содержит оригинальный интерфейс, собственный скриптовый язык GDScript, полный исходный код на C++ и множество типов объектов, используемых для разработки игр. Некоторые из них служат для создания пользовательского интерфейса, другие предоставляют спрайты (служат для создания 2D-игр), с помощью третьих можно создавать физические объекты, четвертые - для видео и звуков, пятые помогают добавить системы частиц разной конфигурации, шестые - анимированные 3D-объекты, седьмые - целые сцены и прочее.

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

Графическая составляющая в Godot основана на OpenGL ES 2. Имеется редактор для визуального создания и модификации шейдеров, есть собственный язык для их написания. Godot обладает встроенным редактором для создания анимации, как персонажей, так и других объектов. Для достижения приемлемого уровня оптимизации разработчики Godot отказались от использования физических движков третьих фирм, создав с нуля решение для просчета физических взаимодействий.


Godot

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

Как дела у независимых разработчиков

За год на инди-сцене произошло много интересного. Как я и предполагал, в настоящее время инди, пытаясь соперничать с «большими» разработчиками, сидящими под крылом у издателей, начали осваивать просторы 3D и глобального онлайна. По большей части это сетевые сессионные шутеры, но иногда встречаются и MMO. Этому поспособствовали современные игровые технологии, в частности движки. Между тем многие инди (и их большинство) по-прежнему разрабатывают двумерные экшены и адвенчуры для мобильных платформ и ПК. Конкурируя с AAA-проектами, инди порой ухитряются сделать игру, по своей продуманности, подаче сюжета, глубине стиля и красоте превосходящую конкурентов из мира «больших» игр.

Графические редакторы

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

Честно скажу, мне не нравится Photoshop, я им не пользуюсь уже много лет. Из проприетарных редакторов мне больше по душе пакет программ CorelDRAW. В этот пакет входят прекрасный векторный редактор, собственно CorelDRAW и Corel Photo-Paint, не уступающий по функциональности Photoshop. Мне кажется, что CorelDRAW превосходит Adobe Illustrator, но последний я не юзал. Однако CorelDRAW стоит охренительных денег. 🙂 Поэтому, когда я стал добросовестным инди, то отказался от него и разом потерял векторный и растровый редакторы.

Между тем в мире open source полно интересных графических редакторов. Среди них есть безусловные лидеры, разработка которых ведется уже не один год. По функциональности они не уступают проприетарным решениям. Наилучшим выбором среди растровых редакторов для меня стал GIMP . Программа разрабатывается с 1995 года и содержит все инструменты и подавляющее большинство опций и настроек «Фотошопа».


GIMP

Из векторных редакторов очевидный выбор - это . Inkscape выглядит и работает, как CorelDRAW, набор инструментов примерно похожий.



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

Софт для 3D-моделирования

Maya, LightWave, 3ds Max, ZBrush - отличные программы трехмерного моделирования и анимации, но для инди они, увы, слишком дороги. Какие решения тут может предложить open source?

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

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

Начиная с профессиональных программ, стоит выделить CryENGINE , NeoAxis и Unreal Development Kit . Все они предоставят обширный функционал для разработки красочных игр на любую тематику. НеоАксис получил расширенные инструменты для реализации мультиплеерных игр. UDK славится тонкими настройками физики предметов. Софт от компании Crytek обладает полезной опцией запуска редактора моделей без предварительной установки на компьютер. Небольшая ложка дегтя всех программных продуктов - высокие системные требования.

В такой яростной конкуренции вышеприведенных утилит, выгодно расположилась Unity 3D - золотая середина, также включающая в себя все необходимые возможности, да еще и на мощном движке PhysX от NVIDIA. Поддерживает фактически все ОС: Xbox, Playstation, Wii, Android, iOS, Windows, Linux, Mac и так далее. Кроме того, предоставляет развитые средства для тестирования приложений. По вашему желанию, открывает доступ сразу нескольким пользователям к одному проекту, для комфортной совместной разработки.

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

Созданные с помощью 3ds Max высококачественные модели и текстуры, можно экспортировать в другие утилиты для последующего применения в игровых конструкторах, например: Юнити 3Д , CryENGINE и прочих.

Game Editor , Construct 2 , Game Maker Studio и Clickteam Fusion - приложения для создания двухмерных игр. Констракт 2 превосходит оппонентов русскоязычным меню, более удобным управлением и большим набором инструментов, позволяющим разрабатывать даже браузерные версии своих творений. ГеймМейкер Студио даст возможность продвинутым юзерам, освоившим принципы программирования, заниматься написанием кода на уникальном скрипт-языке GML. Внимание же новичков зачастую привлекает GameEditor , своей простотой, пошаговым подсказчиком, а также неплохим редактором событий и поведения объектов.

Неотъемлемая часть игровых конструкторов и эмуляторов – наличие глубоко проработанного механизма скриптовых сценариев. Вместо того, чтобы вручную описывать поведение объектов, можно скачать программу для создания игр и просто расставить стрелочки. Плюс механизмы рендеринга 2D и 3D графики, поддержка полезных плагинов, экспорт/импорт данных и т.д.

Blender

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

3d Rad

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

Game Editor

Мощная система взаимодействия игровых объектов на основе анализа их поведения в пространстве. По существу – двумерный конструктор-симулятор, может быть использован для создания несложных игр. Поддерживает скриптовый язык программирования реакции на события, совместим со всеми базовыми платформами – Win, Linux, OS X, iOS и т.д.

Unreal Development Kit

Настоящий подарок всем разработчикам, набор инструментов для взаимодействия с движком Unreal Engine. На нем была создана едва ли не половина всех самых ярких и знаковых игр для Windows, Xbox 360, PlayStation 3, Wii и Android. Широчайшие возможности для создания трехмерных игр с очень сложной и детализированной графикой.

GameMaker Studio

Кроссплатформенный конструктор/движок, полноценная программа для создания игр под Windows, Mac, iOS, Android или HTML 5. Интуитивно-понятный интерфейс, возможность импорта готовых объектов, звуков и скриптов, поддержка шейдеров. Совместимо со Steam и Facebook, оптимально для разработки простых игр, уровня Тетриса или SuperMario, включая и трехмерные проекты.

Neoaxis 3d Engine

Среда для разработки интерактивных 3D-сцен, включая и полноценные небольшие игры. Совместимо с NVIDIA PhysX, поддерживает использование джойстиков и геймпадов, можно подключать библиотеки языка C++ и программировать поведение объектов вручную, если возможностей встроенного набора скриптов недостаточно. Базовая версия – бесплатна, за доступ к Pro и возможности разработки коммерческих продуктов нужно основательно раскошелиться.

Kodu Game Lab

Обучающий проект Microsoft, приложение для реализации концепции «визуального программирования» и очень упрощенный конструктор трехмерных игр. Большая часть правил поведения и физики игрового мира прописана по умолчанию, детям остается лишь расставить объекты и спланировать сценарий игры. Есть версии для Xbox и PC, последняя – бесплатна.

Raycasting Game Maker

Несложный конструктор игр в жанре FPS с использованием двумерной спрайтовой графики – по аналогии с прародителями жанра, Wolfenstein 3D и DOOM. Вся физика и модель поведения прописаны по умолчанию, задача пользователя приложения сводится к декору уровней, расстановки объектов и указанию конкретных параметров – уровень здоровья, количество патронов и т.д. Бесплатная, открытая среда.

Scirra Construct Classic

В основе угла – визуальное проектирование, программа рассчитана на людей творческих, далеких от рутинной работы. Автоматизировано почти все, большая часть работы заключается в подборе эффектов и проработке сценария игры. Есть поддержка DirectX 9, солидный пакет плагинов, совместимость с Python-скриптами, плюс комплекс уроков для начинающих игроделов.

Unity3d

Новый, универсальный, перспективный движок для создания игр произвольного жанра – без принципиальных ограничений. Ориентация на кроссплатформенность, готовые проекты могут использоваться в Windows, Android, iOS, Blackberry, OSX, Wii, Playstation 3, Xbox. Есть механизмы импорта объектов, сценариев и звуков, поддержка языка скриптов на базе JavaScript или C#, работа с трехмерной графикой.

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

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

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

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

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

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 назад необходимо было обладать специальными знаниями, сейчас - достаточно уметь вращать мышку. Прогресс!

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