ASCII City
Solo developer Grow Now! Games has released a playable browser build of its walkable ASCII cyberpunk city

Grow Now! Games has put a playable browser build of its walkable ASCII cyberpunk city online, running on a 283KB Rust WebAssembly engine feeding a WebGL renderer. The build is accompanied by a second YouTube video, ASCII City Update: Interiors, Elevation & Skyscrapers, following the original video which has gained over a million views and 9,000 comments.
Technical Details
The city is built using a 283KB Rust module and two compiled shaders. According to the source, a page fetches ascii-city-engine_bg-DqjAhqbp.wasm, a 283KB module that reserves 1,152KB of linear memory at startup. The engine version is reported as 0.1.0 when instantiated outside the browser.
Rendering and Performance
The renderer requests a WebGL context and compiles a vertex and fragment shader pair. Characters are drawn once each into an atlas canvas with fillText, cached per character-and-color combination, uploaded to the GPU with one texImage2D call, and then drawn as textured quads with six vertices apiece. The performance of the city varies depending on the device, with desktop sessions rendering 180 columns by 80 rows, or 14,400 character cells, in 10px Consolas at nine pixels per row.
Comparison of Device Performance
The following table compares the performance of the ASCII city on different devices:
| Device | Columns | Rows | Character Cells |
|---|---|---|---|
| Desktop | 180 | 80 | 14,400 |
| Touch devices | 96-168 | 48 | varies |
Developer Background
Grow Now! Games described the original demo to PC Gamer as having no Unity, no Unreal, no 3D models, textures, or shaders. The developer has also worked on other projects, including a first-person Backrooms game for the 1994 Sega 32X and a multiplayer Doom tribute. The ASCII city is a testament to the developer's ability to create complex and engaging environments using limited resources. The city's character grid is redrawn using image models into full-motion visuals, similar to Thunder Lizard, an ASCII roguelike, which has had its character grid redrawn by image models into full-motion visuals at around 10 FPS. According to Tom's Hardware, the developer's use of Rust and WebGL has allowed for a high level of performance and detail in the city, with the vertex buffer preallocating 2.76MB and doubling when a frame overruns it.





