All Projects → curioustorvald → Terrarum Sans Bitmap

curioustorvald / Terrarum Sans Bitmap

Licence: mit
The real multilingual bitmap font for video games

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Terrarum Sans Bitmap

P5 Hershey Js
p5.js Hershey Vector Font Library
Stars: ✭ 23 (-32.35%)
Mutual labels:  font
Kepler
Futuristic / minimal monospace typeface.
Stars: ✭ 9 (-73.53%)
Mutual labels:  font
Unicons
1000+ Pixel-perfect vector icons and Iconfont for your next project.
Stars: ✭ 911 (+2579.41%)
Mutual labels:  font
Ufodiff
UFO source file diff application
Stars: ✭ 23 (-32.35%)
Mutual labels:  font
Cozette
A bitmap programming font optimized for coziness 💜
Stars: ✭ 935 (+2650%)
Mutual labels:  font
Craft3 Iconpicker
Craft plugin that provides a new field type that offers end users an easy way to pick an icon from a .woff or .ttf font file. You can easily use ionicons or font awesome icons or any other compatible font file.
Stars: ✭ 15 (-55.88%)
Mutual labels:  font
Gdx Ai
Artificial Intelligence framework for games based on libGDX or not. Features: Steering Behaviors, Formation Motion, Pathfinding, Behavior Trees and Finite State Machines
Stars: ✭ 907 (+2567.65%)
Mutual labels:  libgdx
Web Font Loading Recipes
A bunch of demos for different web font loading strategies. Companion to https://www.zachleat.com/web/comprehensive-webfonts/ Read more: https://www.zachleat.com/web/recipes/
Stars: ✭ 964 (+2735.29%)
Mutual labels:  font
Fontsource
Self-host Open Source fonts in neatly bundled NPM packages.
Stars: ✭ 836 (+2358.82%)
Mutual labels:  font
Ktx
LibKTX: Kotlin extensions for LibGDX games and applications
Stars: ✭ 913 (+2585.29%)
Mutual labels:  libgdx
Figlet4go
A port of figlet to golang
Stars: ✭ 23 (-32.35%)
Mutual labels:  font
Cocos Ui Libgdx
a ui library of ligdx with cocostudio 一个cocostudio的ui解析库
Stars: ✭ 25 (-26.47%)
Mutual labels:  libgdx
Get Social Social Media Font
Font Based Social Media Icon Set
Stars: ✭ 15 (-55.88%)
Mutual labels:  font
Fontmoa
Simple Font Manager for Cross Platform
Stars: ✭ 23 (-32.35%)
Mutual labels:  font
Meta Emb
Multilingual Meta-Embeddings for Named Entity Recognition (RepL4NLP & EMNLP 2019)
Stars: ✭ 28 (-17.65%)
Mutual labels:  multilingual
Zpix Pixel Font
Zpix (最像素) is a pixel font supporting English, Traditional Chinese, Simplified Chinese and Japanese.
Stars: ✭ 916 (+2594.12%)
Mutual labels:  font
Hack Linux Installer
Install and upgrade the Hack typeface on the Linux platform
Stars: ✭ 14 (-58.82%)
Mutual labels:  font
Google Type
Collaborative typography project using select passages from Aesop's Fables set to Google Fonts
Stars: ✭ 971 (+2755.88%)
Mutual labels:  font
Base
Multilingual CMS built with Laravel.
Stars: ✭ 949 (+2691.18%)
Mutual labels:  multilingual
Bpemb
Pre-trained subword embeddings in 275 languages, based on Byte-Pair Encoding (BPE)
Stars: ✭ 909 (+2573.53%)
Mutual labels:  multilingual

Terrarum Sans Bitmap

Font sample — necessary information in this image is also provided below.

This font is a bitmap font used in my game project called Terrarum (hence the name). The font supports more than 90 % of european languages, as well as Chinese, Japanese and Korean. More technical side, it supports Latin-1 Supplement, Latin Ext-A/B/C, IPA Extension, Greek, Cyrillic (+ Bulgarian, Serbian variants) and the supplement, Armenian, Devanagari, Bengali, Thai, Georgian (Mkhedruli and Mtavruli), General Punctuations, Super/Subscrips, CJK Punctuations, All of the Kana (minus the Hentaigana), Chinese (limited to Unihan and Ext-A), Hangul (every possible syllables) and Fullwidth forms.

The JAR package is meant to be used with LibGDX (extends BitmapFont class). If you are not using the framework, please refer to the Font metrics section to implement the font metrics correctly on your system.

The issue page is open. If you have some issues to submit, or have a question, please leave it on the page.

Little notes

  • To display Bulgarian/Serbian variants, you need special Control Characters. (GameFontBase.charsetOverrideBulgarian -- U+FFFC1; GameFontBase.charsetOverrideSerbian -- U+FFFC2)
  • All Han characters are in Chinese variant, no other variants are to be supported as most Chinese, Japanese and Korean people can understand other's variant and as long as I can, we don't bother anyway.
  • Indian script in general is not perfect: right now this font will never do the proper ligatures (I can't draw all the 1 224 possible combinations). Hopefully it's still be able to understand without them.
  • Slick2d versions are now unsupported. I couldn't extend myself to work on both versions, but I'm still welcome to merge your pull requests.

Design Goals

  • Sans-serif
  • Realise (some of) handwritten forms
    • Combininig with the sans-serif, this stands for no over-simplification
  • Condensed capitals for efficient space usage

Download

  • Go ahead to the release tab, and download the most recent version. It is not advised to use the .jar found within the repository, they're experimental builds I use during the development, and may contain bugs like leaking memory.

Using on your game

  • Firstly, place the .jar to your library path and assets folder to the main directory of the app, then:

Using on LibGDX

On your code (Kotlin):

class YourGame : Game() {

    lateinit var fontGame: Font

    override fun create() {
        fontGame = GameFontBase(path_to_assets)
        ...
    }
    
    override fun render() {
        batch.begin()
        ...
        fontGame.draw(batch, text, ...)
        ...
        batch.end()
    }
}

On your code (Java):

class YourGame extends BasicGame {

    Font fontGame;

    @Override void create() {
        fontGame = new GameFontBase(path_to_assets);
        ...
    }
    
    @Override void render() {
        batch.begin();
        ...
        fontGame.draw(batch, text, ...);
        ...
        batch.end();
    }
}

Using on Slick2d (legacy version only)

On your code (Kotlin):

class YourGame : BasicGame("YourGameName") {

    lateinit var fontGame: Font

    override fun init(gc: GameContainer) {
        fontGame = GameFontBase(path_to_assets)
        ...
    }
    
    override fun render(gc: GameContainer, g: Graphics) {
        g.font = fontGame
        g.drawString(...)
    }
}

On your code (Java):

class YourGame extends BasicGame {

    Font fontGame;

    @Override void init(GameContainer gc) {
        fontGame = new GameFontBase(path_to_assets);
        ...
    }
    
    @Override void render(GameContainer gc, Graphics g) {
        g.setFont(fontGame);
        g.drawString(...);
    }
}

How to Use Color Code

Color codes are individual unicode characters. While you can somehow make a raw character and paste in on your code, it's certainly not desirable. Fortunately, we're also providing utility functions for the color codes.

GameFontBase.toColorCode(argb4444: Int) -- returns String
GameFontBase.toColorCode(r: Int, g: Int, b: Int) -- returns String
GameFontBase.toColorCode(r: Int, g: Int, b: Int, a: Int) -- returns String

argb4444 takes whole ARGB (in that order) as input, that is, from 0x0000 to 0xFFFF. r, g, b(, a) takes RGB and A separately, in the range of 0x0..0xF. Any value exceeding the range are unchecked and may wreak havoc, so be careful.

U+100000 is used to disable previously-applied color codes (going back to original colour), even if it looks like ARGB of all zero.

Contribution guidelines

Please refer to CONTRIBUTING.md

Acknowledgement

Thanks to kind people of /r/Typography for amazing feedbacks.

CJK Ideographs are powered by WenQuanYi Font. The font is distributed under the GNU GPL version 2. Although the shapes of typefaces are not copyrightable (the program codes—e.g. TTF—do), we would like to give a credit for the font and the people behind it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].