Спостерігати за тим, як повномасштабна стратегія в реальному часі 2003 року працює нативно на iPhone, — це відчуття, яке здається дещо неправильним у найкращому сенсі цього слова. Танки котяться пустельними картами. Генерали віддають накази. Лінії постачання простягаються через сенсорні екрани, яких не існувало на момент компіляції оригінального коду. І все ж, ми тут. Аммар Реші (Ammaar Reshi), який очолює напрям продукту та дизайну в Google AI Studio, нещодавно взяв Command & Conquer: Generals Zero Hour і створив нативну версію для iOS приблизно за той час, що витрачається на перегляд цілого сезону серіалу. Проєкт не покладається на трюки з емуляцією. Він працює на Apple silicon, використовує Metal і ставить серйозні питання про те, скільки застарілого програмного забезпечення могло б піти тим самим шляхом.

Що саме було створено

Це не оболонка (wrapper). Гра не працює всередині емулятора, який вдає з себе Windows PC двадцятирічної давнини. Гра компілюється під ARM64 і взаємодіє безпосередньо з графічним API Metal від Apple. Ця відмінність має значення. Емуляція коштує кадрів. Вона коштує заряду батареї. Вона нашаровує абстракцію на абстракцію, поки мобільний чип не витрачає більшу частину своєї енергії на переклад старих інструкцій замість того, щоб малювати вибухи. Порт Реші оминає все це.

Оригінальна гра вийшла на DirectX 8 — графічному конвеєрі Microsoft, який з'явився за кілька років до iPhone. Змусити ці команди рендерингу працювати на Metal — це не просто завдання «знайти та замінити». DirectX 8 та Metal по-різному організовують пам'ять. Вони по-різному обробляють шейдери. Вони передбачають різні архітектури апаратного забезпечення. Реші довелося пропустити графіку гри через ланцюжок проміжних перекладів, перетворюючи застарілі виклики DirectX на щось, що Metal міг би зрозуміти, не порушуючи при цьому базову візуальну логіку. У результаті доступні всі режими: Campaign, Skirmish та Generals Challenge, з кастомним сенсорним керуванням, прив'язаним до інтерфейсу. Ви можете будувати бази та запускати scud-шторми великими пальцями.

Є певні обмеження. Тривалі ігрові сесії на iPad можуть призвести до вильоту додатка при різкому зростанні навантаження на пам'ять. Перші нативні порти часто мають такі «шрами», і це чесне нагадування про те, що кілька годин налагодження за допомогою ШІ не можуть повністю оптимізувати патерни завантаження асетів, що формувалися протягом двох десятиліть. Проте основний рушій працює самостійно.

Робочий процес: Claude Code, Fable 5 та сорок хвилин

Швидкість — це головне, але саме механізми, що стоять за нею, мають привернути увагу кожного розробника. Реші використовував Claude Code від Anthropic разом із інструментом під назвою Fable 5. Початкова збірка зайняла близько сорока хвилин. Налагодження та вдосконалення розтягнулися ще на кілька годин. Це і є весь термін реалізації проєкту.

Подумайте, що це замінює. Ручний порт такого масштабу зазвичай починається з того, що програміст витрачає дні лише на мапування оригінальної системи збірки. Потім іде переписування рендерера. Потім переклад шейдерів. Потім коригування архітектури під ARM64. Потім обробка введення, аудіо, управління пам'яттю та тисячі дрібних проблем, які роблять застарілий код таким ворожим до нових платформ. На цей процес витрачаються місяці. Реші стиснув його до одного дня, дозволивши агентному ШІ-інструменту взяти на себе рутинну роботу з перекладу, поки він керував процесом.

Інтенсивність роботи була помітна навіть у витратах. Реші вичерпав усю свою квоту Claude Max за два дні роботи. Кожен, хто бачив, як зникають його API-кредити під час тривалої сесії кодингу, знає це відчуття. Різниця тут у тому, що результатом споживання ресурсів став нативний порт, готовий до релізу, а не жменька експериментальних скриптів.

Варто також звернути увагу на професійну сюжетну лінію. Реші працює в Google DeepMind. Він міг би скористатися власними моделями Google. Але не став цього робити. Він обрав Claude від Anthropic, тому що той підходив для завдання. У своїх коментарях до проєкту він чітко дав зрозуміти, що можна поважати конкурентів, зосереджуючись на створенні найкращого можливого рішення. Така позиція стає загальною. Інженери на передовій галузі стають модельно-агностичними. Вони ставляться до інструментів ШІ так само, як до мов програмування чи хмарних провайдерів: обирають той, що відповідає завданню, а не той, що вказаний на бейджику компанії.

Чому нативний переклад усе ще