Что лучше для построения игры, Corona SDK или Xcode?

Недавно я посмотрел сайт Bubble Ball, и он говорит, что построено с помощью Corona SDK. Я никогда не слышал о Corona, и, из того, что я читал, он позволяет создавать игры для устройств с очень маленьким кодом. Я не уверен. С чем мне пойти? Xcode или Corona SDK?

EDIT: Чтобы уточнить, я хотел бы знать, что лучше для создания хорошей, солидной игры для iPhone.

Ответ 1

Это действительно вопрос того, сколько риска вы готовы принять.

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

Корона будет писать меньше кода, до 90%. Однако последние 10% могут быть настоящей болью. Если Apple выходит с iOS XXX, и все ломается. Вы ожидаете, что Corona обновит свой SDK до тех пор, пока вы не сможете обновить свое приложение. Если Apple выпустит новую функцию, вы дождитесь обновления Corona, прежде чем сможете ее использовать.

Лично я родной парень XCode. Эти рамки действительно имеют свое место.

Ответ 2

Что лучше для создания хорошей, солидной игры для iPhone?

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

Прошлой осенью после более чем двух десятилетий в качестве программиста я решил изучить Objective-C и Xcode и начать создавать приложения для iPhone. Через несколько недель, пройдя учебники в нескольких книгах и медленно вставая на скорость, я наткнулся на SDK Corona.

Я злился.

Потому что я не хочу КОД, я хочу писать игры. И вот был SDK, который, хотя все еще требовал кодирования, вырезал такой огромный кусок кривой обучения, что для меня и то, что я хотел сделать, имело смысл. (Меня злило, что я "потратил впустую" время, потому что Ansca Mobile не делала достаточно рекламы для меня, чтобы знать о Corona SDK раньше этого времени.)

Игры, которые я хочу написать, - это 2D-игры-головоломки, приключения /RPG и аркадные игры. Если вы хотите сделать что-то, что требует всей мощности, которую вы можете вытащить с устройства, вы, вероятно, НЕ захотите использовать Corona - вы откажетесь от некоторой мощности в обмен на более быстрое и легкое развитие.

Corona SDK использует Lua как язык, который связывает все это вместе, и даже если у вас нет опыта с ним, Lua довольно легко подобрать.

С помощью Xcode/Obj-C вы можете делать все, что пожелает ваше сердце - с помощью Corona SDK вы ограничены тем, что у него есть. Например, в прошлом, хотя AdMob можно было использовать в приложениях Corona, iAds не смог. Включение OpenFeint - это 1-лайнер, но GameCenter недоступен, кроме как через OpenFeint.

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

Итак, несмотря на некоторые ограничения с помощью инструмента, такого как Corona SDK, есть преимущества, которые вы просто не получаете, когда вы "сворачиваете свои собственные".

Жесткие гоночные игры? Шутеры от первого лица? Что-нибудь трехмерное? Corona SDK, вероятно, не для вас.

Но большинство других жанров игры? Я бы не использовал ничего, кроме Corona SDK.

Да, я фанбои.

Джей

Ответ 3

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

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

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

Затем там @Rexeisen указывает на задержки в получении новых функций - хороший момент, чтобы иметь в виду.

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

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

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

Ответ 4

Во-первых, это зависит от того, какую игру вы хотите сделать. Этот выбор подходит только для 2D-игр, так как поддерживается только игра Corona. Если вы хотите сделать 3D-игру, посмотрите в другом месте (например, Unity.)

Во-вторых, по "XCode" я собираюсь интерпретировать ваш вопрос как "cocos2D", потому что мне трудно подумать о причине, по которой вы не будете использовать cocos2D, если вы идете по пути программирования в Objective-C.

Это сказало...

cocos2D - это потрясающая структура и лучшая для использования, если вам нужна гибкость родной библиотеки и/или абсолютно необходимые функции, не поддерживаемые в Corona. Это не случай Objective-C или cocos2D; cocos2D - это библиотека, которую вы используете через XCode и Objective-C.

Corona потрясающе продуктивна и является лучшим инструментом для использования, если ваш проект может быть выполнен в рамках набора функций. И обратите внимание, что обрезка некоторых менее важных функций - это не плохой компромисс, потому что массово ускоренный процесс разработки (например, 10x, серьезно) очень ценен. Даже без учета каких-либо других ярлыков (и есть число) тот факт, что вы программируете в Lua вместо Objective-C, делает разработку на порядок быстрее.


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