FontCreator - how to develop and test

I want to change and test the following .java file.


What must I do to accomplish this?
I didn’t code SDK or NetBeans plugins before.

Why do I want to do this?
Because I want to improve the jME experience.
Because I cannot select bitmap sizes > 512x512 due to GUI issues.
I want to implement a zoom button (50%, 25%, etc.) or some kind of scroll bar.

Too much text to digest, I won’t be coding SDK plugins for now.

But I have ideas for workarounds:
Just set the size at last action -> you won’t be able to see a full preview of the image, but trial and error might be okay. No coding required.
Just switch the order of the UI elements: The configuration options on top, the image in the middle. Not really “coding”, isn’t it?

But I have found a serious limitation of the Font-Generator: It only renders characters 0…256 and if I configure for example 0…64000 it still only renders the first 256 unicode signs, and many of them are empty things like CR or LF.
In the preview image all those signs like chinese kanji are shown - they just don’t end up in the generated .png image.
I think it would be good to repair this, but I don’t know the reasons for why this happens, maybe it is a very complicated thing to fix.

That’s odd, because I updated the font creator so that should work.

What font file are you trying it with? You say they appear in the preview but not in the saved file? That’s odd as the two should be identical…

I tried two fonts, now I tried it with ‘Arial’ (a standard font) and the same - only till char id=256 and the .png is not much populated.
I used these settings:
font size 12
image size 512
chars 0…64000
rest zero

I looked into the plugins section of my jME SDK and it reads: “version 3.0.3” for the FontCreator plugin.

I’m not sure why that would be and don’t really have time to look into it right now.

Feel free to poke the source code - the main bit doing the work is:

The rest of the plugin is at:

Let me know if you find anything :slight_smile:

Well, the problem is, I dont’t know hot to set up a test environment for Netbeans plugins.
I’ve found this source code already, but thanks for making this clear to other interested readers.

As a workaround you could try this for the moment
Worked quite fine for me for normal latin + german special letters. Might work for others as well, and the resulting png and fnt is compatible to jme

1 Like
@Ogli said: Well, the problem is, I dont't know hot to set up a test environment for Netbeans plugins.
@normen said:
@Empire Phoenix said: As a workaround you could try this for the moment Worked quite fine for me for normal latin + german special letters. Might work for others as well, and the resulting png and fnt is compatible to jme
Wow! This tool rocks! Didn't try it together with jME yet, but it is not a workaround but a super cool replacement!

Now what I’m dreaming of, is a system that can represent all unicode characters, and this tool is half the way to success. Having a fully featured unicode system would be extremely cool - did you know, that unicode also has alchemist symbols? :slight_smile: Not to mention all the other cool stuff like music notes etc. - through all these symbols whole new worlds open for games or apps.

This site is a good overview of fonts supporting unicode ranges:

The input system would have to support this kind of text, which is the most problematic thing - I don’t even know how Arabian or Asian people enter their characters. I could think of useful Nifty widgets, like a drop-down list or auto-completion popups.

And the image file would be very large (but I already have ideas how to solve this, e.g. use all four texture channels or have texture arrays and cluster the vertex buffers for unicode ranges in a single BitmapText).

And other problems might wait along the way to fullfilling this dream. When I’ve solved this, I will report back here. The “Ogli-Font-2000” will become true! Just not today. :slight_smile:

Of course, for simple games in European/American/African countries, a much simpler font is enough.
Russian and Greek are also quite simple.
Arabian and Hebrew are more complicated because of their right-to-left text flow.
Asian languages are the most complicated to support.

@Ogli said: Too much text to digest, I won't be coding SDK plugins for now.

Okay, I could “know” it, if I had the time. The SDK is good enough for now.
Maybe I can do it after my first project is finished, if more plugins would bring greater benefit. (1.3 MB) (2.3 MB)

This uses the “Batang” font from Windows.
Cool, heh?

Well I cant ell you how japanese can be input.
One possible way I often see is to use a romaji input scheme, you write the single parts like tsu or something and its replaced by the hiragana /katakana or in case of word also with a kanji

Here in more details, I guess you can find informations for that languages as well

But as most fo them has some contact with english i would assume a similar input system.

1 Like

The tool also gives you the option to generate multiple textures and reference them from the same .fnt file.
So the above 4k texture can be split to four 2k textures, which I could (per GIMP) put into the RGBA channels of that texture.
And then there is the possibility to generate outlines, e.g. white letters with black outline, for subtitles or better readable texts.
A lot to play with… only the jME implementation would have to support this, and they will, when “Ogli-Font-2000” is finished. :slight_smile:
I should also try to combine this with Nifty first, because Nifty is … well … nifty. (9.4 MB) (2.3 MB) (7.1 MB grey version)

Another cool example, generated with this tool.
Only not-so-good thing is the font itself, because for many Asian unicode blocks it supports only 80% to 90% of the signs.
So for 112,000 unicode signs, this font gives me 20,000 - which is not bad, but still I want it all. Of course, some code signs are invisible by nature and there might be other quirks.
But I found out, that some Windows fonts support ALL katakana/hiragana and most support none or only 90% of them.

Okay, enough for now…

how do you build that?
how can I build a bitmap font like that with gimp?

Was not made with Gimp, but with BMFont (bmfont.exe). It’s a Windows-only tool to convert ttf fonts into fnt fonts.
It’s free and (since recently) open source. Tool was made by AngelCode. You need some time to learn the tool (it has many settings). The produced .png files can be edited via Gimp (e.g. convert it to gray image).
There was a “jME SDK” and there was a plugin for creating .fnt fonts in that SDK. Since it’s not supported anymore you may look for some other project - or - simply use bmfont.exe via Windows.
You CAN make .fnt fonts with image editors and a text editor (theoretically) - but that’s very advanced stuff and you need a lot of practice and trial and error.

There still is a JME SDK.

Oh yes, some user supports a “jME 3.1 SDK”. But the core devs abandoned it. If you want the reliable and stable “jME 3.0 SDK” you need to build it for yourself somehow from the sources. About the Font plugin I don’t know. I think BMFont.exe is still way better than anything else you can find here.

new font creator that supports Persian glyph
bitMapFontCreator for persian fonts