It is currently Mon Oct 23, 2017 1:49 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Sat Nov 22, 2014 4:22 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
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


Attachments:
File comment: Glyphs in Fizzter. Includes capital A and B for the same reason as Wetrix.
fizzter16.png
fizzter16.png [ 1.52 KiB | Viewed 4595 times ]
File comment: Fizzbuzz logo
fizzlogo.png
fizzlogo.png [ 1.65 KiB | Viewed 4595 times ]
File comment: Fizzbuzz help (animated)
fizzdesc.gif
fizzdesc.gif [ 12.54 KiB | Viewed 4595 times ]
Top
 Profile  
 
PostPosted: Sun Nov 23, 2014 7:20 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7235
Location: Chexbres, VD, Switzerland
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.


Top
 Profile  
 
PostPosted: Sun Nov 23, 2014 9:24 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
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]


Attachments:
File comment: This is how I fit it
fizzter16tiles.png
fizzter16tiles.png [ 2.23 KiB | Viewed 4522 times ]
Top
 Profile  
 
PostPosted: Wed Nov 26, 2014 12:02 am 
Offline

Joined: Thu Mar 02, 2006 12:30 pm
Posts: 168
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).

_________________
Read my blog! The Incoherent Ramblings of a Lowly Geek


Top
 Profile  
 
PostPosted: Wed Nov 26, 2014 7:22 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
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?


Top
 Profile  
 
PostPosted: Wed Nov 26, 2014 7:35 am 
Offline

Joined: Thu Aug 12, 2010 3:43 am
Posts: 1589
The D-pad (i.e. the four arrows). Well, writing them as words does take up a lot of space...


Top
 Profile  
 
PostPosted: Wed Nov 26, 2014 10:02 am 
Offline

Joined: Thu Mar 02, 2006 12:30 pm
Posts: 168
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.

_________________
Read my blog! The Incoherent Ramblings of a Lowly Geek


Top
 Profile  
 
PostPosted: Wed Nov 26, 2014 6:53 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
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.


Attachments:
fizzter.png
fizzter.png [ 3.62 KiB | Viewed 4227 times ]
fizzterbig.png
fizzterbig.png [ 8.48 KiB | Viewed 4227 times ]
directions.png
directions.png [ 236 Bytes | Viewed 4289 times ]
Top
 Profile  
 
PostPosted: Fri Nov 28, 2014 8:17 am 
Offline

Joined: Thu Mar 02, 2006 12:30 pm
Posts: 168
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).

_________________
Read my blog! The Incoherent Ramblings of a Lowly Geek


Top
 Profile  
 
PostPosted: Thu Dec 04, 2014 8:43 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
Yeah, it's a crappy camera.


Attachments:
File comment: On an actual NES and CRT TV
"for 15 times n, you fizzbuzz."

fizzter_on_hw.jpg
fizzter_on_hw.jpg [ 34.41 KiB | Viewed 4105 times ]
Top
 Profile  
 
PostPosted: Fri Dec 05, 2014 4:16 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
And just in case you want a tiny monospace version for legal notices and stuff:


Attachments:
fizztertiny.png
fizztertiny.png [ 1.27 KiB | Viewed 4068 times ]
Top
 Profile  
 
PostPosted: Thu Jul 16, 2015 2:53 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
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 3551 times ]


This zipfile includes the new versions of normal and large Fizzter as well as the Python program.


Attachments:
File comment: Python bitmap font setting tool with GUI using Tkinter and Pillow. Includes revised Fizzter.
bmfontrender.zip [20.77 KiB]
Downloaded 133 times
Top
 Profile  
 
PostPosted: Tue Jun 28, 2016 8:52 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19122
Location: NE Indiana, USA (NTSC)
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.


Attachments:
bmfontrender.zip [51.93 KiB]
Downloaded 100 times
Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group