Высокопроизводительный движок ActionScript для мобильных игр для iOS - PullRequest
2 голосов
/ 14 июня 2011

Существует ли существующий игровой движок AS3, оптимизированный для работы с помощью мобильного упаковщика Adobe для iOS.

В настоящее время я экспериментирую с Flixel , поскольку это действительно отличный игровой движок AS3, но на моем iPhone 4 он работает довольно медленно (поэтому я уверен, что производительность на медленном оборудовании будет ужасной). Я заинтересован в том, чтобы оптимизировать его, чтобы он хорошо работал на iOS.

Также я мог бы просто отказаться от AS3 на iphone, если производительность просто не может быть достигнута, и вместо этого выбрать что-то вроде Cocos2D или какой-нибудь родной движок Objective-C. Просто приятно иметь возможность интегрировать некоторые продвинутые вещи из AS3, такие как физические движки, RTMFP (многопользовательские библиотеки UDP в реальном времени и т. Д.).

Возможно, стоит использовать что-то вроде Haxe для кросс-компиляции AS3 в C ++ и использовать это как мост (но я бы лишился некоторых замечательных возможностей Flash Player VM).

Уже есть несколько портов Objective-C двигателя Flixel.

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Я вижу, к чему идет ваш вопрос,

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

Что яЭто означает, что если вы пишете игру, возможно, вам следует сосредоточиться на самой Игре, Особенности + Полировка, а не бороться с мобильным упаковщиком Adobe для iOS, который, безусловно, имеет переменные, которые вы не можете контролировать.

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

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

Так что в заключениеЯ рекомендую использовать Objective-C, C или C ++, если вы хотите производительность.Я предпочитаю использовать последние 2, потому что вы можете легко добиться переносимости и производительности для действительно ресурсоемких ресурсов, и при этом кодировать модули «более высокого уровня» с помощью Objective-C.

Существует также Native Objective-Cигровой движок в разработке, основанный на Flash API, я думаю, в основном из-за графического материала, но на него стоит взглянуть.Это с открытым исходным кодом, и сейчас он находится в закрытой бета-версии, но, возможно, стоит взглянуть:

Pixel Wave

Чтобы проверить последнюю версию, вы должны[contact] [2] ребята, чтобы они давали вам доступ к приватной бете, сделайте это на contact AT pixelwave.org

Я думаю, что важно сказать, что я вНИКАК не связан с этими ребятами, но Pixel Wave - это проект, за которым я следил некоторое время, он также имеет модуль векторного рисования, и если вы посмотрите на их форумы, вы увидите некоторые игры, которые на самом деле есть в AppStoreкоторые сделаны с двигателем.

Удачи!

0 голосов
/ 04 июля 2012

Я также искал хороший игровой движок для iOS и Android без необходимости писать его для каждой платформы и с хорошей производительностью.

Этого не так просто добиться, я видел несколько хороших (я не смею говорить, хороших) игровых движков во флэш-памяти, которые вы могли бы использовать для мобильных устройств, вы можете найти список на flashrealtime.com

http://www.flashrealtime.com/flash-game-library-engine-list/

Как вы можете видеть, некоторые известные (но простые) игры были разработаны с некоторыми из этих движков.

Другое решение, к которому я пришел, - использование мобильного кросс-платформенного SDK, такого как coronaSDK

.

http://www.coronalabs.com/products/corona-sdk/

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

Но, возвращаясь к первому ответу, если ваша цель (или ограничение) - максимальная производительность, вы должны кодировать на родных языках (Obj-C / C ++ для iOS, Java для Android).

Также я видел некоторые улучшения при включении / отключении обработки графического процессора (это зависит от того, как реализован конкретный движок)

Например: если графика обрабатывается в основном как растровые изображения, я думаю, что включение графического процессора будет загружать производительность, в отличие от того, когда вы используете в основном векторную графику, процессор работает лучше (это только то, что «я думаю», основываясь на том прочитал, я на самом деле не пробовал это с играми, только приложения)

Надеюсь быть полезным!

...