Пару дней назад я наткнулся на пост на HN про игру Tron Light Cycle. Если вы не знаете, что такое Light Cycle — позор вам.

Если вы родились после 2000 года, посмотрите этот клип: Tron Legacy Light Cycle.
Если вы из более старшего поколения, скажем, после 1970-х, то вам сюда: Tron Light Cycle.
А если вам сейчас лет 10, то подойдет вот это: Tron: Ares (Trailer).
Чтобы дать немного контекста: Light Cycle battle — это вымышленная компьютерная игра, впервые показанная в фильме Tron 1982 года — первом фильме, где массово использовалась компьютерная графика. Для старожилов Light Cycle имеет и ностальгическую, и эмоциональную ценность. Это не сложная игра.
В оригинальном фильме Light Cycle показана в 2D, но позже главный герой попадает внутрь игрового мира и играет в нее уже в 3D. Механика проста и напоминает ту самую змейку в которую мы играли на Нокиях, только цель не в том, чтобы отрастить хвост, а чтобы пережить соперников.
Естественно, появилось бесчисленное количество спин‑оффов. Самый известный из них — http://www.gltron.org/, опенсорсная 3D игра с сетевым режимом, породившая тысячи клонов и вдохновившая массу разработчиков. Armagetron, Gladitron и многие другие последовали в мир открытого ПО. Построить Tron Light Cycle — это как сделать тетрис. Сложно испортить.
Но кое‑кто постарался.
Я увидел этот пост на HN пару дней назад. Смотрим.
Вся игра закоммичена одним куском. Причем в сообщении к коммиту утверждается, что все это написал Claude. Кто‑то явно жаждет внимания на Hacker News. Tortured‑Metaphor называет себя геймдев‑студией с «впечатляющим» портфолио из пяти игр, сгенерированных Claude, одна из которых набрала больше 35 звезд.
Собственно говоря, если посмотреть на все посты этого кета на HN, то можно увидеть, что последний месяц своей жизни он посвятил пощенью нагенерированого кода на HN.
Ну ладно, я установил игру. Точнее — собрал и запустил через Cargo. Давайте забьём на тот факт, что игры должны быть как‑то пользованы не‑программистами. Ну да ладно, игра для программистов. Давайте запустим. После запуска команды сборка заняла 32 секунды. На M3 Pro.
Тридцать две секунды. Для клона ЗМЕЙКИ.
Когда я наконец запустил игру, она упала в режиме человек‑против‑компа. В мультиплеере хотя бы можно было нажать на пару кнопок. После возни я обнаружил что так называемый «AI» на easy и normal он обычно убивает сам себя, делая четыре поворота подряд. На hard вы получаете примерно 10 секунд геймплея, после чего ваш гордый ИИ оппонент идёт делить себя на ноль путём удара бошкой в стену. Один раз компьютер меня обыграл — когда я не жал ни на какие клавиши.
Затем я посмотрел размер папки. 1.36 гигабайта. Это 282 крейта ради запуска. Она стабильно жрет 30% CPU и съедает 300 МБ RAM.
И это преподносится как «простая» игра на Rust.
Извините, но это плевок в лицо Rust.
Rust задумывался как язык уровня C для легковесных и супербыстрых приложений. Как вообще можно раздуть простую 2D игру до 1.3 ГБ исходников, крейтов и билд‑артефактов — без звука, видео и графических ассетов? Такого я бы ожидал от какого‑нибудь проекта на Юнити с катсценами, но не от поломанного клона змейки.
Просто шик. Это писец.
Примерно четыре года назад я видел реализацию 2048 на WPF, которая жрала 300 МБ RAM и занимала полгига на диске. Чтобы доказать обратное, я написал 7-килобайтную ассемблерную версию 2048 для Windows: https://github.com/nurked/2048-asm. (Она прилагалась к статье Трясём стариной или как вспомнить ассемблер, если ты его учил 20 лет назад.)
Мои пятнашки собираются в бинарь на 7 КБ, работают в консоли и использует меньше 32 байт RAM для состояния. Это было просто упражнение — разминка и изучение ассемблера на Windows 11. Да, не идеально оптимизировано, но оно работает, и оно крошечное.
Так что, ради Rust, давайте уважать геймдев. Невозможно написать настоящую игру одним коммитом, притянув сотни крейтов, которые только зря крутят процессор. Единственный плюс этого опыта — напоминание о том, что, может, стоит переключиться в энергетический сектор и начать строить электростанции. При таком количестве бессмысленных вычислений в мире единственное, что нам реально понадобится — это безумное количество энергии, чтобы питать LLM»ы и мусорный код, который они плодят.
Я не говорю «не используйте LLM». Я сам каждый день пользуюсь Claude, ChatGPT, Gemini и Grok. Они реально упрощают кодинг. Но вы все равно должны понимать, что делаете. Нельзя просто сказать Claude «напиши мне игру» и ждать, что она будет работать. Эта игра — все что угодно, только не рабочая.
Автор утверждает, что он программист, с CV и портфолио. Если это так, почему бы не потратить 20 секунд на поиск любого другого подхода к написанию графики?
Тут даже жалко токенов для ЧатГПТ-2. Можно было просто обыкновенным поиском найти решение проблемы. Более того, даже не поиском через гугл. Даже утка‑утка подошёл‑бы. Для клона змейки не нужен полноценный игровой движок. Если очень хочется, можно даже с помощью LLM набросать маленький движок, который просто отслеживает две клавиши и перерисовывает экран.
Кстати, если кому интересно, то вот — упихнули змейку в QR‑код. Там даже несколько вариантов есть для разных платформ и разных размеров куарок.
Вот что было бы действительно круто: клон Light Cycle на Rust, работающий на Vulkan или Metal. Использовать Rust так, как он и задумывался — ради скорости и контроля. Вот это стоило бы постить.Но нет. Вместо этого мы получили AI‑сгенерированный шлак, слитый на HN ради пары апвотов.
Нет, я не шучу, я пошёл строить электростации. Потому что если программирование развивается таким образом, то единственный вариант заработать на всём этом — это строить электростанции. Если у вас есть проекты, которые нуждаются в финансировании за пределами РФ — не шучу, стучите в телегу, ссылка в профиле. Я работаю с группой инвесторов, мы ищем проекты по постройке инфраструктуры, которым нужны деньги.
Комментарии (13)
F6CF
03.09.2025 18:54Вот что было бы действительно круто: клон Light Cycle на Rust, работающий на Vulkan или Metal.
Но ведь оригинальный проект и так использует wgpu, а значит работает поверх vulkan/metal/directx/opengl и wayland/x11/прочих в зависимости от того под что его собирать
Wgpu огромный, но он кроме просто поддержки этих платформ включает в себя компиляторы и трансляторы шейдеров и кучу всего ещё
Сравнение полноценного игрового движка с wpf некорректно
MountainGoat
03.09.2025 18:54Я вчера сбацал лично для себя программку на egui. Две кнопки в окне, обе запускают консольные команды, всё. Собирается релиз с оптимизациями тоже несколько минут, бинарь весит 3 мегабайта. Так что это уже просто база для HelloWorld.
Можно меньше? Можно. На С++ через WinApi. Вот только это нахрен не нужно не разработчику, ни заказчику. Можно вообще жить в пещере, питаться кореньями.
Я тут уже рассказывал про свой скринсейвер. Я захотел сделать себе скринсейвер. Взял конечно Rust. Начал изучать Vulkan. Оказалось, что хотя Rust и имеет крейт для Vulkan, основную анимацию придётся писать на новом для меня языке. Ладно, набыдлокодил что-то. На одном экране работает отлично. Но мне нужно на двух сразу. На двух страшно тормозит. На любом одном окне 5000 fps, на двух сразу - 25. Где-то месяц разбирался, спрашивал народ на форумах. Отвечали в основном в стиле "Нафиг тебе это, возьми Unity, купи 10 плагинов..."
Надоело. Взял Tauri, запустил по веб-движку на каждый монитор, в нём моя анимация на JavaScript. Я его тоже почти не знал тогда. Но: писать удобно, инструкций валом, всё работает так, как написано. В итоге бинарник в инсталляторе весит 1.5 Мб, памяти при работе потребляет 5Мб согласно Task Manager. Ничего не тормозит, fps без Vsync тоже 5000. Много думал.
Octagon77
03.09.2025 18:54Много думал.
Ну и?
Я вот думал мало и подумал так: нормально делают только профессионалы, обычно за деньги. И если человек верно написал что
Rust задумывался как язык уровня C для легковесных и супербыстрых приложений.
то можно предположить, что именно этим профессионалы и заняты по сей день. Ergo, именно это в Rust и будет хорошо получаться. А всё остальное - оперсорсное и коммунальное, так, продукция российского автопрома. А что при этом движение переписывателей на Rust существует и даёт приятные результаты - это близко к чуду, язык действительно зацепил за что-то в душах программистов.
Из того, что имеет выход к широким массам, профессионалы работают в основном над Web. Поэтому и получается, что взял JavaScript в лице Tauri...
Можно меньше? Можно. На С++ через WinApi.
Чисто для полноты, можно и не через WinApi. SDL, например, и не только на C++. А во что выливается это "не только" для разных языков - самому интересно.
Jijiki
03.09.2025 18:54ну текстовый редактор(минимальный, но с подсветкой на С -открыть/закрыть/писать/скролинг курсорный/двигать курсор(почти gap buffer, хотя наверно у меня емуляция gap-buffer)) - блокнот 30 килобайт, 147M 60M select, SDL2, там вся соль вокруг буфера строкового и рендера - нагрузки нету, но на винде не тестил
не на С буфер проще создать
Jijiki
03.09.2025 18:54нет тут момент в каком родителе контексте запуск вулкан контекста, если в вин апи то ответ к 2 моникам в 1 - склейка то это вин апи, опять же моники воткнуты в 1 карту или 2 разные(я пока так подумал) причем у винапи геморный расчет пространства дисплея
тоесть что-то типо 2 моника на 1 буфере наверное
painting-on-a-dc-that-spans-multiple-displays может чтото такое, но вообще щас посмотрел по вулкану и винапи тоже не понял интересно )
QWERTY12349
03.09.2025 18:54Тогда libc выкиньте из своих проектов, а то чёт много весит))
Не умеете работать с языком - ну так не работайте
MinimumLaw
03.09.2025 18:54Нет, я не шучу, я пошёл строить электростации. Потому что если программирование развивается таким образом, то единственный вариант заработать на всём этом — это строить электростанции.
Глубоко. И вполне логично. ЦОДы уже отапливают теплички, так почему бы не предложить следующий шаг - хочешь дома потеплее, смотри побольше на
сиськи икотиков в соцсетях (а еще за это и деньги плати). И, типа, все довольны.Осталось только решить во что вкладываться. ТЭЦ по повесточке не проходят, Солнце слишком требовательно к площади, ветро к условиям, гидро - экологи сожрут, волновая - экзотика, геотермальные далеко от ЦОДов, атомная - свои риски, в первую очередь со стороны ярых поборников демократии во всем мире и их идеалогических противников с террористическими наклонностями.
А если еще дальше - то это чисто эволюционное. Неудачные мутации погибают, удачные развиваются дальше. Из огромного количества бесконечных мутаций рождаются новые виды. Наиболее удачные закрепляются как самостоятельные. Так что лучше запастись поп-корном и просто наблюдать.
Dhwtj
03.09.2025 18:54За что rust обидели?
Ща приду и покараю!
Размер папки билда это не размер приложения
Кривые руки и LLM и что же вы хотите?
Показать вам змейку на андроид на гигабайт? Дело в 3д, ресурсах и криворукости, опять же.
sunUnderShadow
03.09.2025 18:54Даже утка‑утка подошёл‑бы
"DuckDuckGo" теперь буду так называть, спасибо)
andreymal
Я чёт не понял, это к чему? Хелловорлд на wgpu подтягивает 117 крейтов, весит 1.1 гигабайта и компилируется примерно те же полминуты
Nurked Автор
Согласен. Проверил, сам посмотрел. Вы правы. Убрал его куда подальше.
andreymal
Но в любом случае непонятно, зачем считать размер промежуточных артефактов отладочной сборки
Линуксовый бинарник LightCycle, собранный с профилем release и strip="symbols", весит 10 МБ (всё ещё больше чем 7 КБ, но всё-таки)