The focus this week has been on ASCII Mode (really CP437 mode, but that doesn’t run off the tongue as nicely). I remain adamant that I’ll support both 3D and ASCII; ASCII really helps in development, and honestly I prefer to play a lot of games that way. 3D draws in the peeps and makes the barrier to entry easier.

  • Implemented a CP437 terminal, fully scalable (it shares zoom level with the main renderer). So you can zoom in and out to your heart’s content, and the image scales appropriately for your monitor resolution. No more tiny glyphs on a 4k monitor!
  • Added an option to World-Gen to start in ASCII mode. This lets you benefit from the lighter system requirements – it uses a gigabyte less RAM staying in ASCII mode!
  • Fixed up the menu option to switch modes; you can go back and forth as much as you want.
  • Got the terrain ASCII render system working. It’s fast even when I don’t re-use previous frames’ data. 🙂
  • Got renderables for characters, items, etc. working.
  • Got building rendering working, except for a few that are lacking data – and added a warning to tell me what to fix.
  • Mouse-picking in ASCII mode works once more.
  • Implemented the cursors system for ASCII mode.

The end result is that you can play in ASCII mode! Yay! There’s still a bunch of ASCII-mode tweaking to do, but it’s playable and looks ok; it won’t take long to make it look GREAT. 🙂

Here is a side-by-side screenshot of the two modes. I’ll be working on colors (they are on some defaults right now, and some of the open areas of exposed rock look awful), re-enabling “peer down” (where an open space tile shows you the tile underneath it, darkened) and fixing up some colors – but the basics are there. I’ll probably also take a stab at ASCII lighting. Right now, I feel like the ASCII mode is shouting at me too much – so it’ll be toned down quite a bit.

That was the last big sticking point on the engine rewrite, so I’m happy to announce that the results are now merged into master and I’ll be resuming nightly builds in the next few days. It really is a HUGE relief to be out of the moderngl2 branch and back to real development!

Last-minute addition: I’ve also (just) started working on making the UI more usable. I integrated imgui_tabs from Scott Mudge (github), and started using columns properly. The unit list page now looks like this.

Side by side – 3D and ASCII

Tabbed UI