Я не программист, но хочу разрабатывать игрушки и программы для iPhone. Пытался понять Objective C, просто С, С++. Все они показались жутко сложными, с кучей лишних вводных (на мой обывательский взгляд, не принимайте близко к сердцу). Пару дней назад наткнулся на Corona SDK и прифигел, как все просто. Посмотрев три урока, смог написать простенькую программку, выводящую на экран задуманную композицию из слоев графики и текста. Как я понял, в этом заслуга языка lua.
Собственно вопрос: насколько серьезен этот язык и Corona SDK, чтобы выпускать полноценные игрушки, адекватно работающие на iPhone? Понятно, что производительность его ниже более низкоуровневых языков (например родного Objective C), но насколько?
Просьба отвечать только тем, кто имеет опыт написания на lua серьезных программ.
Использую Corona SDK — продукт очень хороший, пользуйтесь — не пожалеете. Много качественных приложений уже сделали.
Продвинутых фич, конечно, не хватает, но они и нужны далеко не всем. Команда активно развивает SDK каждый день, отзывается на багрепорты и фичереквесты. Дружелюбное комьюнити.
Альтернатива Moai SDK.
Офигенный язык. Очень удобная работа с таблицами, что логично, ибо он из этого вырос. Очень хороший инструмент для перелопачивания данных. Плюс язык сам по себе довольно современный — функциональный стиль, замыкания — все есть. Стандартная библиотека бедновата, но это тоже довольно логично, обычно язык используется как дополнительный скриптовый.
Используется как дополнительный скриптовый, откуда стандартная библиотека расширяется хост-языком естественным образом и поэтому это обычно не проблема.
То что он офигенный я уже увидел. :) Вопрос в том, насколько он годится в качестве единственного полноценного языка, чтобы на нем в Corona SDK написать полноценное приложение, которое не будет тормозить и жрать батарейку аки зверь?
ИМХО
Проверить движок можно (в порядке приоритета):
1) Посмотреть, что уже реально вышло и доступно в AppStore
2) Написать на нем прототип вашей игры (что вы и сделали)
3) Полазить по форумам и посмотреть количество негатива (именно негатива)
Второстепенные критерии движка:
* Насколько популярен движок и насколько сложно найти специалистов для работы с ним
* Цена
* Как долго вы планируете использовать данный движок (на один проект на несколько на всю жизнь)
* Наличие платных и бесплатный плагинов
* Комьюнити
Спасибо за развернутый ответ. Посмотрю все что рекомендуете. «Как долго вы планируете использовать данный движок (на один проект на несколько на всю жизнь)» — это главный вопрос. Если я буду знать lua и Corona SDK от и до, потом упрусь в его ограничения, нужно будет учить другой язык. Это возможно будет проще с опытом программирования, но с другой стороны будет многое бесить, что делается сложнее, чем в lua.
У всех «не компилируемых» движков есть одна проблема — это поддержка нативных возможностей и сторонних фичей.
Понятно, что например Game Center должен быть во всех движках, но
если вам вдруг понадобится AdMob, то его вы можете не найти в текущей версии движка. (Это пример, я не проверял)
На вскидку, пару примеров того чего может не быть в движке (API движка не позволяет):
* Вибро
* Проигрывания музыки из плейлиста
* AdMob
* Геолокации
* Камеры
Вот в том-то и дело, что большинство используют их для каких-то надстроек, плагинов, интерфейсной части программ (например в Lightroom), а так чтобы от и до — знаю только один пример игры, которая была две недели на первом месте в бесплатных программах в американском App Store.
И еще вопрос ламера — можно ли писать игру на lua и особо чувствительные куски писать на более производительных языках?
Да, для изменяемой/настраиваемой части, но важной и работающей в самых внутренних циклах.
Ваш СДК наверняка написан на среднеуровневом языке с ЛУА в качестве скриптового входа.
Можно, и это как мне кажется довольно типичное поведение.
Это заслуга Corona. Сам язык в первую очередь скриптовый, один из лучших в этой области.
Как главный язык, кто-то что-то ковыряет (например github.com/ignacio/LuaNode), но подозреваю, больше в порядке эксперимента.
Еще про luajit можно почитать.
Кстати говоря, язык Lua используется для создания, так называемых, аддонов для World of Warcraft :)
Я переписывал себе один аддон с новой версии игры (вотлк) на старую(тбк) — проблем не вызывало, несмотря на то, что языком я не владел вообще.