Return to Suhalia Noctis

NICE TRY

Noctis IV: Community Edition, TypeScript Reimplementation

An icy blue landscape beneath a bright horizon in Noctis

Noctis is a space exploration game originally released for MS-DOS in 1998. It features a procedurally generated universe in which the player can explore a virtually unbounded expanse of solar systems. It was written by one developer, Alessandro Ghignola, across four versions between 1997 and 2004. I think it is one of the most beautiful pieces of software ever created.

I first ran the program maybe ten years ago, and, for reasons that remain unclear, I basically never recovered. Once or twice a year, I found myself fishing for the executable. As laptops came and went, I found myself remembering my preferred DOSBox-X settings for getting reliable gameplay. Sometimes, when I woke up in the morning, I realized I had been dreaming about Noctis.

This blog details a project I began in January of 2026 to understand the original program and, later, to reimplement it in a modern runtime. This series of posts documents some highlights from both experiences.

It is a strange type of archaeology to dig into any program, let alone one this old. The source code, like the game itself, proved mercurial and inspired, opaque and adversarial, somehow both inviting and impenetrable. I can admit up front that I was not optimally prepared for the long, strange trip that I was signing up for.

In the first few chapters, I celebrate some feats of the original software that in equal measure moved and confounded me when I unearthed them. These take the shape of a sort of gonzo exploration of a technical artifact, which I am aware is a genre of writing that does not really exist. One way to think about it: Noctis is a magnificent piece of art, and these posts are an attempt to zoom way in--as far as I was capable--at how one man pulled it off.

I have included many interactive elements--I hope they convey some of the joy of my discoveries and the magnitude of the original accomplishment. If you are interested in the best bang for your buck, you might skip to the rendering engine, which I think was Ghignola's biggest triumph.

In the later chapters, I share a few war stories from porting Noctis from C++ to Typescript. Technical readers might immediately suspect that such a thing would not be a good idea, and after several months I can report that the technical readers would be correct to think that. But as a sort of VO2-max-tier workout for a software engineer seven years into a career--and with the assistance of our new friends who make Software On Tap--it was a good, worthwhile experience. The result of that effort is a reasonably exact copy of Noctis IV: CE, or Noctis IV: Community Edition, TypeScript Reimplementation. It runs on the browser canvas. Its publication status is described on the Play page.

Noctis IV: Community Edition, TypeScript Reimplementation (herafter known as NICE TRY) is a deterministic TypeScript reimplementation of Noctis IV, the space-exploration simulator created by Alessandro Ghignola, and of Noctis IV CE, the community-maintained edition of it released in 2008. The Noctis universe, its design, and the original source code are Ghignola's work (with the CE additions by the Anywhere But Home community). This reimplementation is published with Ghignola's blessing. All bugs should be presumed to be the work of Owen.

Postscript: I am aware that there is an elephant in the room of every personal project undertaken in 2026. It sounds like: bro, Claude? You know you could have just used Claude, right? Do you even token, man?? I will save my thoughts on that for a later day. This project includes a lot of silly work done by hand for no reason other than that I wanted to do it. It also includes some silly work where I let the context window go brr. I touch on making those choices in the later chapters, specifically throwing Claudes at the frame buffer.