Introduction to Fonts
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
1:02Recap and overview of upcoming debug work
1:02Recap and overview of upcoming debug work
1:02Recap and overview of upcoming debug work
2:23Plan for today
2:23Plan for today
2:23Plan for today
4:06Test-driven vs visualization-driven game development
4:06Test-driven vs visualization-driven game development
4:06Test-driven vs visualization-driven game development
6:18Fonts from the ground up. What are font files?
6:18Fonts from the ground up. What are font files?
6:18Fonts from the ground up. What are font files?
10:50Fonts describe a mapping from character set encoding to outline shapes
10:50Fonts describe a mapping from character set encoding to outline shapes
10:50Fonts describe a mapping from character set encoding to outline shapes
12:22ASCII/ANSI encoding
12:22ASCII/ANSI encoding
12:22ASCII/ANSI encoding
14:55Unicode
14:55Unicode
14:55Unicode
16:09Pros and cons of Unicode
16:09Pros and cons of Unicode
16:09Pros and cons of Unicode
19:23Unicode codepoints
19:23Unicode codepoints
19:23Unicode codepoints
21:01Basic typography (baseline, maximum ascenders and descenders, line height)
21:01Basic typography (baseline, maximum ascenders and descenders, line height)
21:01Basic typography (baseline, maximum ascenders and descenders, line height)
23:31Kerning
23:31Kerning
23:31Kerning
23:50Monospace fonts
23:50Monospace fonts
23:50Monospace fonts
25:46Proportional fonts
25:46Proportional fonts
25:46Proportional fonts
28:57Kerning information
28:57Kerning information
28:57Kerning information
32:25Hinting
32:25Hinting
32:25Hinting
35:32Ways of using fonts inside Handmade Hero:
35:32Ways of using fonts inside Handmade Hero:
35:32Ways of using fonts inside Handmade Hero:
36:151) Load TTF and tesselate the glyphs into an outline made of triangles
36:151) Load TTF and tesselate the glyphs into an outline made of triangles
36:151) Load TTF and tesselate the glyphs into an outline made of triangles
37:572) Load TTF and perform implicit rasterization
37:572) Load TTF and perform implicit rasterization
37:572) Load TTF and perform implicit rasterization
41:323) Use prerasterized fonts
41:323) Use prerasterized fonts
41:323) Use prerasterized fonts
43:47Approaching prerasterized fonts
43:47Approaching prerasterized fonts
43:47Approaching prerasterized fonts
47:01Plan for the next episode
47:01Plan for the next episode
47:01Plan for the next episode
49:27Q&A
🗩
49:27Q&A
🗩
49:27Q&A
🗩
49:53@ttbjm Aren't there licensing concerns with fonts?
🗪
49:53@ttbjm Aren't there licensing concerns with fonts?
🗪
49:53@ttbjm Aren't there licensing concerns with fonts?
🗪
53:20@gasto5 Will you support Unicode in Handmade Hero?
🗪
53:20@gasto5 Will you support Unicode in Handmade Hero?
🗪
53:20@gasto5 Will you support Unicode in Handmade Hero?
🗪
53:30@graeme7 Could we not pre-rasterise our fonts whenever the resolution is changed / at run time basically?
🗪
53:30@graeme7 Could we not pre-rasterise our fonts whenever the resolution is changed / at run time basically?
🗪
53:30@graeme7 Could we not pre-rasterise our fonts whenever the resolution is changed / at run time basically?
🗪
54:05@qwnepra Will you be writing something using the font before you code the actual font reading etc?
🗪
54:05@qwnepra Will you be writing something using the font before you code the actual font reading etc?
🗪
54:05@qwnepra Will you be writing something using the font before you code the actual font reading etc?
🗪
54:30@abnercoimbre Q: Will classic bitmap fonts remain relevant in the coming years or will we just start flat out with vector fonts forever more?
🗪
54:30@abnercoimbre Q: Will classic bitmap fonts remain relevant in the coming years or will we just start flat out with vector fonts forever more?
🗪
54:30@abnercoimbre Q: Will classic bitmap fonts remain relevant in the coming years or will we just start flat out with vector fonts forever more?
🗪
55:04@themasterofpiggis Are you doing quantum mechanics?
🗪
55:04@themasterofpiggis Are you doing quantum mechanics?
🗪
55:04@themasterofpiggis Are you doing quantum mechanics?
🗪
55:10@breadthofhair Did you ever try making a font yourself?
🗪
55:10@breadthofhair Did you ever try making a font yourself?
🗪
55:10@breadthofhair Did you ever try making a font yourself?
🗪
55:21@XEnDash Will you have unique fonts made for the game?
🗪
55:21@XEnDash Will you have unique fonts made for the game?
🗪
55:21@XEnDash Will you have unique fonts made for the game?
🗪
55:32@SoysauceTheKid If you had multiple font families and were pre-rasterizing them, can you stuff them into one file?
🗪
55:32@SoysauceTheKid If you had multiple font families and were pre-rasterizing them, can you stuff them into one file?
🗪
55:32@SoysauceTheKid If you had multiple font families and were pre-rasterizing them, can you stuff them into one file?
🗪
55:49@RoyBalloons Can I come live with you and you tutor me?
🗪
55:49@RoyBalloons Can I come live with you and you tutor me?
🗪
55:49@RoyBalloons Can I come live with you and you tutor me?
🗪
55:57@insofaras How are combining Unicode characters that some languages have handled?
🗪
55:57@insofaras How are combining Unicode characters that some languages have handled?
🗪
55:57@insofaras How are combining Unicode characters that some languages have handled?
🗪
56:11Blackboard: Combining glyphs
56:11Blackboard: Combining glyphs
56:11Blackboard: Combining glyphs
58:10@Naysayer88 I became a much happier person once I started rasterizing fonts on the fly all the time. So much better
🗪
58:10@Naysayer88 I became a much happier person once I started rasterizing fonts on the fly all the time. So much better
🗪
58:10@Naysayer88 I became a much happier person once I started rasterizing fonts on the fly all the time. So much better
🗪
58:36@XEnDash A bit off-topic, what makes code "publishable"? You said you wouldn't publish the current win32 platform layer. Exactly why not?
🗪
58:36@XEnDash A bit off-topic, what makes code "publishable"? You said you wouldn't publish the current win32 platform layer. Exactly why not?
🗪
58:36@XEnDash A bit off-topic, what makes code "publishable"? You said you wouldn't publish the current win32 platform layer. Exactly why not?
🗪
59:54@quartertron Will you be writing your own pre-rasterizer from scratch, or using a 3rd party tool?
🗪
59:54@quartertron Will you be writing your own pre-rasterizer from scratch, or using a 3rd party tool?
🗪
59:54@quartertron Will you be writing your own pre-rasterizer from scratch, or using a 3rd party tool?
🗪
1:00:07@Naysayer88 In which episode will you implement Unicode skin tone emoji modifiers?
🗪
1:00:07@Naysayer88 In which episode will you implement Unicode skin tone emoji modifiers?
🗪
1:00:07@Naysayer88 In which episode will you implement Unicode skin tone emoji modifiers?
🗪
1:00:52@tuva600 How much time do you spend preparing for each stream?
🗪
1:00:52@tuva600 How much time do you spend preparing for each stream?
🗪
1:00:52@tuva600 How much time do you spend preparing for each stream?
🗪
1:00:57@Dragonkinn02 If you were to have a loot history or story line history - you mentioned 40px - if you wanted to allow users to adjust this UI, would you still do pre-rasterized? At what point would be the threshold for including a proper non-rasterized version?
🗪
1:00:57@Dragonkinn02 If you were to have a loot history or story line history - you mentioned 40px - if you wanted to allow users to adjust this UI, would you still do pre-rasterized? At what point would be the threshold for including a proper non-rasterized version?
🗪
1:00:57@Dragonkinn02 If you were to have a loot history or story line history - you mentioned 40px - if you wanted to allow users to adjust this UI, would you still do pre-rasterized? At what point would be the threshold for including a proper non-rasterized version?
🗪
1:01:48@Miblo The Eulerian method you used for the particle system moves stuff from high density to low density cells, right? Could the Eulerian method be used the other way, e.g. to make something that has gravity and pulls low density stuff towards itself? Also, I wondered if Eulerian simulation could be used for AI systems: maybe having different characters being attracted to or "repelled" by crowds.
🗪
1:01:48@Miblo The Eulerian method you used for the particle system moves stuff from high density to low density cells, right? Could the Eulerian method be used the other way, e.g. to make something that has gravity and pulls low density stuff towards itself? Also, I wondered if Eulerian simulation could be used for AI systems: maybe having different characters being attracted to or "repelled" by crowds.
🗪
1:01:48@Miblo The Eulerian method you used for the particle system moves stuff from high density to low density cells, right? Could the Eulerian method be used the other way, e.g. to make something that has gravity and pulls low density stuff towards itself? Also, I wondered if Eulerian simulation could be used for AI systems: maybe having different characters being attracted to or "repelled" by crowds.
🗪
1:05:25@gasto5 Isn't abuse of text in a game a bad game design idea?
🗪
1:05:25@gasto5 Isn't abuse of text in a game a bad game design idea?
🗪
1:05:25@gasto5 Isn't abuse of text in a game a bad game design idea?
🗪
1:05:55@gasto5 Will you use correct typography terminology for the code or will you be carefree about it?
🗪
1:05:55@gasto5 Will you use correct typography terminology for the code or will you be carefree about it?
🗪
1:05:55@gasto5 Will you use correct typography terminology for the code or will you be carefree about it?
🗪
1:06:21@Robrobby By adding more and more layers of complexity to the engine, do you start to measure and optimize those parts just when FPS is low enough, or when do you usually start with optimization?
🗪
1:06:21@Robrobby By adding more and more layers of complexity to the engine, do you start to measure and optimize those parts just when FPS is low enough, or when do you usually start with optimization?
🗪
1:06:21@Robrobby By adding more and more layers of complexity to the engine, do you start to measure and optimize those parts just when FPS is low enough, or when do you usually start with optimization?
🗪
1:08:44@breadthofhair What do you think is the hardest challenge for you in programming, these days?
🗪
1:08:44@breadthofhair What do you think is the hardest challenge for you in programming, these days?
🗪
1:08:44@breadthofhair What do you think is the hardest challenge for you in programming, these days?
🗪
1:14:17@Naysayer88 The worst part is, you say stuff about these tools being terrible and NOBODY SEEMS TO UNDERSTAND THEY ARE TERRIBLE. Everyone is like, "what do you mean???"
🗪
1:14:17@Naysayer88 The worst part is, you say stuff about these tools being terrible and NOBODY SEEMS TO UNDERSTAND THEY ARE TERRIBLE. Everyone is like, "what do you mean???"
🗪
1:14:17@Naysayer88 The worst part is, you say stuff about these tools being terrible and NOBODY SEEMS TO UNDERSTAND THEY ARE TERRIBLE. Everyone is like, "what do you mean???"
🗪
1:16:10@Anonymous519 Have you considered signed distance fields for text rendering?
🗪
1:16:10@Anonymous519 Have you considered signed distance fields for text rendering?
🗪
1:16:10@Anonymous519 Have you considered signed distance fields for text rendering?
🗪
1:17:20@bkboggy But don't you think you're not being completely fair to the other crowd, who are not going to lower level? For example, I love and care about lower level stuff, but to pay my bills I have to be able to output an application within 10th of the time it would take me if I did everything at lower level. I have no choice but to rely on WPF and C#
🗪
1:17:20@bkboggy But don't you think you're not being completely fair to the other crowd, who are not going to lower level? For example, I love and care about lower level stuff, but to pay my bills I have to be able to output an application within 10th of the time it would take me if I did everything at lower level. I have no choice but to rely on WPF and C#
🗪
1:17:20@bkboggy But don't you think you're not being completely fair to the other crowd, who are not going to lower level? For example, I love and care about lower level stuff, but to pay my bills I have to be able to output an application within 10th of the time it would take me if I did everything at lower level. I have no choice but to rely on WPF and C#
🗪
1:19:05@wolkentreiber It's not enough to see a good tool once to understand that modern tools are bad. I feel like you also need to be a pretty good programmer, which is far from where most of us are now. If you are a mediocre programmer, you won't feel it. Do you agree?
🗪
1:19:05@wolkentreiber It's not enough to see a good tool once to understand that modern tools are bad. I feel like you also need to be a pretty good programmer, which is far from where most of us are now. If you are a mediocre programmer, you won't feel it. Do you agree?
🗪
1:19:05@wolkentreiber It's not enough to see a good tool once to understand that modern tools are bad. I feel like you also need to be a pretty good programmer, which is far from where most of us are now. If you are a mediocre programmer, you won't feel it. Do you agree?
🗪
1:21:08@ThisisAtticus Would you take a job in the mafia if they gave you a perfect version of Emacs and Visual Studio?
🗪
1:21:08@ThisisAtticus Would you take a job in the mafia if they gave you a perfect version of Emacs and Visual Studio?
🗪
1:21:08@ThisisAtticus Would you take a job in the mafia if they gave you a perfect version of Emacs and Visual Studio?
🗪
1:21:32Close it down
🗩
1:21:32Close it down
🗩
1:21:32Close it down
🗩