Back to Blog
Announcement

From Godot to Three.js: Faster, Better Games on Tesana

From Godot to Three.js: Faster, Better Games on Tesana

When we started Tesana, we built on Godot. It was the right call at the time: a full, open-source game engine with physics, scenes and a scripting language designed for games.

As Tesana grew, two things mattered more than anything else: the quality of the games we generate, and how long you wait to play them. On both, Godot was holding us back.

So we rebuilt Tesana’s game engine around Three.js from the ground up. Games now generate faster and play better. Average generation time on Tesana has now dropped from around 60 minutes to under 5.

Engine fit: why Godot stopped fitting generated games

Godot is built for people working inside an editor. Scenes, nodes and resources are designed to be assembled by hand, then exported for each platform.

Tesana doesn’t work that way. A game is written from a prompt, end to end, and then played in the browser. With Godot, every generation had to pass through an engine-specific project format and a full export before anyone could play it.

That pipeline added time at every step. It also added failure points: a small error in a scene file or an export setting could break a game that was otherwise correct. When a build failed, the fix meant another pass through the whole loop.

Web-native: why Three.js is the future

Three.js is a 3D library for the web, written in JavaScript. There is no editor format and no export step. The code Tesana generates is the game, and it runs directly in the browser.

That changes quality in a few concrete ways:

  • Fewer moving parts. Game logic, rendering, UI and input live in one codebase. There is no translation layer between what Tesana writes and what the player runs.
  • Fewer broken builds. Without scene files and export settings, a whole class of failures disappears. More games work on the first try.
  • Precise edits. When you ask for a change, Tesana edits the relevant code directly. Mechanics, lighting, characters and UI can be adjusted without rebuilding the project.
  • Runs anywhere. Games play in any modern browser on desktop and mobile, the same way every time.

The result is games that are more complete, more stable and closer to what you described.

Generation speed: from 60 minutes to under 5

The biggest change is time. Average generation time on Tesana has dropped from around 60 minutes to under 5.

Most of that hour wasn’t spent writing the game. It was spent moving the game through Godot: building the project structure, exporting it for the web, and retrying when a build failed. Three.js removes those steps. Once the code is written, the game is ready to play.

Prompt-to-playable generation time on Tesana, before and after. The Godot pipeline averaged around 60 minutes; the Three.js pipeline is under 5 minutes.
Prompt to playable game · before and after

Faster generation also changes how you build. Tesana has always been about iteration: describe, play, adjust, repeat. At 60 minutes, each round was a wait. At under 5, you can test an idea, change it and play again in one sitting.

What changes for you: the same prompts, faster games

Nothing changes in how you use Tesana. You still describe the idea, the character and the mechanics in plain language, and Tesana builds the game.

What you’ll notice:

  • Games are ready in minutes, not an hour.
  • More games work the first time you hit play.
  • Edits land faster, so you can iterate on mechanics, levels and visuals in quick rounds.
  • Games open instantly in the browser and are easy to share.

Looking ahead

The tools for making games are changing fast. The engine that made sense a year ago isn’t always the one that makes sense today, and we’ll keep choosing the stack that produces the best games.

Tesana handles the engine, the runtime and the pipeline, so you don’t have to. Your job is the game: the world, the characters and the ideas. We’ll make sure it’s playable in minutes.

— The Tesana team