Создание игры без навыков программирования

Unity 3D

Unity 3D — мощная среда разработки, которая позволяет легко создать игру. Созданные с помощью Unity 3D игры и приложения работают в операционных системах Windows, OS X, Android. iOS, Linux, Blackberry а также на игровых приставках Wii, PlayStation 3 и Xbox 360. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL.

С помощью Unity 3D можно создавать видеоигры любых жанров. Разработчик может легко импортировать текстуры, модели и звуки. Для текстур поддерживаются все популярные форматы изображений. Создание скриптов осуществляется, в основном, с помощью JavaScript, хотя коды можно писать и на С#.

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

  • Широкие возможности настройки.
  • Доступный и понятный интерфейс.
  • Сценарии на С#. JavaScript и Boo.
  • Полная интеграция игрового движка со средой разработки.
  • Поддержка перетягивания объектов в редакторе.
  • Поддержка импорта большого количества форматов.
  • Встроенная поддержка сети.
  • Поддержка физики ткани (PhysX Cloth).
  • Возможность дополнения функционала.
  • Инструменты для совместной разработки.
  • Возможность использования систем контроля версий.

Если картинка сузилась, восстанавливаем размер кнопками монитора

Если вас тревожит вопрос о том, как расширить экран монитора, если все изображение сузилось, как его восстановить, для этих целей трогать настройки самой системы бесполезно. Если по краям суженого изображения черные части экрана — нужно настроить картинку на самом мониторе. Как можно догадаться, здесь не играет роли какая у вас установлена версия Windows 7 или 10.

Кнопки для настроек на мониторах разных производителей могут отличаться расположением и названием.

Принцип действий один и тот же:

  1. В первую очередь нужно попасть в меню вашего монитора — обычно это самая большая кнопка на панели монитора и расположена посередине.
  2. Затем выбрать настройки изображения — этот пункт также может называться по-иному.
  3. Когда отобразятся настройки выберите ориентацию экрана и при помощи стрелочек (кнопок на панели монитора) выберите нужный размер, чтобы картинка расположилась правильно, не забегая за границы монитора и не оставляя черных полос.
  4. После этого подтвердите настройки и выйдите из меню.

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

Полезно знать: компьютер при включении просит нажать F1 — как убрать?

Как развернуть игру на весь экран: параметры запуска

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

  • -fullscreen — устанавливает параметры полноэкранного режима.
  • -w 1920 -h 1080 — устанавливает размер окна по высоте и ширине. В данном случае указаны значения для FullHD разрешения. Вы можете поменять значения конкретно под ваш монитор, где -w — ширина, а -h — соответственно высота.
  • Существует также команда для запуска игры в оконном режиме. Ее часто применяют для первоначального запуска, чтобы избежать некоторых проблем с совместимостью, а в дальнейшем в ручную установливают разрешение в настройках. Если после адреса вы видите текст -window, то его требуется убрать. Возможно, именно это препятствует приложению развернуться во весь экран.

Точно такие же параметры, как правило, работают и для игр, установленных из Steam. Только в свойствах ярлыка вы не найдете поля «Объект». Чтобы установить параметры запуска, вам потребуется зайти в свою библиотеку в программе. Выберите желаемую игру, нажмите по ней правой кнопкой мыши и перейдите в свойства. Там вы увидите пункт «Установить параметры запуска». Нажимаете по нему и точно таким же образом прописываете вышеописанные команды. Не забудьте дефис в начале и пробел между командами. Можно указывать несколько параметров одновременно.

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

Выбор платформы

Платформ на данный момент под которые имеет смысл делать игру не так уж и много:

PC

XBOX One (XBOX 360)

PS4 (PS3)

Android

IOS

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

Давайте поговорим о каждой платформе по отдельности.

PC

Самая популярная платформа для начинающих разработчиков. Именно на компьютерах можно делать игры на самых разных движках, самого разного размаха, начиная от браузерок на JavaScript и заканчивая мастодонтами вроде Grand Theft Auto 5.

На ПК есть магазин цифровой дистрибуции Steam, который с каждым годом составляет всё большую конкуренция консольным платформодержателям. В Steam есть для разработчиков GreenLight подсервис, который позволяет издать свою игру в Steam. Делается это не бесплатно, нужно заплатить сколько-то долларов чтобы получить возможность выставить на оценку сообществу вашу игру.

Консоли

У консолей с инди-разработчиками всё лучше с каждым месяцем, но всё де не так радужно как на ПК. Sony поощряет это направление, а к ним присоединился не так давно и Microsoft с XBOX.

Для того чтобы делать игру, нужно её тестить на консольном железе, а для этого нужен Development Kit.

Мобильные платформы

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

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

Если вы решите выпускаться на мобильниках и планшетах — ознакомьтесь с правилами публикаций приложений магазинов и учтите чтобы получить возможность загружать свои приложения в Google Play, вам нужно заплатить порядка 20$ единожды, а в АппСтор — 99$ в год.

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

UNITY

Кроссплатформенный коммерческий игровой движок, разработанный Unity Technologies. Он использовался для таких игр, как Untitled Goose Game, Ori and Will of the Wisps и Hollow Knight.

Фото: epicgames.com

Для разработки: 2D- и 3D-игр.

Платформы: Windows, macOS и Linux.

Языки программирования: C#.

Стоимость: Бесплатно для личного пользования предоставляется студентам и любителям, а также небольшим компаниям, которые зарабатывают менее 100 000 долларов в год. Помимо этого, существуют годовые планы, начинающиеся с 399 долларов в год или 40 долларов в месяц.

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

Начало работы: https://learn.unity.com/tutorial/create-your-first-unity-project

Уровень сложности создания Android-игр

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

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

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

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

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

Теперь подводим небольшие итоги. Если вы решили создать свою игру, то для этого требуется:

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

Советы и предупреждения

Выборка содержит наиболее полезные советы для начинающих разработчиков.

  1. Совет 1: освоить английский язык, что позволит работать с расширенным количеством программного обеспечения.
  2. Совет 2: ориентироваться на определенную платформу – мобильную или стационарную.
  3. Совет 3: использование обучающих материалов – обязательное мероприятие.
  4. Совет 4: не игнорировать англоязычные материалы и программы.

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

Совет №5. Участвуйте в игровых джемах

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

Юля Кожемяко объясняет, почему так важны эти события: «На джеме есть ограниченный срок, ты не будешь несколько месяцев сидеть без результата, а получишь его через два-три дня… Ты увидишь, что можешь сделать, пусть даже в команде с другими ребятами. На джеме нет возможности прокрастинировать. Нужно полностью сосредоточиться на игре».

Здесь действует тот же принцип, что и с показом игры друзьям. Джемы позволяют не работать «в стол», а показать своё творчество другим участникам и, возможно, профессионалам из индустрии. Там же можно завести знакомства с будущими коллабораторами. В частности, с Ильёй Кононенко, соавтором игры The Tender Cut, вдохновлённой «Андалузским псом», Юля Кожемяко впервые встретилась именно на джеме.

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

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

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

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

Играем стильно

Если бы вы загрузили эту страницу, то ничего не увидели бы, потому что никакого стиля не применено. Я уже подготовил ссылку на файл main.css в своем HTML, поэтому помещу все CSS в новый файл с тем же именем. Первым делом я позиционирую все элементы на экране

Тело страницы должно занимать весь экран, поэтому сначала я уделяю внимание этому:

Во-вторых, мне нужно, чтобы арена была заполнена фоновым изображением (рис. 3):

Рис. 3. Фоновое изображение для арены

Далее я размещаю табло. Я хочу, чтобы оно находилось вверху по центру — поверх других элементов. Команда «position: absolute» позволяет разместить его где угодно и оставить там: 50% — позиционирует табло посередине верхней части окна, но начиная с самой левой части элемента табло (scoreboard element). Чтобы гарантировать точную центровку, я использую свойство transform, а свойство z-index обеспечивает, что табло будет всегда находиться поверх других элементов:

Я также хочу использовать текст со шрифтом в стиле ретро. Большинство браузеров позволяет включать собственные шрифты. Я счел подходящим шрифт Press Start 2P от codeman38 (zone38.net). Чтобы добавить шрифт к табло, я должен создать новое начертание шрифта (font face):

Теперь результаты (scores) находятся в теге h1, поэтому я могу задать этот шрифт для всех тегов h1. На случай отсутствия этого шрифта я предусмотрю несколько запасных вариантов:

Для других элементов я буду использовать таблицу изображений-спрайтов. Таблица спрайтов (sprite sheet) содержит все необходимые игре изображения в одном файле (рис. 4).

Рис. 4. Таблица спрайтов для Ping

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

Любому элементу, имеющему изображение в этой таблице, будет назначен класс sprite. Тогда для каждого элемента я буду использовать background-position, чтобы определить, какую часть таблицы спрайтов мне нужно показывать:

Затем я добавлю класс sprite ко всем элементам, которые будут использовать таблицу спрайтов. Для этого мне придется ненадолго переключиться на HTML:

Теперь мне нужно указать позиции каждого спрайта в таблице для каждого элемента. И вновь я буду делать это с помощью background-position, как показано на рис. 5.

Рис. 5. Добавление смещений для таблицы спрайтов

Свойство position: absolute в player, opponent и ball позволит мне перемещать их по полю, используя JavaScript. Если вы посмотрите на страницу теперь, то увидите, что к элементам управления и мячу прикреплены ненужные куски. Дело в том, что размеры спрайтов меньше 128 пикселей по умолчанию, поэтому я подстраиваю их под правильный размер. Мяч всего один, и я задаю его размер напрямую:

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

После добавления этого класса элементы управления в игре выглядят гораздо лучше:

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

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

Совет №1. Не стремитесь к идеалу

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

Многие берутся за разработку в надежде воплотить в жизнь свои блестящие идеи. Иногда у новичков выходит The Stanley Parable — но куда чаще их задумки гибнут ещё на первых этапах разработки, погребённые под грузом амбиций.

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

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

Ren’Py

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

Плюсы Ren’Py:

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

Минусы Ren’Py:

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

. Изменение параметров запуска

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

Он может быть записан в строке «Объект» свойств игрового ярлыка.

Убрав эту надпись, можно восстановить стандартный запуск на весь монитор.

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

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

Однако чаще всего список ОС заканчивается на Windows Vista, и владельцу современной ОС, например, Windows 10, этот способ не поможет.

Запуск игры в режиме совместимости с Windows XP

Путь

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

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

Defold Game Engine

В этой статье я хочу познакомить вас с весьма молодым и бесплатным игровым движком для создания игр ААА класса —  Defold Game Engine. Этот движок разработали Рагнар Свенссон и Кристиан Мюррэй  в 2014 году и уже существует более 20 тыс. пользователей и  больше 30 тыс. проектов на этом движке.

Defold работает на MacOS/OS х, Windows и Linux (32 бит и 64 бит). С его помощью можно создать игру для 6 известных платформ iOS, Android ,HTML5, а также для MacOS/OS х, Windows и Linux.

Defold — представляет собой полноценный 3D — движок, однако набор инструментов сделан для 2D, так что для создания 3D игр придется делать много тяжелой работы самостоятельно. Улучшение инструментов для создания 3D, разработчики планирую в ближайшем будущем. Все приложения и игровая логика в  Defold осуществляется с помощью скриптов на языке lua. Lua — это легкий, динамичный язык, который является быстрым и очень мощным.

Идея

Итак, сначала должна быть идея. Это самое начало пути к созданию игры. Вы должны придумать что-то хорошее. Главное в идее не в том чтобы она нравилась вам, а в том чтобы она нравилась другим. Лучше это с кем-то из знакомых обсудить лично, мол хочу сделать такую-то такую-то игру, как думаешь нормал?

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

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

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

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

Ваша идея должна быть свежей или уникальным образом быть лучше всех имеющихся на данный момент её реализаций. Отсюда вытекает следующий пункт:

Ловим мяч

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

Рис. 10. Заставляем мяч следовать за своим владельцем

На данный момент способа получить позицию объекта Player пока нет, поэтому я добавлю аксессоры getPosition и getSide в объект Player:

Теперь, если у мяча есть владелец, он будет следовать за этим владельцем. Но как определить владельца? Кто-то должен поймать мяч. На рис. 11 показано, как узнать, когда один из спрайтов игроков касается мяча. Когда это происходит, я устанавливаю владельцем мяча этого игрока.

Первый шаг в реализации класса player — заставить функцию move изменять позицию игрока.

Рис. 11. Обнаружение коллизии для мяча и игроков

Если вы сейчас попытаетесь поиграть в эту игру, то обнаружите, что мяч отскакивает от верхнего края экрана и что можно двигать игрока, чтобы поймать мяч. А как бросить мяч? Для этого и предназначены элементы управления по правую руку. На рис. 12 игроку добавлена функция fire, а также свойство aim.

Рис. 12. Свойство aim и функция fire для мяча

Код на рис. 13 дополняет функцию, связанную с клавиатурой. Он задает aim и fire объекта игрока. Прицеливание работает слегка иначе. Когда клавиша прицеливания освобождается, задается прямое направление (straightforward).

Рис. 13. Подготавливаем функцию прицеливания для игрока

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

Ведем счет

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

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

Рис. 14. Обновление табло

Теперь, когда мяч перемещается мимо вашего оппонента (что не трудно, так как оппонент не движется), ваш счет будет расти, а мяч передаваться оппоненту. Однако оппонент будет просто держать мяч.

Особенности Skyrim

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


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

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

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

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

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


Персонаж-пасхалка, которого можно встретить во многих частях The Elder Scrolls. Все его реплики отсылают к этой или другим играм серии.

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

Мир TES V: Skyrim такой живой, потому что за каждым углом вас ждёт какое-то событие, книга, записка, просто интересное место. Что это будет? Палатка на берегу реки, в которой лежат два спальных мешка, усыпанные цветами? Или, может, затонувшая тюрьма с призраками заключённых?

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

Именно в этом всё и дело: мир живой, потому что в нём много всего. И всё это расставлено не там, куда вы пойдёте. Наоборот, оно может быть там, куда бы вы точно не заглянули. Многие игроки никогда и не заглянут, но тот, кто проведёт в игре действительно много времени, узнает, насколько живой этот мир — даже тогда, когда никто не смотрит.

Заключение

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

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

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

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

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

Adblock
detector