Advertisement
  1. Code
  2. Mobile Development

Какую платформу выбрать для вашей следующей мобильной игры?

by
Length:MediumLanguages:

Russian (Pусский) translation by Dmitriy Sirosh (you can also view the original English article)

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

1. Cocos2D

Cocos2d - это свободно распространяемый кросс-платформенный фреймворк с открытым исходным кодом, совместимый со Swift и Objective-C. Он поддерживает iOS и OS X, а также поддерживает Android через Android плагин SpriteBuilder при условии, что код написан на Objective-C. Поддержка Swift для Android находится в разработке.

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

Cocos2D

Управление сценами выполняется с помощью класса CCDirector, который может использовать множество переходов с классом CCTransition. Это обеспечивает работу анимации через класс CCAnimation и действий, таких как перемещение, масштабирование и поворот, с его классом CCAction. Cocos2d поддерживает системы частиц с классом CCParticleSystem и поддерживает тайловые карты с классом CCTiledMap.

Cocos2d также использует OpenGL в качестве движка для рендеринга. В качестве физического движка используется Chipmunk. Если вам нравится Objective-C или Swift, и вы хотите разрабатывать для нескольких платформ (iOS и Android), то Cocos2d это фреймворк который заслуживает рассмотрения.

2. Cocos2d-x

Cocos2d-x - это c++ порт движка Cocos2d, который может компилироваться на многих других платформах. Cocos2d-x поддерживает iOS, Android, Windows Phone, OS X, Windows и Linux.

Cocos2d-x

Cocos2d-x не поставляется с SpriteBuilder. Тем не менее, у него есть интересные проекты, такие как Cocos Creator, которые обеспечивают платформе, редактирование сцены, отладку, предварительный просмотр игры и публикацию на нескольких платформах

3. Unity

Unity - это мобильный игровой движок, поддерживающий C# и UnityScript, язык, разработанный специально для использования в Unity по образцу JavaScript. Движок является кросс-платформенным и может развертываться на многих платформах, включая PlayStation и Xbox. Существует бесплатная версия и профессиональная версия, предлагающая больше возможностей. Более подробная информация доступна на сайте Unity.

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

Unity

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

Unity является мощным движком, когда речь идет о игровых движках. Если вам нужно кросс-платформенное решение, которое имеет возможность работать с широким спектром устройств, и вы предпочитаете программировать на C# или UnityScript, тогда Unity хороший выбор. Еще одна хорошая вещь в Unity - это asset store, в нем можно найти или приобрести ассеты, которые можно использовать в играх.

4. SpriteKit

SpriteKit - это проприетарный 2D движок от компании Apple. Он доступен только для iOS и OS X. SpriteKit поддерживает как Swift и Objective-C, так и их комбинацию.

Управление сценами выполняется с помощью класса SKView и существует множество переходов с классом SKTransition. В основе SpriteKit лежат действия, экземпляр класса SKAction, который используется для перемещения, поворота и масштабирования игровых объектов. Действия также могут использоваться для воспроизведения звуков и выполнения пользовательского кода.

SpriteKit

В SpriteKit есть редактор сцен, в котором вы можете визуально конструировать уровни вашей игры. Также доступен редактор частиц, в котором можно визуально проектировать системы элементарных частиц. Есть несколько готовых систем частиц, таких как пожар и дождь.

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

Если вы привязаны к экосистеме Apple, то SpriteKit очень хороший выбор.

5. Titanium

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

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

Titanium

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

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

6. PhoneGap

PhoneGap позволяет вам используя свои навыки работы с HTML, CSS и JavaScript создать мобильное приложение. Способ его работы заключается в встраивании веб-представления (web view) в приложение и загрузке ваших компонентов в это веб-представление. Это означает, что вы можете использовать Canvas API для создания игр.

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

PhoneGap

По сути, PhoneGap довольно простой. Он принимает приложение, управляемое HTML, и упаковывает его в виде мобильного приложения с помощью веб-представления.

Мы рассмотрим две другие библиотеки JavaScript, которые вы можете использовать для создания Canvas/WebGL игры - это Phaser и CreateJS.

7. Phaser

Phaser - это JavaScript фреймворк с открытым исходным кодом для создания двухмерных игр. Он использует Canvas или WebGL если доступно.

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

Phaser

Для Phaser доступны некоторые плагины, в том числе конструктор систем частиц и плагин Box2D. Если ваш язык JavaScript, то Phaser, в сочетании с PhoneGap, может быть хорошим выбором.

8. CreateJS

CreateJS - это набор из четырех различных библиотек с открытым исходным кодом:

EaselJS - это библиотека, основанная на Canvas API, и она может использовать WebGL, если доступно. TweenJS ориентирован на анимацию элементов, а SoundJS - на воспроизведение звука. И, наконец, последняя, но не менее важная библиотека PreloadJS помогает предварительно загружать ресурсы.

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

CreateJS

Хотя в CreateJS нет многих интерфейсов API, адаптированных к разработке игр, он написан на JavaScript, поэтому вы можете включить любые дополнительные библиотеки JavaScript, которые вы хотите, например, JavaScript порт Box2D. Одна библиотека, которую я успешно использовал в прошлом, это библиотека обнаружения столкновений для EaselJS.

Я написал пару статей о CreateJS на Envato Tuts+. Если вы ищете подробное введение в эти библиотеки тогда возможно вам будет интересно:

9. Unreal Engine

Unreal Engine - это игровой движок, в котором в качестве языка программирования используется C++. Он может свободно использоваться с ограничениями. Для получения более подробной информации, посетите веб-сайт Unreal Engine. Вы можете развернуть свою игру на iOS и Android.

Unreal Engine включает в себя также Blueprint Editor, который позволяет визуально создавать сценарии для приложений без необходимости программирования. Редактор позволяет вам проектировать игровые уровни, добавлять моделирование физических процессов, пользовательский интерфейс, анимацию, визуальные эффекты и многое другое.

Unreal Engine

10. Corona SDK

Corona SDK - это комплект средств разработки программного обеспечения, который использует Lua в качестве языка сценариев. Доступен в Windows и OS X. Вы можете бесплатно разрабатывать свои игры и приложения вместе с Corona SDK, однако Perk, компания, которая приобрела Corona Labs, предлагает корпоративную модель, которая предоставляет доступ к собственным библиотекам/API и некоторым другим функциям. Для получения дополнительной информации о ценах посетите их веб-сайт.

Corona SDK поддерживает экспорт в iOS, Android, Kindle и Windows Phone 8. Экспорт в Windows и OS Х находится в закрытом бета-тестировании и скоро будет.

Corona Labs предлагает некоторые другие привлекательные функции, такие как Corona Editor, плагин Sublime Text, который включает в себя отладчик, автодополнение кода и несколько других полезных параметров. Графический интерфейс Composer GUI, доступен в OS X, предоставляет вам графическую среду, в которой вы можете создавать уровни своей игры и видеть, как объекты взаимодействуют друг с другом с помощью физического движка Corona.

Corona SDK

В Corona SDK используется OpenGL в качестве движка для рендеринга и Box2D для физики. Его физический движок предоставляет оболочку Box2D, что делает его более простым в использовании. Corona SDK содержит более тысячи API, которые вы можете использовать для создания своих игр.

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

К сожалению, у Corona SDK нет возможности создавать спрайт атласы и использовать сложные формы для обнаружения столкновений в физике. Тем не менее, есть несколько отличных сторонних приложений, которые могут облегчить эту боль, например Texture Packer и Physics Editor.

В целом, Corona SDK - отличный пакет SDK для изучения, если вы ищете кросс-платформенное решение и хотите простоту языка сценариев Lua.

11. Gideros

Gideros, как и Corona, использует скриптовый язык Lua. Gideros является бесплатным с открытым исходным кодом и может компилироваться в iOS, Android, Windows Phone, OS X, Windows и Windows RT.

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

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

Gideros Mobile

Gideros, как и Corona, использует Box2D для физики, хотя Box2D API Gideros немного ближе к оригинальному API Box2D и поэтому немного сложнее в использовании.

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

Как и Corona, это отличная платформа, если вы ищете кросс-платформенное решение и хотите использовать простоту языка сценариев Lua.

12. AndEngine

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

AndEngine

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

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

13. libGDX

libGDX - это еще один Java фреймворк для разработки игр. Он кросс-платформенный и может компилироваться в Windows, OS X, Linux, Android, iOS, Blackberry и HTML5. libGDX также использует OpenGL в качестве движка для рендеринга и Box2D для моделирования физики.

LibGDX имеет класс Camera, класс Action для перемещения, масштабирования и вращения объектов и класс ParticleEmitter - для отображения частиц. Он поддерживает тайловые карты с помощью класса TiledMap, которые можно использовать с тайловым редактором.

libGDX

LibGDX поставляется с некоторыми дополнительными инструментами, такими как упаковщик текстур, редактор частиц и генератор растровых шрифтов.

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

Заключение

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


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.