Как создать собственную игру-бродилку онлайн
Содержание:
- Ловим мяч
- Solar 2D
- Программа для создания оконного режима в играх
- Panda 3D
- Как работает 2D-конструктор Clickteam Fusion 2.5
- Этапы создания игр
- Добавление объекта
- Разработка игры
- Программы и движки для разработки игр
- Подключение к компьютеру/ноутбуку дополнительного монитора или телевизора
- Топ ошибок начинающих разработчиков игр
- Что дальше?
- Шаг 1. Придумать сюжет и пространство игры
- Unity
- Blender Game Engine
- Какие игры проще создавать
- Работа со скриптами
- AppGameKit (AGK)
- Инструкция: как запустить игру в оконном режиме
- Ведем счет
- Заключение
Ловим мяч
Я хочу, чтобы игроки ловили скачущий мяч. Когда он пойман, у него появляется владелец, и он следует движениям владельца. На рис. 10 в метод move мяча добавлена функциональность, позволяющая мячу перемещаться вслед за владельцем.
Рис. 10. Заставляем мяч следовать за своим владельцем
На данный момент способа получить позицию объекта Player пока нет, поэтому я добавлю аксессоры getPosition и getSide в объект Player:
Теперь, если у мяча есть владелец, он будет следовать за этим владельцем. Но как определить владельца? Кто-то должен поймать мяч. На рис. 11 показано, как узнать, когда один из спрайтов игроков касается мяча. Когда это происходит, я устанавливаю владельцем мяча этого игрока.
Первый шаг в реализации класса player — заставить функцию move изменять позицию игрока.
Рис. 11. Обнаружение коллизии для мяча и игроков
Если вы сейчас попытаетесь поиграть в эту игру, то обнаружите, что мяч отскакивает от верхнего края экрана и что можно двигать игрока, чтобы поймать мяч. А как бросить мяч? Для этого и предназначены элементы управления по правую руку. На рис. 12 игроку добавлена функция fire, а также свойство aim.
Рис. 12. Свойство aim и функция fire для мяча
Код на рис. 13 дополняет функцию, связанную с клавиатурой. Он задает aim и fire объекта игрока. Прицеливание работает слегка иначе. Когда клавиша прицеливания освобождается, задается прямое направление (straightforward).
Рис. 13. Подготавливаем функцию прицеливания для игрока
И завершающее добавление относится к сенсорной поддержке для всех элементов управления. Элементы управления справа изменяют направление прицеливания игрока. Кроме того, я сделаю так, чтобы касание любого участка экрана приводило к броску мяча:
Solar 2D
Бесплатный фреймворк (набор готовых функций для использования), разработанный в 2009 году. Ранее движок распространялся под названием Corona SDK. Основная цель — создание мобильных и десктопных приложений на базе скриптов Lua. В мае 2020 года в связи с закрытием компании Corona Labs Inc. произошёл ребрендинг, и теперь, как и в случае с Godot, поддержка и развитие движка осуществляется через пожертвования. Есть активное русскоязычное сообщество. Исходный код можно скачать с GitHub.
Game of Sultans — игра созданная на Solar 2D
Достижения:
- за всё время существования движка на нём создано более 000 приложений на Android;
- игру Bubble Ball (2010), созданную 14-летним подростком на Solar 2D, скачали два миллиона раз за две недели после релиза на iOS;
- на Solar 2D также создана Game of Sultans, известная в России как «Великий Султан»: у неё более 10 миллионов загрузок, она лидер по продажам в 2019 году.
Преимущества:
- возможность быстро разработать проект (скрипты Lua просто освоить);
- небольшой объём приложений;
- кроссплатформенность (iOS, tvOS, Android, Android TV, macOS, Windows, Linux, HTML5);
- поддержка сторонних API и библиотек (C/C++/Obj-C/Java);
- большое разнообразие плагинов для расширения функциональности.
Недостатки:
- не поддерживает консоли;
- позволяет работать только с 2D;
- нет визуального редактора — только окно со строками кода;
- не подходит для крупных проектов.
Игры на движке: CarMaker, Game of Sultans, The Lords of the Earth Flame, Incursion Defense: Cards TD, Edorium, Beasts Battle.
«Сообщество Solar 2D хоть и небольшое, но активное. Благодаря открытому исходному коду любой толковый программист может написать плагин к движку и развивать его. Solar 2D подходит для создания небольших казуалок, но при желании можно сделать что-нибудь сложнее. Если сравнивать с движками, которые под силу освоить даже художнику или сценаристу, то у Solar 2D порог входа выше, так как требуются навыки программирования».
Сергей Поморин, инди-разработчик (Beasts Battle, Necromancer Returns, Magicians Legacy)
Necromancer Returns
Программа для создания оконного режима в играх
Сайт NexusMods
Чтобы скачать её, необходимо зарегистрироваться или авторизоваться на сайте, если у вас уже есть учётная запись. Утилита позволяет запускать игру в псевдо-оконном режиме. Перенимая все возможности стандартного окна Windows. А это значит, что у нас появляется больше функций для работы с окном игры.
Также утилита делает окно доступным для создания скриншотов игры. Позволяет управлять громкостью, а также выбирать гамма режимы.
После загрузки архива с программой, его нужно распаковать:
-
Распакуйте архив в определённое место, чтобы вы знали, где находятся файлы программы после распаковки;
Распакуйте архив с программой
- Далее среди этих распакованных файлов найдите «Set-Up GameCompanion» и нажмите по нему 2 раза курсором мыши;
-
Выберите «Install», после чего программа начнёт устанавливаться. На рабочем столе появится иконка, которую нужно запустить;
Иконка программы GameCompanion
-
В окне программы нужно выбрать вкладку «Game». Откроется список игр, которые программа поддерживает по умолчанию. Даже если вашей игры в списке нет, вам необходимо вписать сюда название экзешного файла, который её запускает. Например, «Fallout3.exe»;
Выберите вкладку Games
-
Вкладка «HotKeys» также содержит полезную информацию — комбинации клавиш для управления программой. Вы можете их изменить при необходимости.
Вкладка программы с горячими клавишами для управления
Теперь закройте компаньон и запустите игру, которую вы добавили в список программы. Она должна быть запущена в оконной опции. Если это не так, попробуйте использовать горячие клавиши из соответствующей вкладки программы (CTRL+ENTER по умолчанию).
Panda 3D
Фреймворк, разработанный Disney для 3D-аттракционов в парке развлечений. Исходный код Panda 3D выложили в открытый доступ в 2002 году. Со временем инструмент оброс впечатляющей функциональностью для создания коммерческих продуктов с 3D-графикой. Для работы с движком требуется знание Python и C++. В настоящий момент движок используется в проектах, связанных с тренировкой ИИ, а также вычислениями на удалённых серверах.
Disney’s Pirates of the Caribbean Online (2007) — онлайновая RPG, созданная на Panda 3D
Преимущества:
- большой набор инструментов и тулсетов (анализ производительности, конвертация моделей, плагин для браузера);
- поддержка популярных физических движков (Bullet, NVIDIA PhysX, ODE);
- наличие дополнительных возможностей (ИИ, процедурная анимация, графические ассеты, скелетная анимация и так далее);
- низкий порог вхождения для тех, кто знает Python.
Недостатки:
- отсутствие графического редактора, где можно расставить 3D-объекты: сцены заранее готовят в Maya или Blender, затем импортируют в Panda 3D с помощью кода;
- устаревшее программное обеспечение для работы с ассетами;
- нехватка наглядных примеров в официальной документации.
Игры на движке: Disney’s Toontown, Disney’s Pirates of the Caribbean Online, Autumn Moon Entertainment: Ghost Pirates of Vooju Island, Autumn Moon Entertainment: A Vampyre Story, SimOps Studios: Code3D, Angels Fall First: Second Antarean War, 7million.
Кроме того, на itch.io можно ознакомиться с подборкой игр от инди-разработчиков.
«Для меня меня этот движок оказался проще Unity или UE4. Он минималистичный — можно быстро разобраться, что к чему. Более масштабные технологии сразу заваливают функциями, и часто сложно понять, почему вдруг что-то сломалось. Например, у многих разработчиков возникают проблемы, связанные с переходом на новую версию движка. В Panda 3D такого нет».
Yonnji, инди-разработчик (KITSUNETSUKI project)
KITSUNETSUKI project
Как работает 2D-конструктор Clickteam Fusion 2.5
Clickteam Fusion 2.5 — это простая в использовании программа разработки игр на основе Flash. Для создания игры с его помощью вам не придется писать код. Вообще.
Эта программа позволяет начинающим разработчикам игр создавать простые 2D-игры за пару кликов, используя готовые объекты, анимации и фоны.
Лучше один раз увидеть, чем сто раз услышать, поэтому вот небольшое видео, где в Clickteam Fusion 2.5 создают хорошо знакомую всем игру Змейка.
Игры, созданные с помощью Clickteam Fusion 2.5
Доказываем, что создавать популярные и хорошие игры можно и без знаний программирования на примере этих проектов:
Five Nights at Freddy’s. Пожалуй, эта игра не нуждается в представлении. Популярный survival horror был сделан именно на движке Clickteam Fusion 2.5. Хотя 3D модели создавали и анимировали в Autodesk 3Ds Max, основу геймплея создавали именно в Clickteam.
Baba Is You. Инди-головоломка, которая получила несколько наград, в том числе стала инди-игрой года, лучшей независимой игрой и отличилась превосходным дизайном. Также она стала одной из самых продаваемых игр месяца в Steam.
Spark the Electric Jester. Платформер, разработанный бразильской студией Feperd Games. Игра была тепло принята аудиторией и в итоге получила продолжение в виде еще двух частей.
Этапы создания игр
Делаем простую игру
Под простой игрой подразумевается самый незамысловатый сюжет. На примере рассмотрим такую идею: человечку необходимо преодолеть препятствия, чтобы благополучно добраться до финиша. К тому же, по дороге желательно собирать монетки. Согласитесь, воспроизвести такую картинку с помощью Construct 2 довольно просто и интересно. Рассмотрим приблизительные ориентировочные действия:
- Создаем фон любого цвета, в нашем случае для натуральности лучше выбрать зеленый;
- Делаем главного персонажа, им может выступать и животное, и человечек;
- Проектируем монетки и расставляем их по всему фону; аналогичное проделываем и с препятствиями (изображение камней, дров – лучший вариант);
- Теперь определяем взаимодействие персонажа с окружающей средой. Споткнулся о камень – игра окончена, поймал монетку – она продолжается, добежал до края фона – финиш.
Для пошаговых действий и подробной инструкции смотрите видео, которое прилагается к этому разделу.
Делаем карточную игру
Для такого жанра лучше всего использовать программу Unity 3D. Здесь же рассмотрим направления и шаги:
- Делаем основной фон для карт;
- Проектируем сами карты, то есть, инвентарь;
- Задаем взаимодействия;
- Определяем количество игроков;
- Переводим меню игры из 3D в 2D;
- Определяем конец игры.
Создаем РПГ-игру
Отличной программой для такого жанра является программа RMXP или тот же Unity3D, выпущенная японской компанией. Для создания подобной игры нужно время и внимательность, но ни с чем сложным вы не столкнетесь.
- Придумываем основную идею будущей Андроид игры;
- Пишем основной сценарий;
- Рисуем базовую карту и добавляем объекты;
- Создаем события.
Как создать онлайн-игру для Андроид
Отдельной схемы для создания именно онлайн игры не существует. Приложение данного типа делается с помощью вышеперечисленных программ, а куда публиковать свое творение – напрямую в Android и iOS, либо в браузеры – решать вам.
Обратите внимание! Создание игры без использования ПК стандартными методами невозможно. Большинство популярных программ ориентировано только на компьютеры
Добавление объекта
Объекты на экран Scene можно добавить из Asset Store. Для этого на панели инструментов нужно кликнуть на вкладку Window –> General –> Asset Store.
В строке поиска можно по названиям найти нужные компоненты, например, сет Free Platform Game Assets.
Как и другие ассеты, он загружается с помощью кнопки Import.
Перед загрузкой появится список всех компонентов, которые содержит этот пакет; некоторые из них можно исключить. Если в списке есть персонажи, текстуры или другие элементы, которые вам не нужны, можно просто снять галочки, и пакет загрузится без них.
После установки все ассеты будут доступны в окне Project. Теперь можно комбинировать и перемещать эти объекты, менять их форму, причем сделать это можно с помощью мыши или горячих клавиш, не написав ни одной строчки кода. Например, из перечня платформ самых разных видов можно выбрать одну и мышкой перетащить ее в рабочую область.
Шаг 2. Перенести в область Scene
Разработка игры
Изначально реализация нашей задумки казалась простой. Так как мы приняли решение перейти сразу к практике, а не изучать теорию с нуля, нами была придумана практически беспроигрышная блок-схема, которой мы придерживались на протяжении всего процесса создания игры.
Блок — схема
После выполнения второй «тренировочной» задачи было ощущение, что 70% игры уже готово, но как только мы решили сделать имитацию отскока мяча по нажатию, а не от стенки, выяснилось, что написанный код совершенно не подходит. Следующие несколько дней были потрачены во имя решения появившейся проблемы. В итоге были использованы лучи, которые на определенном расстоянии до стенок, отрабатывали нажатие и меняли соответствующую координату на противоположную.
Анимация игрового процесса
Первоначально идея с минимальным количеством кнопок очаровала нас. Такой минималистичный подход казался необычным. Особого шарма главному меню добавляла анимация отскакивающего мяча, которую ничего не загораживает (нет рекламы и лишних кнопок).
Меню проигрыша
Анимация главного меню
Программы и движки для разработки игр
- Unreal Engine — бесплатный для использования движок, написанный на языке С++. Оплата взимается только после того, как игра станет коммерчески успешной, и составляет 5% от общемирового дохода. С помощью Unreal Engine можно создавать игры для Microsoft Windows, Linux, PlayStation, Xbox, Android и других платформ. Программирование возможно на чистом С++ и с помощью встроенного визуального редактора BluePrint. Создание игр на Unreal Engine 4 — перспективное направление, о чем свидетельствует его применение крупными производителями, а также то, что многие компании, предлагающие обучение геймдеву, ориентируются именно на данную технологию.
- Unity 3D — интегрированная среда разработки, с помощью которой были созданы такие игры как The Golf Club, Assault Android Cactus, Dead Trigger. Гибкая система оплаты: разработчики, игры, которых приносит меньше 100 тысяч долларов в год, могут пользоваться Unity бесплатно. Потенциал Unity можно раскрыть с помощью таких языков программирования как C#, Python, Rust, C++.
- Phaser — движок для создания онлайн игр формата 2D на технологии HTML5. Языки программирования — TypeScript и JavaScript. Открытый исходный код и большое русскоязычное коммьюнити делают Phaser выбором номер один для создателей несложных браузерных игр.
- CryENGINE Free SDK — движок, с помощью которого были созданы такие легенды шутеров как Crysis и Far Cry. Среди главных возможностей — достаточно реалистичная графика, детальная прорисовка ландшафтов и других карт. Использование бесплатное, при коммерческом распространении — гибкая тарификация в зависимости от количества продаж.
Подключение к компьютеру/ноутбуку дополнительного монитора или телевизора
Данная ситуация менее распространена, чем две предыдущие, но также имеет место быть. Если вы подключали какие – либо дополнительные устройства вывода изображения к видеокарте компьютера или ноутбука, например такие как дополнительный монитора или телевизор, то попробуйте отключить их.
Если изображение исправилось и монитор расширился до нормальных значений, значит причина в подключенном устройстве и при его подключении к компьютеру требуется регулировка разрешения, которая описана выше. Разница лишь в том, что перед изменением значения в строке “Разрешение”. нужно выбрать нужный монитор в строке “Экран”.
Выбор монитора в настройках разрешения экрана
Топ ошибок начинающих разработчиков игр
Нужно быть дальновидным и внимательным, чтобы избежать ошибокВзято с ресурса www.igromania.ru/
Все делают ошибки, когда только погружаются в мир разработки видеоигр. Но зачастую их можно избежать, если знать о них заранее. Вот некоторые самые распространенные ошибки, которые допускают команды при разработке игр:
Создают игру, которая интересна только разработчикам. Нет смысла создавать игру и стараться для десяти человек. Поэтому перед тем как приступить к разработке, нужно исследовать свою целевую аудиторию и иметь в голове четкий портрет этих людей. Если ваша игра будет продаваться в Steam, воспользуйтесь SteamSpy, чтобы узнать, сколько людей владеют похожими играми и играют в них.
Не занимаются маркетингом игры. Недостаточно просто добавить свою игру на платформу и ждать, когда все сработает само. Нужно заниматься продвижением своего проекта. Например, следите за сезоном распродаж в Steam и делайте скидки на игру, используйте купоны сообществ и в целом не забывайте обновлять страницу в магазине.
Разрабатывают технологии для поддержки большого количества игроков. Во-первых, это дорого и долго. Во-вторых, неизвестно сколько пользователей в итоге заинтересуется вашим проектом. Для начала лучше сосредоточиться на создании минимально жизнеспособного продукта. После релиза уже можно масштабировать проект хоть для миллиона пользователей, если ваша игра вызовет ажиотаж.
Что дальше?
Освоить интерфейс Unity довольно легко, в интернете есть разные гайды на тему того, как сделать это действительно быстро. Например, видео «Я сделал игру на Unity за неделю» или обучающий мини-курс «Как создать RPG за час». Можно изучать геймдев самостоятельно или начать обучение на курсе — это ускорит процесс и даст более заметные результаты.
Для работы со скриптами и создания более сложных механик разработчикам в любом случае понадобится С#, так что к его изучению вы тоже рано или поздно придете. Но в отличие от Unity, по C# нет в свободном доступе такого большого количества актуальных и понятных гайдов, так что в целях экономии времени и сил лучше записаться на курс «Разработчик игр на Unity», где все знания упакованы в структурированные блоки и сбалансированы с практикой на тренажерах.
Шаг 1. Придумать сюжет и пространство игры
Необязательно придумывать историю, достойную Вселенной «Звездных войн» — максимально простые сюжеты тоже становятся культовыми (привет червяку Джиму и Марио, которых помнят все, у кого были «Денди» или «Сега»). Дети понимают такие истории, да и взрослых они затягивают.
Лия Костикова, создательница курса «Игры на Python»в детской онлайн-школе Skysmart |
Дети могут провести часы в игре, не задумываясь о том, что это работа огромного количества гейм-дизайнеров, которые воспользовались определенной матрицей действий. Мне кажется, если прийти к ребенку и сказать: «Вот ты три часа играл в Roblox, но на самом деле это просто трюк, который кто-то придумал», — это переориентирует его на то, чтобы он стал сопричастным к созданию этой игры. Когда ребенок сам начинает разбираться в тонкостях создания игрушки, он уже не просто в нее бездумно играет, но и исследует: вот тут классно закольцевали сюжет, а этот герой похож на викингов, которых мы проходили по истории. В таком подходе точно больше пользы для развития — и осознанности тоже. |
Чтобы создать классный игровой сюжет, нужна насмотренность. Она складывается не только из стримов на ютубе, но и из общего кругозора: книжек, фильмов, мира вокруг.
А еще в играх вовсю работают законы драматургии. Например, в курсе «Игры на Python» ученики изучают принцип чеховского ружья, по которому в сюжете остаются только те элементы, которые его поддерживают и усиляют, а все остальное — удаляется.
Лия Костикова, создательница курса «Игры на Python»в детской онлайн-школе Skysmart |
У всех компьютерных игр есть определенная логика, сюжет, персонажи. Мы рассказываем, из каких кубиков состоит игра как таковая, и уже в конце первого уровня ребенок создает полноценную креативную оболочку игры с продуманным сюжетом, пространством и персонажами. Теоретический блок мы объясняем на пальцах. Например: «Кто-то постучал в дверь. Ты открываешь дверь, а там Годзилла», — это называется твист, неожиданный поворот сюжета. После теории сразу практикуемся: предлагаем придумать твист для скучной истории. Ученики отвечают: «Кошка легла спать, потом встала, подошла к зеркалу, а в зеркале она не отразилась». Засчитано: ребята поняли, что такое твист. |
Все уроки — динамичные. За теорией следует практика — мини-задания, чтобы сразу закрепить знания и задать вопросы. А если ученик столкнулся со сложностями после занятий, он всегда может обратиться к наставникам курса.
А еще на курсе дети заводят друзей. Тестируют игры друг друга, помогают докручивать сюжет и даже встречаются после занятий, чтобы вместе поиграть. Сила комьюнити в том, что вместе с такими же, как ты, гораздо проще и интереснее двигаться дальше: обсуждать сложности, вместе искать решения, получать поддержку и вдохновение.
Запишите ребенка на курс «Игры на Python» в онлайн-школе Skysmart: уже через 5 месяцев он сможет похвастаться не только собственной игрушкой, но и знаниями в драматургии, программировании и дизайне и даже алгебре. А еще прокачает креативность, логику и навыки презентации — себя и своих проектов.
Unity
Проекты на этом движке: Pokemon Go, West of Loathing, , Ori and the Blind Forest.
Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity
Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем!…
Unity
Плюсы Unity:
- Есть инструменты для быстрого создания прототипа будущей игры;
- Можно достичь высокого уровня производительности в проекте;
- Универсальное решение, которое используется как для маленьких проектов, так и для ААА-тайтлов.
- Проект имеет закрытый исходный код, если вы столкнетесь с каким-то багом, то придется ждать обновления Unity;
- Редактор кода и отладчик часто работают плохо и отнимают кучу времени у создателя;
- Не такой низкий порог вхождения, как в других движках. Чтобы сделать на нем игру, придется многое выучить.
Blender Game Engine
Blender Game Engine — игровой движок, который является частью пакета 3D моделирования Blender. Blender Game Engine был разработан много лет назад, но, спустя столько времени, так и не был популярен в кругу геймдевелоперов, а связано это вот с чем: Blender Game Engine создан для разработки несложных 2D и 3D игр, потому что имеет слабую физику по сравнению с конкурентами. Конечно, есть Rigidbody, есть элементарная физика, но нет смысла прописывать программисту то, что давно встроены в другие игровые движки. Также в этом игровом движке используется язык программирования Phyton, что не очень удобно. Но у Blender Game Engine есть плюсы: 1 — можно сразу редактировать и добавлять 3D модели, если что-то на сцене не устраивает, 2 — можно использовать русскую документацию на сайте Blender, 3 — удобный рендер, выдающий большой фпс. Если выбирать Blender Game Engine, то только для разработки небольших проектов, для знакомства с геймдевом.
Пример игр, созданных на Blender Game Engine, взятых с Youtube.com:
Скачать с официального сайта: Blender
Какие игры проще создавать
Новичкам в программировании игр рекомендуется пробовать себя в создании различных платформеров. Это могут быть простые игры, в которых персонаж бродит по незамысловатому лабиринту, или же небольшая драка с вором или злодеем. Для многих такие игры могут показаться максимально типичными, однако именно такой сюжет идеально подходит для начала. Более того, неопытный в сфере программирования пользователь точно сможет создать подобную игру, используя лишь бесплатный конструктор в интернете.
Кроме того, карточные игры также не нуждаются в высоком качестве графики, максимальной прорисовки и большом количестве действий. Все действия в подобных приложениях, начиная от тасовки карт и заканчивая последним ходом, отличаются от прочих жанров игр своей однотипностью. Более того, карточные игры также отличаются простым интерфейсом, в который входит простое меню.
Работа со скриптами
За поведение игровых объектов отвечают присоединенные к ним компоненты (Components). Базовый компонент любого объекта — Transform, он отвечает за положение элемента в окне Scene, возможность поворачивать и масштабировать его. К базовому компоненту можно добавить, например, Renderer, который меняет цвет, или RigidBody, который отвечает за массу и физику объекта. Но кроме базовых компонентов, объектам можно задавать особые условия, и для этого как раз используются скрипты.
Создать новый скрипт можно в окне Project, кликнув мышкой на Assets –> Create –> C# Script.
Двойным кликом мыши скрипт открывается в текстовом редакторе. Скрипты, как и все остальное в Unity, прописываются на С#, так что для создания сложных проектов разработчикам все же придется освоить этот язык.
Базовые элементы скриптов — это:
- using — элемент в коде, который подключает библиотеки;
- public class — в этой строке обычно прописан класс MonoBehaviour, он содержит набор функций, необходимых для работы скрипта;
- void — те самые функции, с их помощью прописываются действия, происходящие в игре.
Рассмотрим, например, функцию start. Любое действие в ней произойдет только один раз, когда запустится игра. Пропишем здесь print (“Hi”).
И можно заметить, что в консоли это слово выводится один раз.
Функция update — повторяющаяся, ее можно использовать, например, для передвижения объекта. Для этого в скрипте задается переменная int i = 0, она выводится на экран с помощью функции print (i) и увеличивается на одну единицу за каждый шаг с помощью i++.
В консоли можно будет заметить, что апдейт действительно срабатывает каждый фрейм и объект, к которому применен этот скрипт, плавно движется.
AppGameKit (AGK)
Мощный инструмент от The Game Creators Ltd., который подойдёт как начинающим, так и опытным инди-разработчикам. Компания была основана в 1999 году Ли Бамбером (Lee Bamber) и Риком Ваннером (Rick Vanner) — работниками Europress, одного из ведущих европейских издателей образовательных программ.
AGK работает по принципу drag & drop и использует собственный язык программирования — AppGameKit Script.
Ограничения пробной версии:
- лимит по времени использования — 14 дней;
- вотермарк компании-разработчика;
- невозможность экспорта на мобильные платформы и HTML5.
Существует несколько версий AGK, и все они используются в разных целях.
- AppGameKit Classic (930 рублей) — стандартная версия, где нет некоторых функций;
- AppGameKit Studio (1 659 рублей) — полная версия;
- AppGameKit Classic Mobile — мобильная версия движка: позволяет кодить «на ходу» в буквальном смысле слова; в отличие от предыдущих двух полностью бесплатна.
Для расширения возможностей будущего проекта разработчик может приобрести пакеты.
Как и Construct 3, AGK предлагает решения для образования. Для этого нужно отправить заявку и указать название образовательного учреждения. После прохождения верификации заявитель получит все бесплатные версии движка плюс комплект обучающих материалов.
Скриншот из FireRobots — игры, созданной на AGK. Скриншот: игра FireRobots / AppGameKit
Преимущества:
- прост в освоении, возникшие вопросы можно оперативно решить с техподдержкой;
- компилирует код для платформ Windows, Mac OS, Ubuntu, Android, iOS и HTML5;
- встроенная поддержка 3D, VR, AR, VFX и физики;
- подходит для разработки неигровых проектов.
Недостатки:
- нельзя сделать масштабный проект;
- несмотря на лёгкость освоения, нет знаковых хитов.
Игры на движке: Penguin Panic, Chopper, Sticky Orbs — список игр можно посмотреть на официальном сайте движка.
Скриншот из Castle Conquest — игры, созданной на AGK. Скриншот: игра Castle Conquest / AppGameKit
«AppGameKit — самый подходящий для меня инструмент. Это эффективный игровой движок и язык программирования, c которым я могу в короткие сроки разрабатывать оптимизированные приложения любой сложности. Его основные преимущества — простота, универсальность, кросс-платформенный охват и минимальная зависимость от стороннего программного обеспечения. Я пытался работать с Unity и UE4, но меня сразу оттолкнула сложность. По моему скромному мнению, задачи, которые легко решить на AGK, очень трудно реализовать на других движках».
Илья Образцов, программист, кандидат технических наук Тверского государственного технического университета, разработчик ПО для вузов и колледжей (VIRTLABS). «Made with AppGameKit…», 2019 год
Инструкция: как запустить игру в оконном режиме
Компьютер зачастую используется не только для работы, но и для развлечений, в том числе игр. Игра, как и любое приложение на компьютере, может работать в полноэкранном режиме или в оконном варианте. В зависимости от ситуации, может быть удобно использовать тот или иной вариант ее отображения. Способов, как запустить игру в оконном режиме, множество, и каждый из них имеет свои преимущества и недостатки.
Обратите внимание: Обычно, необходимость запустить игру в оконном режиме связана с желанием быстро переключаться между запущенными программами на компьютере. Также запустить игру в оконном режиме полезно, например, если она довольно старая и имеет низкое разрешение, из-за чего при увеличении на полный экран картинка смазывается
Использование настроек в игре
Самый простой способ перевести игру из полноэкранного режима в оконный вариант – это воспользоваться настройками в самой игре. Чаще всего переключатель между оконным режимом и обычным находится в опциях «Экран» или «Графика». Однако не все игры позволяют это сделать.
Использование «горячих клавиш»
Пользователи Windows со стажем прекрасно знают набор «горячих клавиш», которые переходят из одной версии системы в другую, позволяя быстро выполнять всевозможные действия. Имеется в системе способ, как перевести приложение или игру в оконный режим. Для этого достаточно на клавиатуре одновременно нажать клавиши Alt+Enter. После этого полноэкранный режим сменится на оконный или наоборот.
Обратите внимание: Работает данная комбинация клавиш во всех версиях Windows, но не со всеми программами и играми
Использование свойства «-Window» для ярлыка
Если ни на один из перечисленных выше способов игра не реагирует, или изменить режим ее отображения нет возможности в настройках, можно попробовать способ с внесением параметра оконного режима в ярлык. Для этого нужно найти ярлык от игры на рабочем столе и нажать на него правой кнопкой мыши. В выпадающем меню выберите пункт «Свойства». Откроется новое окно, в котором требуется вписать параметр «—window». Данное свойство прописывается в графу «Объект», как показано ниже на примере.
Когда необходимый параметр будет прописан, нажмите «ОК», чтобы сохранить внесенные изменения. После этого запустите игру через данный ярлык, и она откроется в оконном режиме.
Обратите внимание: В некоторых случаях параметр «-window» не работает. Рекомендуем в таких ситуациях попробовать прописать параметр «-w», сохранить и попробовать запустить игру
Использование сторонних приложений
Можно выделить два типа приложений, которые позволяют запускать программы в оконном режиме – это специализированные утилиты и приложения-эмуляторы. Рассмотрим каждый из вариантов.
Утилиты для запуска игры в оконном режиме
- Установите приложения в папку, путь к которой не будет содержать кириллицы;
- Далее запустите приложение и нажмите на плюс. Откроется окно, в котором нужно выбрать необходимую игру, после чего нажмите на значок с закрытой папкой;
- Откроется окно настроек, в котором требуется задать следующие параметры:
- В первых двух полях указывается значение по ширине и высоте окна. Обязательно убедитесь, что справа от них активирована галочка;
- В правой нижней части окна нужно нажать на кнопку и выбрать из папки, где установлено приложение D3DWindower, файл под названием D3DHook.dll;
- Сохраните настройки;
- После этого остается нажать на кнопку «Run program», которая имеет пиктограмму компьютера (данная кнопка третья справа).
После этого откроется окно, в котором запустится необходимая игра.
Эмуляторы для запуска игры в оконном режиме
Эмуляторы – это самый сложный способ, к которому следует прибегать в крайнем случае. Он подразумевает полную эмуляцию операционной системы внутри окна с последующим запуском внутри нее необходимой игры. Подобных эмуляторов множество, как платных, так и бесплатных. Среди самых известных вариантов можно выделить Windows Virtual PC и Vmware.
В зависимости от того, какой эмулятор вы будете использовать, разнится список действий, которые требуется совершить для запуска игры. В целом, процесс выглядит следующим образом:
- На компьютер устанавливается эмулятор и запускается;
- Далее в эмуляторе нужно указать путь к файлам для установки операционной системы;
- После этого нужно дождаться установки ОС и перезапустить эмулятор;
- Далее в эмуляторе устанавливается игра и запускается.
Стоит отметить, что для работы эмулятора потребуется выделить около 20 Гб свободного места на жестком диске (только для установки системы). Кроме того, эмуляторы требовательны к ресурсам компьютера.
Ведем счет
Когда мяч летит на игрока, я хочу изменять счет и отдавать мяч этому игроку. Я буду использоваться собственные события, чтобы можно было отделить подсчет от любого из существующих объектов. Функция update становится слишком длинной, поэтому я добавлю новую закрытую функцию — checkScored:
На рис. 14 показан код, который реагирует на эти события, обновляя счет и передавая мяч в руки игрока. Добавьте этот код вниз JavaScript-документа.
Рис. 14. Обновление табло
Теперь, когда мяч перемещается мимо вашего оппонента (что не трудно, так как оппонент не движется), ваш счет будет расти, а мяч передаваться оппоненту. Однако оппонент будет просто держать мяч.
Заключение
Теперь у вас есть полноценная веб-игра, которая работает на ПК, смартфонах и планшетах. Эту игру можно усовершенствовать по многим направлениям. Например, сейчас она будет плохо выглядеть в портретном (книжном) режиме на смартфоне, поэтому вам нужно держать смартфон только в альбомном режиме, чтобы игра работала корректно. Это лишь небольшая демонстрация возможностей разработки игр для Web и не только.
Michael Oneppo — креативный технолог и бывший менеджер программ в группе Microsoft Direct3D. В последнее время работает в качестве главного технического директора в технологической некоммерческой компании Library For All и ведет исследования по программе NYU Interactive Telecommunications Program для получения степени магистра.
Выражаю благодарность за рецензирование статьи эксперту Магомету Амину Ибрагиму (Mohamed Ameen Ibrahim).