You can now play DOOM in modern terminals like Ghostty, Kitty and WezTerm:
While the doom engine is still C (that might eventually change!), there’s plenty of Zig in the project.
In particular, it’s a showcase for the awesome libvaxis TUI library, the Zig build system, and the performance of Ghostty (a terminal written in Zig).
Thanks to @rockorager for making additions to how images are transmitted over the Kitty graphics protocol (and a bunch of other helpful input). Mitchell made Ghostty even faster by SIMDifying the base64 decoding of images.
The original build system had some pain points, but after moving that to zig build people are reporting that it just builds. Even on Windows… (though no Windows terminal can play the game yet.) It also helped to remove the dependency on SDL by integrating miniaudio.
Yes I do actually, I didn’t even think about that. I know I’ve had similar trouble with it in the past, I’ll try it soon outside of tmux and see how it goes
I just tried export TERM=screen-256color from an existing tmux session, as well as a new one, with the same results. Not sure if I need to change my actual .tmux.conf or not but let me know if there’s anything else I can try!
Sorry for the terseness in my original comment – I was falling asleep. I checked and I have the following in my tmux.conf (including that weird comma), maybe this could work for you:
set -s default-terminal "xterm-kitty"
set-option -sa terminal-features ',xterm-kitty:RGB'
I need to make some changes to libvaxis to support kitty images in tmux. There is a passthrough mode, but libvaxis needs to print the proper placeholder characters where the image should be - I haven’t implemented that yet.