I am designing a file format for storing fonts, it will be used in my game where i need to draw ASCII text on the screen. At first i thought that i needed to keep a separate kern table for every character in the font, but after researching i found out that many font file formats used in games don't have any kern tables at all (e.g., Arma's FXY font https://community.bistudio.com/wiki/FXY_File_Format), they just use one offset for each character to determine where to draw the next character. Is this enough for simple ASCII text?Are there any drawbacks/limitations?
Should each font character have it's own kern table?
273 views Asked by oriyon At
1
There are 1 answers
Related Questions in FONTS
- How to change the Font Weight of a SelectValue component in React when a SelectItem is selected?
- In my Flutter Project, I want to customize the font of a text, but it doesn't work
- Ubuntu wsl2 in windows, my /etc/fonts/fonts.conf keeps reloading
- Problem with sample code to set font properties for a whole XWPF Paragraph that includes Word fields
- I need to display alt characters
- Change back to default font size in Android Studio
- Custom Fonts used in react.js application are not visible after deployment on vercel
- Changing font colour on locked text box
- how to implement ZWJ and NZWJ in fontlab
- The p5js library's loadFont function does not seem to work for me?
- Use Google Font Without Network Connection
- How Can I Use the Poppins Font on My Website (coded with HTML, CSS, and JavaScript)?
- PDField set default appearances multiple fonts - pdfbox 2.0
- Why is my font-weight only switching from normal and bold instead of following the number?
- How to extract font names using PyMuPDF without subsets?
Related Questions in KERNING
- Safari font kerning broken when wrapping letters into spans
- Font ligatures and kerning break under selection in Swings text based components
- align enviroment tab and kerning
- How can I use and extract kerning values from TrueType fonts to correctly show glyphs using C++ library?
- How to set font kerning in reportlab python?
- How to Set Font Kerning property in c#
- LaTeX footnote markers at beginning of word could benefit from kerning?
- Unexpected default kerning when using attributedText of UITextField
- Font kerning breaks with absolute div inbetween
- How can I change the character spacing in pptx-python?
- How can I use and extract kerning pairs from from GPOS table in Opentype fonts to correctly show glyphs as Path2D in Java?
- How to use kerning pairs extracted from a TTF file to correctly show glyphs as Path2D in Java?
- Simulate kerning for a bitmapped font with Fabric JS
- TFF file inner information extraction by Java or C#
- Font Kerning > Change Inter character spacing in DrawString System.Drawing
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
"Simple ASCII text" has nothing to do with kerning. Some of the (potentially) most ugly kerning candidates are in the Simple ASCII range; even with all-caps text only you can expect "AV" and "TA" combos.
Whether or not to include kerning in your text engine depends on some factors not mentioned in your post:
Even the act of only having to check every combination for possible kerning is time consuming, whether or not it results in an adjustment. For fastest performance, you can have a list of adjustment values for every character per character -- essentially, for 96 characters you need 96 * 96 lookups. Any other algorithm is possible (e.g., a linked list per character) but will be slower -- and can use less memory.
Also, not every possible character combo needs kerning information. You should design your font with built-in white space left and right, the so-called "side bearing". This 'natural' spacing would only need adjustment for as little as possible combinations.
All in all, It Depends. Best is to try both: without and with kerning. Estimate the negative impact on the performance against the positive of the "looks", and decide which one you prefer.