Як розробник ігор для Android, що я маю мати на увазі під час розвитку своєї гри, якщо я коли-небудь хотів перейти гру на платформу на iPhone? Будь-які стратегії, підказки тощо щодо перенесення обох цих мобільних платформ?
Як розробник ігор для Android, що я маю мати на увазі під час розвитку своєї гри, якщо я коли-небудь хотів перейти гру на платформу на iPhone? Будь-які стратегії, підказки тощо щодо перенесення обох цих мобільних платформ?
Відповіді:
Пишіть це на C / C ++ - це найбільше, що ви можете зробити. Обидві платформи підтримують C і C ++, хоча і по-різному. На Android ви будете використовувати NDK. На iPhone його можна скласти разом з кодом Objective-C.
Вам потрібно буде вкласти деякий час, будуючи будівельні ліси навколо коду С / С ++ для кожної платформи. Ви повинні мати можливість бути досить загальним у цій галузі, оскільки це дійсно просто з'єднання функціональних можливостей ОС у ваш ігровий код. Не скупіться в цій галузі, якщо тільки ви не плануєте робити один кросплатформенний проект або не заперечуєте заново винаходити колесо для кожного свого проекту.
Використовуйте OpenGL ES - обидві платформи мають підтримку OpenGL ES. Скористайтеся цим. Це зведе до мінімуму кількість коду, який потрібно переписати. Ви все одно будете мати певні відмінності на кожній платформі, але загалом більша частина вашого коду буде працювати на обох.
Уникайте конкретних API-платформ / мов - це не повинно говорити, але це легко втягнутись у використання класів колекції Java під час роботи в Java. Звичайно, якщо ви дотримуєтесь першого правила вище, ви не будете багато робити на Java. Те ж саме йде і з протилежного шляху - так добре, як і класи Foundation в iOS, якщо ви хочете перенести на іншу платформу, уникайте їх.
Як бачите, є багато чого турбуватися, перейшовши на крос-платформу. Якщо ви маленький інді-розробник, можливо, це навіть не варте вашого часу. Вам доведеться оцінити, чи дійсно ви хочете запекти свій власний слід, щоб ви могли орієнтуватися на кілька платформ. Можливо, варто скористатися тим, що може запропонувати кожна платформа, щоб мати швидший цикл розвитку.
Щасти!
Це буде значною мірою болісний процес, що йде від Java> Objective-C.
Data Driven
Побудуйте гру, яка значною мірою керується даними. Я думаю, що це говорить саме за себе, але цей напрям призводить до меншої роботи, яку потрібно повністю реалізувати.
Високий і щільний
Зберігайте речі дуже маленькими та модульованими. Я кажу це, тому що буде набагато простіше перенести порт, якщо ви зможете легко взяти компонент і реалізувати його просто, протестуйте і повторіть.
Робота на контракті
Грайте у свої картки правильно, і ви можете знати когось, хто може подбати про це за вас. Якщо ви найкращі друзі з розробником iPhone, можливо, ви зможете придбати йому / її якогось д-ра. перець, щоб перенести ваш код.
Використовуйте мультиплатформенний двигун
Якщо проект уже в русі, це не має особливого сенсу. Але якщо ви збираєтеся зробити проект, який ви абсолютно знаєте, що він буде перенесений на інші платформи, то, можливо, варто скористатися наявними технологіями, щоб допомогти скласти ваш світ разом. Unity3D отримає підтримку Android з Unity 3.0.
Перетворення / здригання / інструмент
І найменш улюблена моя рекомендація - ви можете використовувати якийсь інструмент перетворення, щоб принаймні перетворити ваші моделі з Java> C ... Але ... я не схвалюю це.
Якщо ви думаєте про перенесення на iPhone, і ваша гра ще розвивається, тоді перейдіть на C ++, якщо ви ще цього не зробили. Це зробить ваш код значно більш портативним, коли настане час.
Ви збираєтесь додати свої два центи до цієї теми - подумайте, як написати свою гру на мові крос-платформи, як багато хто з інших говорив тут ... але врахуйте C #! Це потужна мова, якою керують і надає безліч чудових функцій, які C ++ не може допомогти в розвитку ігор - і для неї існує чудова бібліотека, відома як MonoGame , яка схожа на XNA, яка працює на всіляких платформах. Починаючи з версії 3.0, на момент написання цього документа можна легко писати повноцінні ігри та переносити на всі мобільні платформи.