[video output=day162 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Introduction to Fonts" vod_platform=youtube id=ZK7PezR1KgU annotator=Miblo annotator=debiatan]
[1:02][Recap and overview of upcoming debug work]
[2:23][Plan for today]
[4:06][Test-driven vs visualization-driven game development]
[6:18][Fonts from the ground up. What are font files?]
[10:50][Fonts describe a mapping from character set encoding to outline shapes]
[12:22][ASCII/ANSI encoding]
[14:55][Unicode]
[16:09][Pros and cons of Unicode]
[19:23][Unicode codepoints]
[21:01][Basic typography (baseline, maximum ascenders and descenders, line height)]
[23:31][Kerning]
[23:50][Monospace fonts]
[25:46][Proportional fonts]
[28:57][Kerning information]
[32:25][Hinting]
[35:32][Ways of using fonts inside Handmade Hero:]
[36:15][1) Load TTF and tesselate the glyphs into an outline made of triangles]
[37:57][2) Load TTF and perform implicit rasterization]
[41:32][3) Use prerasterized fonts]
[43:47][Approaching prerasterized fonts]
[47:01][Plan for the next episode]
[49:27][Q&A][:speech]
[49:53][@ttbjm][Aren't there licensing concerns with fonts?]
[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?]
[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?]
[55:04][@themasterofpiggis][Are you doing quantum mechanics?]
[55:10][@breadthofhair][Did you ever try making a font yourself?]
[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: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?]
[56:11][Blackboard: 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: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?]
[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: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: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: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: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: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: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:32][Close it down][:speech]
[/video]
