Jump to content

Recommended Posts

Welcome to the forums Yuri :-) , you should join us in Discord  :P

 

 

Why limit ourselves to Latin characters when it's 2017 and we should all be using UTF-8 :D  , then we can have access to every character in pretty much every language on the planet. 

 

I won't link the png here, but I wrote a script a few years ago that converted every character in Unicode Plane 1 (65,536 code points) from a TTF font file to a bitmap file for use in video games. If painting letters is just a matter of applying a specific texture somewhere, then it's not out of the realm of possibility to be able use a similar method to allow for any Unicode Plane 1 character to be used in-game. 

Link to comment
Share on other sites

That's actually a very interesting idea. I'm not sure how text will play in to the game, but another issue that pops up with this idea is of course, the monotony of it. If there's only one font implemented for the text elements, we'll be seeing very generic signs everywhere. Alas, the fate of convenience.

Link to comment
Share on other sites

Welcome to the forums Yuri :-) , you should join us in Discord  :P

 

 

Why limit ourselves to Latin characters when it's 2017 and we should all be using UTF-8 :D  , then we can have access to every character in pretty much every language on the planet. 

 

I won't link the png here, but I wrote a script a few years ago that converted every character in Unicode Plane 1 (65,536 code points) from a TTF font file to a bitmap file for use in video games. If painting letters is just a matter of applying a specific texture somewhere, then it's not out of the realm of possibility to be able use a similar method to allow for any Unicode Plane 1 character to be used in-game. 

 

A bitmap for fonts is pretty simple, but unfortunately just making lookup table from the UTF-8 space doesn't do some languages justice.  Many of those characters are actually modifiers that modify other characters, and don't print anything at all; also, some languages (e.g. Arabic) work best if you can support ligatures.

 

Also, I was thinking something with a bit more depth and weight to it than a simple bitmap. :)

 

That's actually a very interesting idea. I'm not sure how text will play in to the game, but another issue that pops up with this idea is of course, the monotony of it. If there's only one font implemented for the text elements, we'll be seeing very generic signs everywhere. Alas, the fate of convenience.

 

True, it could; but there's nothing stopping NQ from adding more fonts in the future.  There would also be nothing, at least as far as I can tell, that would keep an industrious user from making their own with voxels.  I'm thinking more for those folks who just want to save a bit of time and headache from having do it that way. :)

 

Ideally (to both points), it would be nice if there was a way of typing out letters in voxels with whatever font you wanted.  But dealing with fonts outside of bitmaps with simple kerning rules can be a bit of a nightmare.

Link to comment
Share on other sites

You can definitely make some great lettering out of voxels.

 

In Landmark people made and shared tons of voxel fonts.  But the letters have to be pretty big.  You basically need at least 5 x 3 voxels to make a blocky letter.  And more if you want it to look good with curves or sarifs. 

 

It would be great to have an element based way of making smaller lettering too though.

Link to comment
Share on other sites

A bitmap for fonts is pretty simple, but unfortunately just making lookup table from the UTF-8 space doesn't do some languages justice.  Many of those characters are actually modifiers that modify other characters, and don't print anything at all; also, some languages (e.g. Arabic) work best if you can support ligatures.

 

Also, I was thinking something with a bit more depth and weight to it than a simple bitmap. :)

 

For 99% of use cases, hardly anyone will be using any languages that need modifiers, and for those that do the bitmaps can be stacked to create the necessary characters. The point isn't to just have a lookup table, it's to be able to generate the entire plane without needing to create it by hand and giving users more options than just the latin character set. I'm well aware of what the first plane in UTF-8 looks like and that there are huge pieces of it that are reserved for future use, I have a poster of it stretching from my ceiling to my floor in my office at home. I've also done my fair share of porting C++ projects to support it over the years. 

 

 

If texturing isn't enough then I'd just say build the font out of voxels and be done with it. It would make a lot more sense for people to apply the letters they want via painting and texturing than to have to construct them as standalone elements for several reasons, though. 

 

Mostly, I'd rather see people selling voxelized fonts as blueprints and having a market open up for people who want to design them than to have that implemented by NQ. 

 

It also doesn't seem to fit into the category of "elements" because, presumably, you'd want to be able to resize said letters to fit into a variety of use cases. Also, elements appear to require some crafting and refining through various processes before they're completed, which nobody wants to do every time to be able to write on their constructs with. It would be much easier to just select a letter from a blueprint, drop it where needed, and craft out of whatever material/color you want on the spot. 

Link to comment
Share on other sites

Thinking on this further it would be possible to design a system such that you could use a graphics API (GDI+, FreeType, whatever) to write the full text and then extrude the pixels to voxels.  Sense this is a mostly one time op, the API need not be super speedy.  It isn't drawing the text every frame after all, its just being used to compute a voxel displacement that would just become set once the builder was done.

 

For 99% of use cases, hardly anyone will be using any languages that need modifiers, and for those that do the bitmaps can be stacked to create the necessary characters. The point isn't to just have a lookup table, it's to be able to generate the entire plane without needing to create it by hand and giving users more options than just the latin character set. I'm well aware of what the first plane in UTF-8 looks like and that there are huge pieces of it that are reserved for future use, I have a poster of it stretching from my ceiling to my floor in my office at home. I've also done my fair share of porting C++ projects to support it over the years. 

 

 

If texturing isn't enough then I'd just say build the font out of voxels and be done with it. It would make a lot more sense for people to apply the letters they want via painting and texturing than to have to construct them as standalone elements for several reasons, though. 

 

Mostly, I'd rather see people selling voxelized fonts as blueprints and having a market open up for people who want to design them than to have that implemented by NQ. 

 

It also doesn't seem to fit into the category of "elements" because, presumably, you'd want to be able to resize said letters to fit into a variety of use cases. Also, elements appear to require some crafting and refining through various processes before they're completed, which nobody wants to do every time to be able to write on their constructs with. It would be much easier to just select a letter from a blueprint, drop it where needed, and craft out of whatever material/color you want on the spot. 

 

I'm not sure I see the difference between having to come up with the resources for elements vs. having to come up with some for voxels.  The elements would be something you could quickly pick from a list as opposed to having to manually build something from voxels.  (Maybe there's something about building elements that I'm not aware of?)

 

You are correct in that you likely you couldn't resize an element to be some arbitrary size, but I see nothing that says that having some elements as shortcuts would prevent people from making their own fonts via voxels if they are so inclined.  Indeed, I'm sure people would do this regardless; and I don't doubt those will look absolutely amazing.

 

From what I'm gathering that you're suggesting we should be able to project a bitmap of text onto the voxel.  Which is also a fine idea.

 

Summary, I would like to be able to quickly decorate a ship with some text w/o having to do lots of fiddly voxel work if I don't have to. :P

Link to comment
Share on other sites

If you watch this video, you can see the letters they make with blocks on the side of the ship around 3:27, although I think we could all agree that we'd like our own letters to look a little nicer. 

 

 

 

I suppose if we're talking about painting specific glyphs to the side of a ship, regardless of how it happens, I wonder if this would fall into the same category as being able to put your organization logo on the side of your ships. 

Link to comment
Share on other sites

If you watch this video, you can see the letters they make with blocks on the side of the ship around 3:27, although I think we could all agree that we'd like our own letters to look a little nicer. 

 

... SNIP ...

 

I suppose if we're talking about painting specific glyphs to the side of a ship, regardless of how it happens, I wonder if this would fall into the same category as being able to put your organization logo on the side of your ships. 

 

I think it would indeed fall into that category, esp if you want to just project the bitmap of a rendered font. 

 

I see where you are talking about, from what it looks like they basically just painted the letters with the normal voxel coloring tool they've demonstrated in other videos.

 

Obviously, you could use the painting tool just like that; but yea, something a bit nicer. ;)

 

And perhaps a bit less frustrating than:

*Find single voxel in 3D space, click to color...*

*Find single voxel in 3D space, slowly drag mouse to color a line....*

*Find single voxel in 3D space, click to color...*

....

(ad nauseum)

 

Repeat for other side of ship....

 

Decide you want to change the color.... :unsure:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...