Huge, huge progress!
Today, I wrote a slow, huge, complicated, and unreadable
font routine that can render strings in the above glorious font! The strings are converted into a semi-machine-readable format (read: a format only the most idiotic of idiots would use) using a small converter I wrote, then plopped into my program!
I think the output is fantastic, as you can tell by the very large banner at the top of this post.
On IRC/SAX, some users (namely Kerm and LAX18) expressed interest in me letting this font be used by the OS.
I think this is a great idea, because it would give the OS a much-needed usability decrease! I'll definitely keep this in the back of my head as I continue the program.
I plan on finishing the font (we only have the above 25 characters currently) and making it open source so others can suffer the same pain I am.
The font routine itself is a good 100 bytes, and it compounds this huge size with a lack of speed. I think I accidentally confused "obfuscation" and "optimization", because it's pretty unreadable.
No matter how much I make fun of the routine, I am very proud of it. I spent pretty much my whole day working out kinks in the routine and fixing bugs, and the intense problem-solving made it both extremely rewarding and enjoyable.
Unfortunately, I had to change how I am storing my font data. Each character takes up the same amount of space in memory, but the font is not monospaced. I just add padding to each character so that each one is exactly 17 bytes (Even though 16 is much easier to do for various reasons, I chose 17 because the character with the highest byte count had 17 bytes. It's just easier over all). This is good because it makes the code more readable, and I get to skip a second lookup table (I'm using one for the character widths) that would limit the number of chars we can store.
All of the numbers are monospaced, so I'm going to create a second, simpler font routine to draw them.
This is a huge milestone, because now I can progress with the game slightly obscure pun intended
and make my menus and a scoreboard.
The game isn't completely planned out, and I still want suggestions from you guys. What do you want to see? Do you have any tips/algorithm improvements? I'm waiting to release the source code until I polish it up a little bit, it's very messy and not something I want to share quite yet.