Fizzter, an organic stub serif font for a counting game

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Fizzter, an organic stub serif font for a counting game
by on (#136783)
Fizzbuzz is a counting game. Before founding Image Stack Overflow, Jeff Atwood discovered that most people who apply for a programming job don't even know how to program fizzbuzz. So somehow I feel the need to prove something to the world. But an NES program that just displays 20 lines of fizzbuzz output is boring. So I might end up making an edutainment game.

Today I started to draw an organic stub serif font, inspired by Filmotype Apache (also called Disney Print, Jester, Stanley, Toledo, and other names) and Bitstream Hank. It's huge for an NES font, so big in fact that letters are 8 to 24 pixels wide. But the whole glyph set fits in 164 distinct tiles according to savtool, and the big fizzbuzz logo is 54 tiles.

Palette: 0f001020 0f1a2a3a 0f172737 0f000000
Re: Fizzter, an organic stub serif font for a counting game
by on (#136802)
Quote:
Fizzbuzz is a counting game. Before founding Image Stack Overflow, Jeff Atwood discovered that most people who apply for a programming job don't even know how to program fizzbuzz.

I'm sorry but I can't belive a second that any of that is true. I'd like to hear the version of people who "failed" the test to know the truth behind this.

My guess is that the guy is either :

1) Asking to use a programming language that is not what most people has previously used, and bitch about them being lost in the syntax for a few minutes
2) Comparing other people's solution with his, and calling any difference a failure (even if the result is the same or if they're different but still solving the problem, i.e. starting at 1 instead of 0 or details like that)
3) Just loves to bash other people and call them retarded because his computer is his only friend

As for complaining that people don't know how to use recursion and how to exchange 2 variables without a temp. variable, well there is no reason to do neither because they both means a lost of efficiency (except tail-recursion that in the best case is the same as a normal loop).

There is an increasing trend in companies to expect to hire only perfect people, and if they decel any sign of weakness they will just say f*** you. But at the same time millions of people are jobless and the governments are struggling to solve the unomployment problem without success. I think they should just force companies to hire the people who are available even if they're not perfect. If they still refuse then they should pay huge fines to the governments to help funding unemployment wages. That would just make sense and solve, at least partially, this problem.

As for the font, I'd love to know how you handled this to fill in a 256-tiles pattern table but you didn't mention that anywhere.
Re: Fizzter, an organic stub serif font for a counting game
by on (#136807)
Bregalad wrote:
tepples wrote:
But the whole glyph set fits in 164 distinct tiles according to savtool

As for the font, I'd love to know how you handled this to fill in a 256-tiles pattern table but you didn't mention that anywhere.

The "savtool" program that ships with my graphics editor to convert a .png file to .sav removes duplicate tiles. Viewing the resultant .sav's pattern table lets me count the distinct tiles at a glance.

Or you could be asking how I arranged for so many duplicate tiles in the first place. It turns out the left half of 'c', 'd', 'g', and 'q' are very similar. So are the tails of 'g' and 'y', the feet of 'h' and 'n', the sides of 'w' and 'v', etc.

[Please keep discussions of the suitability of fizzbuzz for programmer screening in the split topic. --MOD]
Re: Fizzter, an organic stub serif font for a counting game
by on (#136922)
I love the font, I'd be interested in seeing a more fleshed-out charset (I think the font would look really nice on the Genesis, and it would leave plenty of palette entries free to use with other graphics).
Re: Fizzter, an organic stub serif font for a counting game
by on (#136931)
I'm interesting in expanding this should I decide to use this in a project without an all-lowercase design. I know for use on Genesis you probably want capital C, and probably X, Y, and Z for the 6-button pad. I've done ! and ? in my private copy. But what other characters need glyphs first?
Re: Fizzter, an organic stub serif font for a counting game
by on (#136932)
The D-pad (i.e. the four arrows). Well, writing them as words does take up a lot of space...
Re: Fizzter, an organic stub serif font for a counting game
by on (#136939)
Since the Mode button is software addressable, you might want to include a more compact glyph for that than four large uppercase letters (or perhaps a capital M will suffice). Same thing for Start.

My use would most likely be for a demoscene-style production, rather than a game. Hence the request for capital letters, as I think this would make a nice font for a text scroller.
Re: Fizzter, an organic stub serif font for a counting game
by on (#136958)
I'm about 90% through ASCII, with ABCMSXYZ done. You can always draw glyphs for other buttons as needed. Also here's a preview of a bigger version for making logos and the like.

EDIT: Now there's full ASCII in both 24x32 and 48x64 sizes.
Re: Fizzter, an organic stub serif font for a counting game
by on (#137010)
Very nice, tepples. Will save this off when I get to my computer, and make sure to save it in a "tepples" folder where I can credit you should I use it (which, while I understand it's not a legal requirement in the US for bitmap fonts, it's still common courtesy).
Re: Fizzter, an organic stub serif font for a counting game
by on (#137291)
Yeah, it's a crappy camera.
Re: Fizzter, an organic stub serif font for a counting game
by on (#137314)
And just in case you want a tiny monospace version for legal notices and stuff:
Re: Fizzter, an organic stub serif font for a counting game
by on (#151089)
A couple days ago, I made a Python program to set text in fixed- or variable-width bitmap fonts. This revealed some practical problems in Fizzter, which I decided to fix.

  • Shortened serifs slightly in big version.
  • Slant of 'f' and 't' crossbars is gentler, to point up toward the handle serif of the next letter.
  • Tail of 'f', 'g', 'j', 's', and 'y' isn't as curvy. Left side of 's' bent down to soak up the excess space.
  • Reduced advance width of 'j', 'r', and 't' from 32px to 24px in big version. I wish I could do so for 'f', but that will have to wait until my engine supports overlapping glyphs. Small version still has 16px due to tile limit.
  • Bowls (b, c, d, g, o, p, q) are 1px wider (2px in big) on each side to soak up space that serifs would have occupied.

Attachment:
File comment: Sample output from revised Fizzter, using a Cicero passage from Lipsum.com
lorem_ipsum.png
lorem_ipsum.png [ 16.67 KiB | Viewed 7270 times ]


This zipfile includes the new versions of normal and large Fizzter as well as the Python program.
Re: Fizzter, an organic stub serif font for a counting game
by on (#174433)
I've made more tweaks to bmfontrender.py:
  • Font can specify background color in multi-line text
  • Font can specify glyph ranges for code point ranges instead of assuming that all code points are contiguous

A few changes to Fizzter:
  • Sans-serif variant in both large and small sizes
  • Includes variant glyphs, including 1-story a, 2-story g, dotless i and j, looped k, tailed l, small capital r, long s, round v, and insular forms of bdfgrst
  • Small monochrome variant, used in several of my recent mapper tests

Base Seven, the VWF that I've been using since Action 53 and RHDE, is still included. It now has accented letters, most of the variant glyphs that I added to Fizzter, select additional symbols, and two larger sizes.
Re: Fizzter, an organic stub serif font for a counting game
by on (#243223)
Fizzter and other bitmap fonts are maintained in GitHub now:
pinobatch/bitmap-fonts