Log In  

Hi everybody! I'm about to release my first full-scale project, but I have one final obstacle to contend with: font choice. I have 3 options, and I just wanted to see what you guys thought would be good.
Option 1:

Option 2:

Option 3:

Options 1 and 3 have support for uppercase and lowercase letters (though, conversely, option 2 supports symbols). Option 3 looks the nicest, but I have to use less of the screen for text or else it takes up too much CPU power. Also, the font is bigger, so it has less characters per line. Right now, I'm really stuck between options 1 and 2. I like the addition of upper and lowercase letters, but to be honest, I'm not sure that makes up for it being sort of ugly.

Anyway, let me know what you think :)

P#88174 2021-02-25 23:23

:: merwok
1

I find option 1 too hard to read.

Option 2 is readable for its size, but using the default pico8 font is no fun! :)

Option 3 looks really nice. You could try making a variant with the same vibe but slightly smaller?

FWIW I have been adapting nice pixel fonts to pico8 since we got 0.2.2 with custom fonts. monogram and m5x7 are really nice! (see monogram here: https://itch.io/post/2610777)

P#88177 2021-02-26 00:01

@merwok Thanks for the heads up! I was looking for pico-8 custom fonts, but I had trouble finding them. Monogram does look nice; I might just use it. Can you point me in the direction of m5x7? TBH, the perfect font for this probably doesn't exist since it would have to be pretty AND small, but hopefully I can find something close enough.

EDIT: I tried the font you linked me to. It looks like this:

I like the look of it, and it doesn't pose the CPU constraints of option 3. However, again, I wish it could be a little smaller. I can only get 18 characters across per line (for context, option 1 is 27 wpl).

P#88178 2021-02-26 00:21 ( Edited 2021-02-26 00:56)
:: merwok

It could be made narrower!

That other font: https://managore.itch.io/m5x7

P#88182 2021-02-26 03:11

The other font you linked seems to be a bit smaller, which would be nice. However, I saw that the same creator of the m5x7 font has a m3x6 font. I think that would actually be perfect. It looks nicer than the default font and would be small enough to get a good cpl.

I saw that you were in the process of creating a tool which, I think, converts .ttf files to pico-8 compatible fonts. If you are, please let me know when it's finished or how I can manually convert the fonts if not. I was able to download the m5x7 and m3x6 fonts, but it seems like a whole lot of work to convert a .ttf file to a pico-8 compatible .png by hand, but I'd be willing to do it if I had to.

P#88201 2021-02-26 13:45
:: merwok

Ah, my tool reads the spritesheet and prints out code! I look at the TTF or PNG font and draw the sprites.

Tool is not published yet because I need changes to accomodate margins (between characters) that are not 1px. But I guess I could publish then update later!

For m3x6, I made a few characters manually (drawing the glyphs mirrored in bitfields, see below) before I had my tool, then I stopped and decided m5x7 was better (especially for the m character). You can see the font in the same screenshot as monogram that I posted the link to earlier. But this thread shows that there’s a need for both!

function glyph(char,rows)
 poke(0x5600+ord(char)*8,unpack(split(rows,"\n")))
end

poke(0x5600,4,8,7)

glyph("l",[[
0b001
0b001
0b001
0b001
0b001
0b111
]])
P#88204 2021-02-26 16:03 ( Edited 2021-02-26 16:05)

I'm sorry, I don't think I understand. Is there a difference between m3x6/m5x7 and monogram or is m3x6/m5x7 an offshoot of monogram. Also, I tried to implement the code you put up, but I'm not sure I did it right.

Here's the code at the beginning of my program:

function glyph(char,rows)
 poke(0x5600+ord(char)*8,unpack(split(rows,"\n")))
end

function _init()
    poke(0x5f2d, 1) --allows keyboard access
    poke(0x5600,4,8,7)

    glyph("l",[[
    0b001
    0b001
    0b001
    0b001
    0b001
    0b111
    ]])
    poke4(0x5708,unpack(split"0x0404.0404,0x0004.0004,0x000a.0a0a,0x0000.0000,0x0a1f.0a00,0x000a.1f0a,0x0e05.1e04,0x0004.0f14,0x0408.1111,0x0011.1102,0x1e09.0906,0x0016.0909,0x0004.0404,0x0000.0000,0x0404.0408,0x0008.0404,0x0808.0804,0x0004.0808,0x0e15.0400,0x0000.0415,0x1f04.0400,0x0000.0404,0x0000.0000,0x0002.0404,0x1f00.0000,0x0000.0000,0x0000.0000,0x0000.0404,0x0408.1010,0x0001.0102,0x1519.110e,0x000e.1113,0x0404.0604,0x001f.0404,0x0810.110e,0x001f.0204,0x0c10.110e,0x000e.1110,0x1f11.1212,0x0010.1010,0x0f01.011f,0x000e.1110,0x0f01.010e,0x000e.1111,0x0810.101f,0x0004.0404,0x0e11.110e,0x000e.1111,0x1e11.110e,0x000e.1110,0x0004.0400,0x0000.0404,0x0004.0400,0x0002.0404,0x0106.1800,0x0000.1806,0x001f.0000,0x0000.001f,0x100c.0300,0x0000.030c,0x0810.110e,0x0004.0004,0x1515.190e,0x000e.0119,0x111e.0000,0x001e.1111,0x110f.0101,0x000f.1111,0x110e.0000,0x000e.1101,0x111e.1010,0x001e.1111,0x110e.0000,0x000e.011f,0x0f02.120c,0x0002.0202,0x1111.1e00,0x000e.101e,0x110f.0101,0x0011.1111,0x0406.0004,0x001f.0404,0x1018.0010,0x000e.1110,0x0911.0101,0x0011.0907,0x0202.0203,0x001c.0202,0x150f.0000,0x0015.1515,0x110f.0000,0x0011.1111,0x110e.0000,0x000e.1111,0x1111.0f00,0x0001.010f,0x1111.1e00,0x0010.101e,0x130d.0000,0x0001.0101,0x011e.0000,0x000f.100e,0x020f.0202,0x001c.0202,0x1111.0000,0x001e.1111,0x1111.0000,0x0004.0a11,0x1111.0000,0x000a.1515,0x0a11.0000,0x0011.0a04,0x1111.1100,0x000e.101e,0x081f.0000,0x001f.0204,0x0404.040c,0x000c.0404,0x0402.0101,0x0010.1008,0x0808.080c,0x000c.0808,0x0011.0a04,0x0000.0000,0x0000.0000,0x001f.0000,0x0000.0402,0x0000.0000,0x1111.110e,0x0011.111f,0x0f11.110f,0x000f.1111,0x0101.110e,0x000e.1101,0x1111.110f,0x000f.1111,0x0f01.011f,0x001f.0101,0x0f01.011f,0x0001.0101,0x1d01.110e,0x000e.1111,0x1f11.1111,0x0011.1111,0x0404.041f,0x001f.0404,0x1010.1010,0x000e.1111,0x0305.0911,0x0011.0905,0x0101.0101,0x001f.0101,0x1115.1b11,0x0011.1111,0x1513.1111,0x0011.1119,0x1111.110e,0x000e.1111,0x0f11.110f,0x0001.0101,0x1111.110e,0x0018.0e11,0x0f11.110f,0x0011.1111,0x0e01.110e,0x000e.1110,0x0404.041f,0x0004.0404,0x1111.1111,0x000e.1111,0x1111.1111,0x0004.0a0a,0x1111.1111,0x0011.1b15,0x040a.1111,0x0011.110a,0x040a.1111,0x0004.0404,0x0408.101f,0x001f.0102,0x0204.0408,0x0008.0404,0x0404.0404,0x0004.0404,0x1008.0804,0x0004.0808,0x0d12.0000,0x0000.0000,0x0a04.0000,0x0000.0004,0x1f1f.1f1f,0x001f.1f1f,0x0a15.0a15,0x0015.0a15,0x0e15.1f11,0x001e.1606,0x0404.0404,0x0004.0e15,0x0411.0411,0x0011.0411,0x0f19.0000,0x0013.1e0a,0x1f17.0e00,0x000e.1f1f,0x1f1f.0a00,0x0004.0e1f,0x1f05.0c0c,0x000a.0e04,0x151f.0e04,0x0017.151f,0x0000.0000,0x0000.0000"))
P#88206 2021-02-26 16:51
:: merwok

m3x6 and m5x7 are fonts made by one person, monogram is another one.

The glyph function was used before I made my tool. It’s the manual way to define a font: draw each glyph in code in your cart. It is not the same thing as using a tool (zep’s one or mine) that reads sprites and generates 2 lines of code that you can copy into another cart.

P#88209 2021-02-26 17:49

Sorry, I read your comment in the morning and didn't understand. I get it now, I think. Anyway, now that I understand that the code you showed me was just a prototype of that code you worked on, I guess my question is whether you're going to release a Pico-8 version of m5x7/m3x6. I think it would go great with my project.
Btw, thanks for all of your help so far. I really appreciate it :)

P#88212 2021-02-26 18:52

I would say one of the determining factors in choosing the font is, "How will the font be used?"

If it's just to show a few lines of a character talking (for example), you could get away with #1. It's pixelly and cute; plus you can fit more text without requiring the user to page through a lot of dialog boxes.

If you need the user to read screen after screen of paragraphs of text (as your hyphenation and line/char counter kind of suggest) then perhaps #3 would be better.

P#88283 2021-02-28 03:17
:: merwok
1

I have drawn m3x6 and run my tool.

--M3X6 by daniel linssen
poke(0x5600,4,4,7)
poke4(0x5700,unpack(split"0x0000.0000,0x0000.0000,0x0202.0202,0x0000.0200,0x0000.0505,0x0000.0000,0x0505.0705,0x0000.0507,0x0407.0106,0x0000.0203,0x0204.0100,0x0000.0401,0x0102.0502,0x0000.0305,0x0000.0102,0x0000.0000,0x0101.0102,0x0000.0201,0x0202.0201,0x0000.0102,0x0205.0000,0x0000.0005,0x0702.0000,0x0000.0002,0x0000.0000,0x0000.0102,0x0700.0000,0x0000.0000,0x0000.0000,0x0000.0200,0x0202.0404,0x0000.0101,0x0505.0506,0x0000.0305,0x0202.0302,0x0000.0702,0x0204.0403,0x0000.0701,0x0403.0403,0x0000.0304,0x0406.0505,0x0000.0404,0x0403.0107,0x0000.0304,0x0503.0106,0x0000.0605,0x0204.0407,0x0000.0202,0x0502.0506,0x0000.0305,0x0605.0503,0x0000.0304,0x0002.0000,0x0000.0002,0x0002.0000,0x0000.0102,0x0102.0400,0x0000.0402,0x0007.0000,0x0000.0007,0x0402.0100,0x0000.0102,0x0204.0403,0x0000.0200,0x0505.0506,0x0000.0601,0x0604.0300,0x0000.0705,0x0505.0301,0x0000.0705,0x0101.0600,0x0000.0701,0x0505.0604,0x0000.0705,0x0705.0600,0x0000.0601,0x0702.0204,0x0000.0202,0x0705.0600,0x0000.0304,0x0505.0301,0x0000.0505,0x0202.0002,0x0000.0202,0x0202.0002,0x0000.0102,0x0305.0101,0x0000.0505,0x0202.0202,0x0000.0402,0x0707.0300,0x0000.0507,0x0505.0300,0x0000.0505,0x0505.0600,0x0000.0305,0x0305.0700,0x0000.0101,0x0705.0600,0x0000.0404,0x0101.0600,0x0000.0101,0x0701.0600,0x0000.0304,0x0207.0202,0x0000.0202,0x0505.0500,0x0000.0705,0x0505.0500,0x0000.0205,0x0705.0500,0x0000.0507,0x0205.0500,0x0000.0505,0x0605.0500,0x0000.0304,0x0204.0700,0x0000.0701,0x0101.0103,0x0000.0301,0x0202.0101,0x0000.0404,0x0202.0203,0x0000.0302,0x0000.0502,0x0000.0000,0x0000.0000,0x0000.0403,0x0000.0201,0x0000.0000,0x0507.0506,0x0000.0505,0x0507.0503,0x0000.0705,0x0101.0106,0x0000.0701,0x0505.0503,0x0000.0305,0x0103.0107,0x0000.0701,0x0301.0106,0x0000.0101,0x0501.0106,0x0000.0705,0x0507.0505,0x0000.0505,0x0202.0207,0x0000.0702,0x0404.0407,0x0000.0304,0x0503.0505,0x0000.0505,0x0101.0101,0x0000.0701,0x0507.0705,0x0000.0505,0x0505.0503,0x0000.0505,0x0505.0506,0x0000.0305,0x0103.0507,0x0000.0101,0x0505.0506,0x0000.0403,0x0503.0507,0x0000.0505,0x0407.0106,0x0000.0304,0x0202.0207,0x0000.0202,0x0505.0505,0x0000.0705,0x0505.0505,0x0000.0205,0x0705.0505,0x0000.0507,0x0202.0505,0x0000.0505,0x0205.0505,0x0000.0202,0x0202.0407,0x0000.0701,0x0302.0204,0x0000.0402,0x0202.0202,0x0000.0202,0x0602.0201,0x0000.0102,0x0704.0000,0x0000.0001,0x0205.0200,0x0000.0000"))

function _draw()
 cls(8) color(7)
 rect(3,3,124,124)
 poke(0x5f58,0x81)
 print(
[[  cHAPTER oNE

 iT IS A TRUTH UNIVERSALLY
ACKNOWLEDGED, THAT A SINGLE
MAN IN POSSESSION OF A GOOD
FORTUNE, MUST BE IN WANT OF
A WIFE.

 hOWEVER LITTLE KNOWN THE
FEELINGS OR VIEWS OF SUCH A
MAN MAY BE ON HIS FIRST
ENTERING A NEIGHBOURHOOD,
THIS TRUTH IS SO WELL FIXED
IN THE MINDS OF THE SURROUN
-DING FAMILIES, THAT HE IS
CONSIDERED THE...
]],8,8)
end

I couldn’t ask the author on the itch page because comments are disabled, but I will contact him to make sure it’s ok to port the font. Of course, we should give proper credits with a link and if possible a donation!

P#88285 2021-02-28 04:55 ( Edited 2021-02-28 19:57)

@merwok Amazing work! It's exactly what I needed. Just in case you need it, here's the author's twitter (https://twitter.com/Managore). I think you should make a separate post with all your new fonts to make them easier to find as well as to make them easier to credit. One suggestion, though: Could you maybe make the comma easier to discern from the period in m3x6. Right now, they're almost identical.

@ChristopherD thanks for the insight. This program is going to be for looking at a lot of text (in theory). I'm going to use a custom font for that.

EDIT: Here is how the new custom font looks.

I think it looks great, but I still think the comma looks weird.

P#88291 2021-02-28 12:51 ( Edited 2021-02-28 13:28)
:: merwok
1

I changed the comma, semicolon and apostrophe to have two pixels in a diagonal rather than a straight line (code in my previous message is edited). I already had to change m/w/&/# to make them fit in 3px width.

P#88311 2021-02-28 19:59

And just like that, my big dilemma was solved. Thank you so much merwok! I was sure I was going to have to compromise once I first posed this question. I'll be sure to acknowledge all the help you've given me when I finally publish the cart.

EDIT: Here is the finalized font in action:

P#88325 2021-02-28 23:45 ( Edited 2021-02-28 23:55)
:: merwok

Glad to help! Let me know if you need some characters after ~° (like arrows, cat face, etc). I’ll contact Daniel eventually, but even without that the license is «free to use with attribution» so you should be ok.

P#88348 2021-03-01 02:02

Can you please post he snippet of the final font?

P#88349 2021-03-01 02:15
1

@Krystman It is included above, but I'll post it here to.

poke(0x5600,4,4,7)
poke4(0x5700,unpack(split"0x0000.0000,0x0000.0000,0x0202.0202,0x0000.0200,0x0000.0505,0x0000.0000,0x0505.0705,0x0000.0507,0x0407.0106,0x0000.0203,0x0204.0100,0x0000.0401,0x0102.0502,0x0000.0305,0x0000.0102,0x0000.0000,0x0101.0102,0x0000.0201,0x0202.0201,0x0000.0102,0x0205.0000,0x0000.0005,0x0702.0000,0x0000.0002,0x0000.0000,0x0000.0102,0x0700.0000,0x0000.0000,0x0000.0000,0x0000.0200,0x0202.0404,0x0000.0101,0x0505.0506,0x0000.0305,0x0202.0302,0x0000.0702,0x0204.0403,0x0000.0701,0x0403.0403,0x0000.0304,0x0406.0505,0x0000.0404,0x0403.0107,0x0000.0304,0x0503.0106,0x0000.0605,0x0204.0407,0x0000.0202,0x0502.0506,0x0000.0305,0x0605.0503,0x0000.0304,0x0002.0000,0x0000.0002,0x0002.0000,0x0000.0102,0x0102.0400,0x0000.0402,0x0007.0000,0x0000.0007,0x0402.0100,0x0000.0102,0x0204.0403,0x0000.0200,0x0505.0506,0x0000.0601,0x0604.0300,0x0000.0705,0x0505.0301,0x0000.0705,0x0101.0600,0x0000.0701,0x0505.0604,0x0000.0705,0x0705.0600,0x0000.0601,0x0702.0204,0x0000.0202,0x0705.0600,0x0000.0304,0x0505.0301,0x0000.0505,0x0202.0002,0x0000.0202,0x0202.0002,0x0000.0102,0x0305.0101,0x0000.0505,0x0202.0202,0x0000.0402,0x0707.0300,0x0000.0507,0x0505.0300,0x0000.0505,0x0505.0600,0x0000.0305,0x0305.0700,0x0000.0101,0x0705.0600,0x0000.0404,0x0101.0600,0x0000.0101,0x0701.0600,0x0000.0304,0x0207.0202,0x0000.0202,0x0505.0500,0x0000.0705,0x0505.0500,0x0000.0205,0x0705.0500,0x0000.0507,0x0205.0500,0x0000.0505,0x0605.0500,0x0000.0304,0x0204.0700,0x0000.0701,0x0101.0103,0x0000.0301,0x0202.0101,0x0000.0404,0x0202.0203,0x0000.0302,0x0000.0502,0x0000.0000,0x0000.0000,0x0000.0403,0x0000.0201,0x0000.0000,0x0507.0506,0x0000.0505,0x0507.0503,0x0000.0705,0x0101.0106,0x0000.0701,0x0505.0503,0x0000.0305,0x0103.0107,0x0000.0701,0x0301.0106,0x0000.0101,0x0501.0106,0x0000.0705,0x0507.0505,0x0000.0505,0x0202.0207,0x0000.0702,0x0404.0407,0x0000.0304,0x0503.0505,0x0000.0505,0x0101.0101,0x0000.0701,0x0507.0705,0x0000.0505,0x0505.0503,0x0000.0505,0x0505.0506,0x0000.0305,0x0103.0507,0x0000.0101,0x0505.0506,0x0000.0403,0x0503.0507,0x0000.0505,0x0407.0106,0x0000.0304,0x0202.0207,0x0000.0202,0x0505.0505,0x0000.0705,0x0505.0505,0x0000.0205,0x0705.0505,0x0000.0507,0x0202.0505,0x0000.0505,0x0205.0505,0x0000.0202,0x0202.0407,0x0000.0701,0x0302.0204,0x0000.0402,0x0202.0202,0x0000.0202,0x0602.0201,0x0000.0102,0x0704.0000,0x0000.0001,0x0205.0200,0x0000.0000"))

@merwok Those characters won't be needed for my purposes, but for other people, they might want it. I'd encourage you to add it, but don't worry about doing it for my sake.

P#88352 2021-03-01 02:50

[Please log in to post a comment]

Follow Lexaloffle:        
Generated 2021-10-20 22:48:21 | 0.050s | Q:31