
Разработчик-одиночка Grow Now! Games продолжает работу над необычным интерактивным городом в стиле киберпанка, построенным практически целиком из ASCII-графики. После первого ролика, собравшего более миллиона просмотров и около 9000 комментариев, автор выпустил обновленную демоверсию, которую теперь можно запустить непосредственно в браузере.
Несмотря на минималистичный внешний вид, это не просто статичная демонстрация. Город генерируется процедурно и включает здания разной высоты, фасады, окна, освещение, интерьеры и другие элементы окружения. В новом видео разработчик как раз показал дальнейшее развитие небоскребов и внутренних помещений.
В основе проекта лежит собственный движок, написанный на Rust и скомпилированный в WebAssembly. Его основной модуль занимает всего 283 КБ, а генерацией города занимаются отдельные системы, отвечающие за мир, население, здания и интерьеры.
За вывод ASCII-графики отвечает WebGL. Вместо традиционных трехмерных моделей и текстур движок формирует атлас символов, загружает его на GPU и затем отображает необходимые знаки как небольшие текстурированные четырехугольники. В настольной версии на экране одновременно может находиться сетка размером 180 × 80 — около 14 400 ASCII-ячеек.
Разработчик предусмотрел и запасные варианты рендеринга на случай отсутствия WebGL, а для мобильных устройств используется уменьшенное разрешение сетки. Благодаря этому экспериментальный город способен работать непосредственно на веб-странице без установки полноценного игрового клиента.
Особенно примечательно, что проект изначально создавался без Unity и Unreal Engine. Grow Now! Games ранее подчеркивал, что в демоверсии нет привычных 3D-моделей и текстур — визуальный облик города формируется непосредственно из символов.
ASCII-графика существует практически столько же, сколько компьютерные игры, однако подобные проекты показывают, насколько далеко ее можно увести от привычных текстовых рогаликов. В данном случае несколько десятков тысяч символов превращаются в полноценный киберпанк-мегаполис, который можно исследовать прямо в браузере.












