REXPaint: Powerful, User-Friendly ASCII Art Editor
gridsagegames.com
gridsagegames.com
The dev is active in the Roguelike Discord server as well. Any interaction I've had with them has always been positive and kind. Cogmind was great to see grow into what it is today.
Even his articles don't mention much about how it all plays out; it seems like he's far more interested in building a roguelike than making a good one (he talks a lot about how it impacts development, but not how it impacts play). But tbf, thats pretty much the starting story of any roguelike's development. I'd definitely start with this guy's resources if I was interested in making one
The gameplay is unique, and much has been written about it, but it's not all in one centralized location like that page, which was easier to put together as simply images for demonstration.
For the other side of things there are many many articles on the blog detailing systems and mechanics and design considerations. Plus there are Steam reviews, which give a pretty clear picture of what people think. This one, and many others, are telling: https://steamcommunity.com/profiles/76561198035898628/recomm...
Also hi :)
(Edit: Oh, and I stopped writing a lot of Cogmind-specific design the articles for the blog in recent years, and some of the writing you might be looking for has gone towards FAQs here: https://www.reddit.com/r/roguelikedev/wiki/faq_friday)
When I finish reading through, you’ve probably got a buy-in out of me; that much thinking has gotta produce something interesting, good or bad ;)
(I'm happy to have started the FAQ series beyond the blog, because it's about so many other devs' RL projects as well, and we can share and learn so much more!)
Font rendering wouldn't even be required. Static bitmap sprite data in a predefined grid cell layout would suffice. With fore and background color altered via fast pixel manipulation using pre-allocated array buffers. Memory usage, on large canvas areas, might be the only prohibitive issue ;)
I use the wonderful Piskel 2D sprite drawing tool. And it can handle sizable frame counts at 1024x1024 resolution.
http://jjclark1982.github.io/rex-viewer/
Adding an editing interface is left as an exercise for the reader.
I've been contributing some code. It's called glyphdrawing.club and is a lot of fun. No colors yet, but they are coming next.
Check it out:
Example output:
https://i.imgur.com/bkwSCEU.png
That looks like a 4 at the end, but it's a 9. A lot of the TDF fonts are a bit crazy.
Better image showing the different colored versions that are stored inside some TDF's:
https://i.imgur.com/6cyjZGi.png
Another example rendered to terminal rather than PNG using Unicode:
https://i.imgur.com/L45U347.png
Although for some bizarre reason, gnome screenshot tool completed changed the colors around.
I tried a few CLI ANSI and ASCII editors on Linux recently, and it was not a great experience. Most are fairly inscrutable with limited documentation, and at least on my OS, some were just plain broken.
Ah, bitrot.
REXPaint also comes with a lengthy manual covering all of its features in detail: https://www.gridsagegames.com/rexpaint/manual.txt
Or is my definition of .NET wrong?
FNT - FONT SELECTION
Notation: (Ps1;Ps2)
Representation: CSI Ps1;Ps2 02/00 04/04
Parameter default values: Ps1 = 0; Ps2 =0
FNT is used to identify the character font to be selected as primary or alternative font by subsequent occurrences of SELECT GRAPHIC RENDITION (SGR) in the data stream. Ps1 specifies the primary or alternative font concerned: 0 primary font
1 first alternative font
2 second alternative font
3 third alternative font
4 fourth alternative font
5 fifth alternative font
6 sixth alternative font
7 seventh alternative font
8 eighth alternative font
9 ninth alternative font
Ps2 identifies the character font according to a register which is to be established.Also, section 8.3.55 and 8.3.56:
8.3.55 GSM - GRAPHIC SIZE MODIFICATION
Notation: (Pn1;Pn2)
Representation: CSI Pn1;Pn2 02/00 04/02
Parameter default values: Pn1 = 100; Pn2 = 100
GSM is used to modify for subsequent text the height and/or the width of all primary and alternative fonts identified by FONT SELECTION (FNT) and established by GRAPHIC SIZE SELECTION (GSS). The established values remain in effect until the next occurrence of GSM or GSS in the data steam.Pn1 specifies the height as a percentage of the height established by GSS
Pn2 specifies the width as a percentage of the width established by GSS
8.3.56 GSS - GRAPHIC SIZE SELECTION
Notation: (Pn)
Representation: CSI Pn 02/00 04/03
No parameter default value.
GSS is used to establish for subsequent text the height and the width of all primary and alternative fonts identified by FONT SELECTION (FNT). The established values remain in effect until the next occurrence of GSS in the data stream.
Pn specifies the height, the width is implicitly defined by the height.The unit in which the parameter value is expressed is that established by the parameter value of SELECT SIZE UNIT (SSU).
Does REXPaint support real-time shared sessions? That's PD's killer feature, watching a skilled artist work from halfway around the world is an amazing experience!