Skip to main content
Home
GrN.dk

Main navigation

  • Articles
  • Cases
  • Services
  • Your Digital Project Manager
  • About Greg Nowak
  • Image Gallery
  • Contact
User account menu
  • Log in

Join my community / free newsletter — sign up here

Breadcrumb

  1. Home

KotobaMon: Shipping a 3D Browser Game With No Build Step and Self-Hosted Voice

KotobaMon title screen: the Japanese logo コトバモン over a low-poly 3D island with monsters, cherry-blossom trees and a trainer.

By Greg Nowak. Last updated 2026-07-19.

KotobaMon (コトバモン, “Word Monster Safari”) is a small 3D game that runs entirely in a web browser. You walk a low-poly island, meet wild monsters and catch them — and because every monster is a Japanese word, catching them is how you pick up vocabulary. It is live at fantasy.grn.dk, needs no download, and was built as a self-contained side project.

The interesting part for anyone commissioning software is not the game itself but the constraints it was built under: no build step, no licensed art, no paid voice API and no backend to keep running. Those choices are what let a project like this ship quickly and cost almost nothing to host — and they are the same choices that decide whether a client prototype turns into a maintenance burden.

What the game actually does

KotobaMon drops you on an island with five biomes — meadow, forest, lake, volcano and snow — and lets you roam in third person with the keyboard or an on-screen joystick. Wild monsters wander the map. Walk into one and a turn-based battle starts, with a simple type chart deciding what is strong against what. Weaken a monster and you can throw a Kotodama Orb to catch it.

Catching is where the learning happens. Each attempt shows a short Japanese vocabulary quiz; answer correctly and you get a catch bonus and points. Progress runs through six missions and a KotobaDex of twelve species to complete, including a rare one you will not see often. The whole session saves to the browser, so there is no account to create and nothing to log into.

Every monster is a vocabulary word

The teaching idea is deliberately literal. A monster is not decorated with a Japanese label; the monster is the word. ヒバナ (hibana) is a spark, コダマ (kodama) is a tree spirit, and so on across the roster. Catching the creature and answering its quiz ties the sound, the writing and the meaning together in a single action, which sticks better than a flashcard on its own.

Every spoken line has full Japanese voice-over with simultaneous subtitles in Japanese, romaji and English. A learner can listen, read the kana, check the romaji reading and confirm the meaning without leaving the screen — the kind of scaffolding that makes the game usable by a genuine beginner rather than only by someone who already reads Japanese.

No build step, on purpose

KotobaMon is built on plain web technology. The 3D is handled by Three.js, vendored directly into the project, and the rest is vanilla JavaScript using native ES modules. There is no bundler, no transpiler and no build pipeline: the files that are written are the files that ship. That removes an entire category of tooling problems — dependency upgrades that break the build, lockfile drift, a CI step that has to be kept green — and it means the project will still run years from now without a toolchain to resurrect.

The visuals are procedural. The island terrain, the monsters and the trainer are all assembled from basic shapes in code rather than modelled in an external tool, so there are no art files to license, store or keep in sync. That keeps the whole thing small and legally clean — the monsters are, as the game puts it, one hundred per cent legally distinct — and it is a useful pattern well beyond games: generate what you need in code instead of managing a pile of binary assets.

Self-hosted AI voice instead of a metered API

The Japanese voice-over is generated with a self-hosted text-to-speech model (Kokoro) running on the same server, not a metered cloud voice API. A small script turns the script lines into audio files once, and those files are then served as static assets. There is no per-character billing, no third party receiving the text and no runtime dependency on an external service that could rate-limit or disappear.

For a hobby game the saving is trivial, but the shape of the decision is exactly what matters on client work. Any feature that calls a paid AI API on every use carries an open-ended cost and a privacy question. Where the output can be generated ahead of time — voice lines, canned responses, standard imagery — doing it once and self-hosting the result is often cheaper, faster at runtime and easier to reason about.

Build decision What it trades away Why it matters on client work
No build step (vendored Three.js, native ES modules) Some convenience of a modern bundler Nothing to keep green; the project still runs in years without a toolchain
Procedural art, no external assets The polish of hand-made models No licensing, no asset store, small footprint, legally clean
Self-hosted TTS, generated once The very latest cloud voices No per-use billing, no data sent out, no runtime API dependency
Browser localStorage saves, no backend Cross-device sync and accounts No database or server to run, patch or secure
Static files behind a CDN Server-side rendering and dynamic pages Cheap to host, fast worldwide, little to attack
The same constraints that kept a side project small are the ones that keep a commissioned build cheap to run and easy to hand over.

How it ships and stays cheap to run

Because the game is just static files, hosting is deliberately boring. It sits behind a Cloudflare edge in front of a plain origin server, saves progress in the browser and has no database or application server to maintain. Deploys are a file copy plus a cache purge, with each release version-stamped so the browser never serves a stale mix of old and new code — a small discipline that heads off the maddening “it works on my machine but the live site is broken” class of caching bug.

The result is a product with almost no moving parts to fail. There is no server process to crash at 3am, no scaling to plan for a traffic spike and no secret to rotate. That is not the right architecture for everything, but for anything that can be expressed as static assets plus a little client-side state, it is remarkably robust for the effort involved.

What a build like this is good for

A game is an easy way to show these techniques, but the same approach fits plenty of ordinary client needs: an interactive product demo, a gamified onboarding or training module, a configurator, a teaching tool, or a proof of concept that has to look real without a large budget behind it. The common thread is shipping something interactive and self-contained quickly, then keeping it cheap and low-maintenance afterwards.

KotobaMon is a small, honest example of that: a complete, playable experience with 3D graphics, AI-generated voice and a real learning mechanic, built on ordinary web technology and running on infrastructure that costs almost nothing to keep alive.

Need something interactive built?

If you have an idea for an interactive tool, demo or teaching experience and want it built to ship fast and stay cheap to run, get in touch with Greg. You can play KotobaMon here.

Related on GrN.dk

  • If the Facts Need JavaScript, AI Search May Miss the Full Page
  • AI Voice Agents Need More Than a Number and a Realtime Model
  • AI agents need a browser policy before they start clicking around

Sources

  • KotobaMon — play the game
  • Three.js
  • Kokoro-82M text-to-speech model
  • JavaScript modules — MDN
Last modified
2026-07-19

Tags

  • web development
  • three.js
  • browser games
  • language learning
  • self-hosted AI

Review Greg on Google

Greg Nowak Google Reviews

 

Written recommendations from Trafik og Veje, Aarhus Municipality (2011) and AgroTech (2010) — read them on LinkedIn.

Illustrated infographic summarizing: MCP 2026-07-28 Is an Auth Migration, Not a Version Bump
MCP 2026-07-28 Is an Auth Migration, Not a Version Bump
2026-08-29

MCP’s July 2026 release removes protocol sessions and tightens OAuth. Here’s a practical plan for migrating clients, servers and enterprise access safely.

Illustrated infographic summarizing: Turn a Technician’s Voice Note into a Work Order—Not Raw Audio
Turn a Technician’s Voice Note into a Work Order—Not Raw Audio
2026-08-28

Voice input can reduce the technician’s documentation burden when hours, materials and status are validated before the information is saved in the work order system.

Illustrated infographic summarizing: ChatGPT Disabled Personal Knowledge Sync. What Broke on Your Team?
ChatGPT Disabled Personal Knowledge Sync. What Broke on Your Team?
2026-08-27

ChatGPT retired personal sync connections for Enterprise and Edu. Here is how to find affected workflows, migrate access, and test permissions.

Illustrated infographic summarizing: Cloudflare’s September Bot Defaults Could Quietly Cut AI Visibility
Cloudflare’s September Bot Defaults Could Quietly Cut AI Visibility
2026-08-26

Cloudflare’s September bot defaults give publishers more control, but one training block could also cut search crawling and AI-driven discovery.

Illustrated infographic summarizing: Does Your AI Chatbot Clearly Identify Itself?
Does Your AI Chatbot Clearly Identify Itself?
2026-08-25

The EU’s transparency requirements for AI chatbots now apply. Here is how to make your bot’s identity clear, limit its system access and provide a genuine route to a member of staff.

Illustrated infographic summarizing: Should publishers add Google’s new Preferred Sources button?
Should publishers add Google’s new Preferred Sources button?
2026-08-24

Google’s Preferred Sources button is worth a controlled test for eligible publishers, with careful choices around placement, performance and measurement.

Illustrated infographic summarizing: Search Console Can See TikTok Now. Your Reporting Has to Catch Up
Search Console Can See TikTok Now. Your Reporting Has to Catch Up
2026-08-23

Google can now report how social profiles appear in Search. Here is how to measure cross-channel discovery without mistaking visibility for business results.

Illustrated infographic summarizing: Your AI workflow has logs. Can they explain one bad decision?
Your AI workflow has logs. Can they explain one bad decision?
2026-08-22

Logs can show that every service worked while leaving a bad AI decision unexplained. See how connected traces and careful redaction close the gap.

Illustrated infographic summarizing: Security Questionnaires Eat Into Selling Time—Let AI Find the Evidence
Security Questionnaires Eat Into Selling Time—Let AI Find the Evidence
2026-08-21

NIS 2 is generating more supplier questionnaires. A controlled AI assistant can find approved answers and sources—and route uncertain cases for review.

Illustrated infographic summarizing: Locked out of your Apple developer account? Fix it before October 1
Locked out of your Apple developer account? Fix it before October 1
2026-08-20

Apple's updated developer agreement must be accepted by October 1, 2026, and many small app owners cannot even log in. Here is where Apple's two-factor codes really go, and how to fix your access before the deadline.

More articles

Built by AI — available for your business. The daily articles on this site are researched, written and illustrated by an autonomous AI pipeline. At nowa.dk I install the same kind of AI automation in businesses at fixed prices — site in Danish, English version here, and web/marketing agencies have a dedicated page.

RSS feed

Footer

  • All articles
  • Contact

GrN.dk — AI automation, web platforms, web optimization, data handling and logistics.

© 2026 GrN.dk · LinkedIn · Contact · AI automation in Danish: nowa.dk

Behind GrN.dk: Individual Entrepreneur Codecrafter · Tax ID 305669096 · Bakhtrioni St. 22, 0194 Tbilisi, Georgia · official business register