Kanji Adventure

so cool! Also it is in english. Awesome that you’re allowed to do the thesis in english, rather than a state language.

Also can we tweet your paper and github repo from Defold acc? May be you’ll get some interest from global community, Japanese folks and alike.

3 Likes

I would be honored! Although linking to the community page / kanjiadventure.github.io would be preferable as the repo contains an outdated build and won’t be updated for another month or so. I have updated the website to include the web build for now. Feel free to also mention our profile handle at https://twitter.com/kanjiadventure which we intend to use going forward for updates and such (in addition to the blog and this forum).

3 Likes

Anniversary update

A belated Happy New Years to everyone! It has been one year since we’ve started our journey and to celebrate, we are releasing an up-to-date web build that contains the latest and greatest. You can access it on a special website we have set up for the occasion. We are also establishing our media presence by setting up a Twitter feed, which will include behind the scenes tidbits about the development process, as well as a page on Defold Community, an online hub dedicated to games made in the development tool we are using.

anniv_icons

As for the game itself, we have a ton of stuff to get excited about, namely the addition of a second in-game area, completion of our harvesting and crafting interfaces, significant redesign of our main character, new spells and more! Enjoy the fresh new build and feel free to tell us what you think by reaching out to us in the Twitterverse! Stay tuned for more.

6 Likes

The biggest hurdle with designing our new spell interface seems to be coming up with the names for all those new spells. :smiley:

4 Likes

We have optimized the font used within the game by removing all unused characters. Here are some statistics:

  • font file size decreased from 6.1 MB to 110 kB
  • the game’s memory footprint decreased from 320 MB to 64 MB (native versions)
  • similarly, HTML builds went from using up 900 MB of RAM down to 200 MB
  • sizes of binaries decreased by 20 MB

10 Likes

I thought glyphs were dynamically streamed into memory as they were needed and not loaded all at once. :confused:

@sven is it just the nature of HTML5 builds since they need to keep more data in memory?

Seems to suggest entire glyphset is being loaded.

Set this to constrain the width of the glyph cache bitmap. When the engine renders text, it looks on the cache bitmap for a glyph. If it does not exist there, it will be added to the cache before rendering. If the cache bitmap is too small to contain all the glyphs the engine is asked to render, an error (ERROR:RENDER: Out of available cache cells! Consider increasing cache_width or cache_height for the font.) is signalled. If this value is 0 then the cache size is set automatically.

@Tomires could you post the defold font files as a config sample of its settings?

1 Like

Here you go:

I am guessing it might have something to do with the “all_chars” property? It is disabled by default (and unused as far as my other fonts go), however I had to enable it in order for the kanji characters to render at all.

You can read about all_chars and extra_characters here

1 Like

This isn’t really clear because it seems to be talking about output when bundling and not how they cause interactions at runtime. Do they force load more glyphs at runtime than what has been requested by all components / nodes using glyphs from fonts?

The font will contain the glyphs you specify. These will affect the bundle size, and it will be loaded in memory as long as the collection is loaded.
Next the texture used for rendering will be updated with at most X number of glyphs, that will fit the texture size cache_width/cache_height. This is to avoid having a texture that holds all glyphs at the same time.

I had assumed the font data was streamed from disk and not loaded into memory. Pretty sure I asked about this a long time and the answers lead me to that conclusion… So you stream glyphs into an extra texture from texture pages for rendering effiency, but the larger your font the worse your memory usage.

@Tomires did you already test extra_characters it would be easier to use than editing the actual font file if it works properly for you.

1 Like

Cool, I didn’t pay any attention to the extra_characters property. Nonetheless, I think physically removing characters is the way to go as I also had issues with editor performance when I used the original font file - when I opened the .font file in GUI mode, it sometimes led to the editor freezing up. Additionally, the editor routinely consumed about 4 GB of RAM on build and held onto that memory until I exited the editor (no idea how garbage collection works in Java, maybe it is a configuration issue on my part? The only thing that I have changed was the -Xmx parameter.). The original font file was massive though, it contained about 10k kanji/Chinese characters alone. :smiley: Take a look:

2 Likes

I’ll ping @sven to make sure I’m not making things up :slight_smile:

1 Like

Eh, that’s huuuge!? Do you really need the font to be that big? You should change to a distance field font (and the distance field material) and scale up.

2 Likes

The font needs to be relatively large as it covers the kanji tablets and is the main focus of queries. I will try changing to the distance field format once I get around to polishing fonts (which means hopefully by the release of the next proper build).

The idea behind distance field fonts is that you can create them in a moderate size and then scale up with very good quality. The font will take a lot less space that way.

4 Likes

Get your hands dirty!

Sgt. Carrot is looking for hard-working souls to help him with this year’s harvest. Applicants for this job offer need to be reasonably proficient in the mastery of kanji. A complimentary supply of bread will be provided.

In today’s update we will be looking at the brand new practice system in Kanji Adventure, which allows the player to revise kanji characters they might have forgotten. The system ties in to the new crafting mechanic, which rewards the player with resources they can use to make consumables and equipment. When you approach one of the resource nodes scattered around the world, you will be presented with a sequence of queries that will have you matching kanji conjugations with both their kana transcription and English meaning. Designed as a relaxing alternative to the hectic battle system, the player is not limited by time, however any mistakes they make affect the quality of their harvest.

Gathered resources can be refined using the new crafting interface, accessible through crafting stations specific to the type of resource in question. These provide summary of recipes available to the player and allow them to combine items. A similar system is in works for learning new spells.

In addition to these two new mechanics, the newest build of our game sports a reworked spell casting interface (third in fact, if you are keeping count), enhancements to the user interface with more sliders, tool-tips, pop-ups and all-around JUICE than ever before.

Gameplay should feel a lot smoother than in previous versions thanks to the ability to change target during movement, better camera handling, new animations and under-the-hood performance optimizations.

7 Likes

Wow, the game looks really great! Impressive work @Tomires!

Amidst working on the second in-game area, we have noticed that our tutorial system was a bit long in the tooth. Here is a sneak peak of a refreshed version :slight_smile:

image

7 Likes

Higher and higher

Over the past two weeks we have been hard at work designing the second in-game area and systems related to travel between the areas. While working on the second in-game area we have run into limitations stemming from the way our game interpreted input coordinates. We have reworked the routine and can now allow for maps with variable height, which will hopefully translate into more diverse environments. In addition to visual flair, we are coming up with game design implications, such as using the terrain height to limit movement and to block line of sight when using spells.

In other news, we have revamped the new player experience. The new tutorial looks neater, better adapts to the player’s actions and helps explain new interfaces and mechanics that were not present in the exploration showcase back in May last year. In the screenshot below, you might notice that we have switched the boring font for something more livelier. We hope that the font appears less official, more upbeat and will hopefully help convey a more entertaining gameplay experience to our target audience™.

Speaking of the user interface, we have added a way to rearrange the spell bar that is used in battle - the spellbook. In the very near future, we will introduce additional spells. As you acquire new spells, they will become unlocked in the spellbook, ready to be incorporated into your arsenal. We are currently discussing two methods of learning new spells - either via quests or from a so-called spell trainer in exchange for items and currency.

10 Likes