

It’s a bit awkward posting the original FAQ Fridays text since it praises libtcod so highly and I’m the maintainer of libtcod and python-tcod. Previously there used to be times where I was hesitant about the quality of tcod and would suggest alternatives such as BearLibTerminal, but it seems BearLibTerm has long gone dormant while I continue to maintain and improve tcod. Lately I’m more proud of my own contributions to the library.
Still, even with libtcod available it’s not unusual to see people to use the heavily archaic Curses or write their own console emulator in SDL.
Curses has always been a weird choice for a game due to its weird API for things such as color pairs to the point where even ANSI escapes are preferable to Curses, but escapes alone don’t solve some of the unusual quirks of terminal handling. I never got a chance yet but I would’ve liked to look into Notcurses more as an alternative.
Rust is also something I’ve wanted to try but never got around to. All of my libraries are written in C and those are more easily ported to Python than Rust. So I end up using Python most of the time.
For writing a game engine from scratch, I think any Modern ECS library (not a Minimal ECS library) is ideal to work with. Any future C++ project I make will be using Flecs in spite of its harsh learning curve. For Python projects, I ended up writing tcod-ecs due to no other Python libraries supporting entity relations at the time.

Some geographic regions have gloomy light blue Novembers. December at this location would be a lot more hazy and white.