I'm currently in the process of implementing text rendering in my game engine, and I decided to utilize AngelCode's BMfont to generate font textures, and then have OpenGL render textured quads for each character. This worked great, even when rendering every single glyph supported by FreeFont (FreeMono in particular), until I tried to render Japanese (My Japanese font of choice is Noto, provided by Google).
Rendering every single glyph supported by FreeMono at 16px resulted in a single 1024x1024 8bit texture, perfectly reasonable considering how many languages are covered by it. Rendering everything supported by Noto Japanese, at the same size, resulted in 13 times as many textures, and at this size most of the glyphs are too cramped to be readable (I can't read Japanese, but if I could I think I would still have a lot of trouble reading this text).
My question is twofold:
1) How do games, or mobile apps, handle small Japanese text? Do they stick to a subset of the kanji, use a special font, or is there a minimum font size?
2) How do games typically handle the absurdly massive number of glyphs required by Japanese, Chinese, Korean, and other languages? Do they use FreeType (or something similar) to render the text on-the-fly?
Note: I tried Meiryo (which I do not have the license to use in my game) and the result was far more readable at 16px (still cramped though), but still required 14 textures to fit everything.