{"id":1735,"date":"2015-07-14T11:16:04","date_gmt":"2015-07-14T03:16:04","guid":{"rendered":"http:\/\/www.gridsagegames.com\/blog\/?p=1735"},"modified":"2018-01-10T14:14:19","modified_gmt":"2018-01-10T06:14:19","slug":"readable-text-fonts-roguelikes","status":"publish","type":"post","link":"https:\/\/www.gridsagegames.com\/blog\/2015\/07\/readable-text-fonts-roguelikes\/","title":{"rendered":"Readable Text Fonts for Roguelikes"},"content":{"rendered":"<p>There&#8217;s a reason &#8220;terminal&#8221; fonts are a standard for traditional roguelikes even today. Certainly tradition plays a part, but even more importantly, they&#8217;re designed to be highly readable.<\/p>\n<p>Last year while still in pre-alpha Cogmind received a <a title=\"Cogmind Fonts\" href=\"http:\/\/www.gridsagegames.com\/blog\/2014\/09\/cogmind-fonts\/\">huge influx of font bitmaps<\/a> to support different resolutions, in some cases with multiple variants at a given size. At that point the goal was to make sure Cogmind had a unique look that was also consistent regardless of resolution (or as close as possible given the difficulty of pixel-perfect scaling that maintains proportionality).<\/p>\n<p>With the alpha launch behind us and hundreds of players diving into the game and providing feedback, the first few releases were\/are aimed at quality of life enhancements--tweaking the interface and adding optional features that will improve the experience for even a minority of players (because the options menu is not <a title=\"Options Menu (old version)\" href=\"http:\/\/www.gridsagegames.com\/cogmind\/game\/cogmind_options_menu.png\">already crowded enough<\/a> =p).<\/p>\n<p>By far the top request is to improve readability. A majority of players enjoy and prefer the Cogmind&#8217;s original font, but a number of factors contribute to poor readability for some players:<\/p>\n<ul>\n<li>The UI is extremely dense, and at minimum must be able to display an 80&#215;60 grid of characters, thus screen resolution places an upper limit on the size of each character.<\/li>\n<li>Modern high-DPI monitors squeeze the grid cells into an even smaller physical space, making the native fonts hard to make out since in many cases they rely on lines with a pixel width of only <em>one<\/em>.<\/li>\n<li>For the same reason, Cogmind&#8217;s native fonts don&#8217;t usually stream or record very well--video compression tends to reduce single-pixel lines to almost nothing.<\/li>\n<\/ul>\n<p>We can resolve these issues for most players by providing thicker fonts with more even pixel distribution, as well as multiple options at each size to suit slight differences in personal preference. These alternate fonts will lack the thematic appeal that we get with Cogmind&#8217;s sci-fi font, but accommodating players is more important--readability trumps all in a text-heavy game. Besides, they&#8217;re optional :)<\/p>\n<p>With single words and short phrases readability is less of an issue. The biggest problems arise when reading log text, hacking results, and dialogue where there are full sentences and paragraphs to parse, so that&#8217;s the best test of readability and what I show below.<\/p>\n<h2>Four New Typefaces<\/h1>\n<h3>Typeface #1: X11<\/h2>\n<p>This font comes from a common Linux windowing system. You can find a huge collection of bitmaps and even the source code for producing them <a title=\"Universal Graphics Library for 8 Bit Embedded Systems\" href=\"https:\/\/code.google.com\/p\/u8glib\/wiki\/fontsize\">here<\/a>. Of the new fonts, X11 might be the easiest to read overall as it&#8217;s the most traditional of the bunch.<\/p>\n<div id=\"attachment_1745\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_x11.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1745\" class=\"size-full wp-image-1745 \" title=\"Cogmind New Fonts (X11)\" alt=\"cogmind_newfont_x11\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_x11.png\" width=\"560\" height=\"668\" \/><\/a><p id=\"caption-attachment-1745\" class=\"wp-caption-text\">New X11 fonts.<\/p><\/div>\n<h3>Typeface#2: Terminus<\/h2>\n<p>For Cogmind, I like Terminus for its natural readability with a shape that still preserves some sci-fi flavor. See many more sizes and optional features of this typeface <a title=\"Terminus Font Home Page\" href=\"http:\/\/terminus-font.sourceforge.net\/\">here<\/a>.<\/p>\n<div id=\"attachment_1746\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_terminus.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1746\" class=\"size-full wp-image-1746 \" title=\"Cogmind New Fonts (Terminus)\" alt=\"cogmind_newfont_terminus\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_terminus.png\" width=\"560\" height=\"795\" \/><\/a><p id=\"caption-attachment-1746\" class=\"wp-caption-text\">New Terminus fonts.<\/p><\/div>\n<h3>Typeface #3 \/ 4: Proggy \/ Dina<\/h2>\n<p>These fonts will be familiar to many programmers, as they&#8217;re commonly used for coding. Programming fonts are a natural place to look for good roguelike fonts, since they&#8217;re both monospaced and designed to facilitate character recognition.<\/p>\n<div id=\"attachment_1749\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_source_game_loop.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1749\" class=\"size-full wp-image-1749 \" title=\"Cogmind Source: Game Loop\" alt=\"cogmind_source_game_loop\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_source_game_loop.png\" width=\"560\" height=\"638\" \/><\/a><p id=\"caption-attachment-1749\" class=\"wp-caption-text\">Cogmind&#8217;s entire engine loop as seen in the IDE (VS2010). I&#8217;ve been using Dina as my coding font for about eight years.<\/p><\/div>\n<p>Adding these to the game was simply to provide some extra options at smaller resolutions, which they work best at. You can see the full selection of Proggy\/Dina fonts <a title=\"Proggy\/Dina Fonts\" href=\"http:\/\/upperbounds.net\/index.php?menu=download\">here<\/a> (all by the same author).<\/p>\n<div id=\"attachment_1747\" style=\"width: 470px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_proggy.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1747\" class=\"size-full wp-image-1747 \" title=\"Cogmind New Fonts (Proggy)\" alt=\"cogmind_newfont_proggy\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_proggy.png\" width=\"460\" height=\"462\" \/><\/a><p id=\"caption-attachment-1747\" class=\"wp-caption-text\">New Proggy fonts.<\/p><\/div>\n<div id=\"attachment_1748\" style=\"width: 470px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_dina.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1748\" class=\"wp-image-1748 \" title=\"Cogmind New Fonts (Dina)\" alt=\"cogmind_newfont_dina\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfont_dina.png\" width=\"460\" height=\"243\" \/><\/a><p id=\"caption-attachment-1748\" class=\"wp-caption-text\">New Dina fonts.<\/p><\/div>\n<h3>Options Menu<\/h2>\n<p>As of Alpha 2, Cogmind comes with a mind-boggling 82 font bitmaps.<\/p>\n<div id=\"attachment_1750\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfonts_options.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1750\" class=\"size-full wp-image-1750 \" title=\"Cogmind New Fonts (options menu)\" alt=\"cogmind_newfonts_options\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2015\/06\/cogmind_newfonts_options.gif\" width=\"560\" height=\"700\" \/><\/a><p id=\"caption-attachment-1750\" class=\"wp-caption-text\">Showing some of the fonts in action via the options menu.<\/p><\/div>\n<p>For comparative images showing all the new fonts grouped by size, see <a title=\"GSG Forums: New Cogmind Fonts\" href=\"http:\/\/www.gridsagegames.com\/forums\/index.php?topic=165.0\">this forum post<\/a>. (There are also many larger sizes available for resolutions at and above 2K, though all are derived from fonts shown above.)<\/p>\n<h2>More Possibilities<\/h1>\n<p>The above fonts seem to have solved the readability issue for most players, at least those for whom their resolution-limited size is not simply too small regardless of font (and therefore requiring a larger screen to select greater sizes).<\/p>\n<p>More typefaces can easily be added, though I think the current set combined with what was already there is enough to cover most needs. (The new fonts come with Alpha 2, to be released soon, though they were pre-released separately weeks ago in the forum post linked above.)<\/p>\n<p>For those of you developing your own roguelikes, another nice option to consider is an amazing customizable font named <a title=\"Input: A customizable coding font\" href=\"http:\/\/input.fontbureau.com\/preview\/\">Input<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p><em>This is the fourth in a four-part series on roguelike fonts:<\/em><\/p>\n<ul>\n<li><em>Part 1: <a title=\"Fonts in Roguelikes\" href=\"http:\/\/www.gridsagegames.com\/blog\/2014\/09\/fonts-in-roguelikes\/\">Fonts in Roguelikes<\/a><\/em><\/li>\n<li><em>Part 2: <a title=\"Font Creation\" href=\"http:\/\/www.gridsagegames.com\/blog\/2014\/09\/font-creation\/\">Font Creation<\/a><\/em><\/li>\n<li><em>Part 3: <a title=\"Cogmind Fonts\" href=\"http:\/\/www.gridsagegames.com\/blog\/2014\/09\/cogmind-fonts\/\">Cogmind Fonts<\/a><\/em><\/li>\n<li><em>Part 4: Readable Text Fonts for Roguelikes<br \/>\n<\/em><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>There&#8217;s a reason &#8220;terminal&#8221; fonts are a standard for traditional roguelikes even today. Certainly tradition plays a part, but even more importantly, they&#8217;re designed to be highly readable. Last year while still in pre-alpha Cogmind received a huge influx of font bitmaps to support different resolutions, in some cases with multiple variants at a given [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1745,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[91],"tags":[140,4,89,46],"class_list":["post-1735","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev-series-fonts","tag-accessibility","tag-cogmind","tag-fonts","tag-roguelikes"],"_links":{"self":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts\/1735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/comments?post=1735"}],"version-history":[{"count":4,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts\/1735\/revisions"}],"predecessor-version":[{"id":1765,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts\/1735\/revisions\/1765"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/media\/1745"}],"wp:attachment":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/media?parent=1735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/categories?post=1735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/tags?post=1735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}