Skip to main content

Dora SSR's First 3D Duck

· 12 min read
Li Jin
Dora SSR developer

Dora did not avoid 3D simply because a few APIs were missing

To explain why Dora SSR did not support 3D in the past, the answer cannot be found in technical implementation alone.

It was not because we had never considered it, nor merely because model, camera, and lighting APIs are difficult to implement. What truly made me hesitate was that 3D has never been only a feature problem.

The Last Mile on A10mini

· 7 min read
Li Jin
Dora SSR developer

For several days, my good buddy and I tinkered with an A10mini together.

The handheld stayed in my hands. I pressed the buttons, watched the screen, and told him what had just happened. He helped analyze the cause, searched for information, and prepared another version for me to test.

After several rounds of ordinary pair debugging, Dora finally appeared in the A10mini's Ports menu one day.

I selected it and pressed A. The menu disappeared, and the engine started.

Letting an Agent Compose Game Music

· 15 min read
Li Jin
Dora SSR developer

From a community member's pure-Lua pull request to the first Jazz Hiphop track from Dora Agent that genuinely matched my taste.

When making games in the past, I often found searching for sound effects frustrating.

For a work with high musical ambitions, the answer is actually clear: find a professional musician whose style you love and who truly understands the work. Music is not something used to fill a blank in a game; it is part of the work's expression.

The awkward cases are small games, experimental prototypes, and ideas that appear suddenly.

Talk Through Requirements with the Agent First

· 10 min read
Li Jin
Dora SSR developer

An Agent can help press the accelerator, but humans still need to hold the steering wheel for requirements, architecture, and technology choices.

I am still discussing the requirement, and it already wants to edit files

Before asking an Agent to perform a long task, I have a habit: I do not let it code immediately. I ask it to act as a product manager for a while.

I begin with an idea that may still be vague. Together, we split requirements, add boundaries, and compare implementations. What is essential and what merely sounds attractive? Which route is convenient now and which will remain maintainable? What observable result will prove completion?

When Agents Test Other Agents

· 12 min read
Li Jin
Dora SSR developer

I recently ran an experiment that sounds unnecessarily circular. Codex acted as a user: it proposed games, sent multi-turn requests, inspected the results, and asked for changes. Dora Agent acted as the developer.

Across dozens of games, the work became more than a gallery. Codex summarized repeated failures and used them to improve Dora Agent itself. The games changed, and so did the software making them.

Why Agents Need a CLI

· 6 min read
Li Jin
Dora SSR developer

I wanted external Agents such as Codex and OpenCode to continue developing a Dora game while I stepped away from the computer.

They could read and edit code. Then the workflow stopped at the browser door. A person still had to open the Web IDE, click Run, copy the output, and explain what happened.

An Agent that can write code but cannot start the project or read the result has not really taken over a development task.

DoraX: Writing Game UI in TSX

· 6 min read
Li Jin
Dora SSR developer

In the ancient age of UI development, general-purpose code created controls one by one, assigned properties, attached children, and connected events.

The industry gradually extracted interface structure into XML-shaped domain languages. Data synchronization moved through MVC and MVVM. Later, JSX and React made a different compromise mainstream: keep a declarative tree, but place it back inside a programming language with components and data-driven rendering.

Dora carries a small record of the same cultural journey.

TypeScript as Dora's Signpost

· 6 min read
Li Jin
Dora SSR developer

Programming used to give me the pleasure of building with blocks. Different languages had different rhythms, shortcuts, and communities. Dora still keeps many of those doors open: Lua, YueScript, Teal, TypeScript, Rust, and Wa all serve different kinds of creators and extensions.

Then code gained a new reader. Agents do not experience syntax culture exactly as people do. That changed the role of the language placed at the entrance.

Game Text at Any Scale

· 6 min read
Li Jin
Dora SSR developer

Text in a document usually stays at the size it was designed for. Text in a game refuses to behave. A title scales into the scene, a button bounces, damage numbers grow above a character, and an entire UI may be transformed with its parent node.

The real problem is not merely “small Chinese text.” It is preserving vector-like quality across arbitrary font sizes and scene scaling.