You are using hardcoded character spacing constant:
const int character_spacing_x = 1;
and then, when building font glyphs:
glyph.XAdvance = (signed short)(pc.xadvance + character_spacing_x);
That makes text blocks looks too spare.
So please move it to config 👍