The Long Path to Project Coreward Part I

ExoElement Games

2023/11/21

One Developer’s Childhood Inspiration

Sometime in 1986, my father had a choice while browsing the shelves of big glossy boxes at the local computer shop. The choice was which space game to purchase: “Star Fleet I: The War Begins” or “Starflight” from Electronic Arts. They both featured similar names and cover art and the former was published by a company called “interstel.” (A few of you just grinned in acknowledgement of that quirky coincidence.) starfleet image (hint: Even though Star Fleet was published by an intergalactic corporation, Starflight was a much more significant game.)

Thankfully, he chose Starflight. At home, we had a Columbia Data Products MPC on which it could run. It was the first low cost PC compatible clone on the market. This new game seemed like the perfect way to explore its capabilities.

I spent that entire summer with my brother and father playing Starflight. We were unreasonably obsessed with this game. It was like no other game we had seen. We scrawled out vague clues in a notebook. We scheduled evenings of together time to conduct exploration. We marveled at the scientific terms and seemingly accurate portrayal of planetary characteristics. We anxiously flinched at the “motion detected” message which always held the potential for either game-ending plasma bolts or a mysterious new riddle. It all felt deeply immersive, like you really were exploring a galaxy. It was as if you were directing the action top-down from a keyboard and CGA monitor which were miraculously, somehow, connected to a starship and its crew countless light-years away.

The curious side of me wondered how you could possibly fit such a grand game on two modest 5.25” floppy diskettes. The idealistic side of me envisioned even grander games in the years to come, games with better graphics and meticulously detailed planets. No other adventure game had anything near the scope of Starflight and it seemed obvious that its example was the one which all future exploration games would follow. In 1986, most games were just a collection of simple scenes, perhaps several rooms to explore, nothing near an entire galaxy full of life sized planets with all kinds of hidden secrets. Starflight’s technology and scale were awe inspiring. Its jaw dropping plot twist was the icing that confirmed its legacy forever in my memory.

I spent decades waiting but the even grander games never came, not really. No one followed up with bigger and better Starflight. Sure, I played its fantastic sequel. But, throughout the 90’s and 2000’s the idea of a giant procedurally generated galaxy to explore fell out of favor. No memorable attempts in that style made it to market.

So, in the winter of 2004, while working a temp job, I purchased the cheapest version of Visual Basic .NET at a local Officemax. I had fleeting thoughts of writing that game. Perhaps I’d add it to my portfolio as an example to kickstart my programming career. These were the beginnings of the projects that have landed us here. I’d like to show the evolution of my efforts during the past 20 years.

The first thing I did with VB.NET was write something that very much looks like a Visual Basic program. I dressed it up with some backgrounds and colorful buttons. This application, called “Little Bang Toolkit”, created metadata for an entire galaxy. Naturally, I created galaxies that were 30% bigger than what was featured in Starflight. Bigger is better, right? It took me roughly 3 weeks of hobby programming to complete. little bang toolkit (That vast empty space in the upper left was where I intended to render the planet you’d selected in 3d. I figured that wouldn’t be too hard. I was naive in 2004.)

After a while, I had Little Bang Toolkit exporting a file representing the galaxy because I wanted to do something with that file. I wanted to make my game. A significant start to the code I’d need had already been done. The rules engine and factory methods for the planets and their creation were coded. There was even accurate scientific flair in the form of star types, lithospheres, atmospheres and hydrosphere with actual compounds and elements. Looking back, this code wasn’t bad. Rudimentary, sure (the concept of a dictionary seems to have eluded me) but written well enough.

In another project I successfully read in the metadata to render an appropriately sized 2d galaxy. I figured out how to use DirectInput to capture the keyboard so you could fly a simple ship around. Eventually, I had created enough code to enable star system entry. As you entered, you could see each planet. Or, more accurately, simple circles rendered with DirectDraw in two dimensions because the skills needed to render the 3d planetary meshes were still beyond me. I had also picked a name for this project. It would be called “Outerspace.”

During Outerspace’s early development, I met some other folks online who had similar ambitions. I browsed starflt.com and lurked the forms. I posted sheepishly, asking for opinions on my game and its progression. There were quite a few deeply invested individuals with the same inspiration and aspirations. Occasionally, a newcomer would present their work. We’d all get excited because a few of those efforts looked really promising. It gave us hope and we’d wonder when that next game, that true tribute to Starflight, would be available for download. It was a vibrant online community. The original game had deeply motivated so many.

About the 3d planets. I needed to learn 3d graphics programming. It was late 2004 and I plodded along, reading tutorials, setting up simple polygons and doing scene instantiation. One day, I found a white paper describing a technique for tessellation and fractal displacement of a geosphere to create a realistic planet procedurally. I was pretty excited. Implementing this algorithm was within reach. Then, after a month or two of trial and error, I had a 3d planet:

A 3d planet from Outerspace: Outerspace 3d Planet

Around this time, another developer joined me and helped me port the beginner VB.NET code to C#. He helped me write classes to represent the crew members and starship attributes. He wrote several classes to handle GUI primitives and completed the UI. He wrote the welcome screen. Meanwhile, I continued to work on the planets, mineral harvesting and planet side life. The work was really adding up. What had we decided to undertake? Making an open world RPG was really hard.

In fact, it was too hard. The project eventually languished as we both found our careers and family lives come back into balance. Another Starflight tribute game had met what seemed to be their collective, inevitable fate, a failure to finish. Work on Outerspace stopped completely somewhere around 2006.

In the years after, I’d think about Outerspace occasionally. I had pangs of regret for not finishing it. In 2014 I published the code on github. Then, in 2016, I got an HTC Vive and the first several days of VR blew my mind. For a hobby game developer, the early days of playing Job Simulator and Valve’s Lab demo were incredibly optimistic and wonderful. It didn’t take long for me to revisit my Starflight tribute project with the idea of being on those planets in life size VR room scale.

In Part II I’ll describe the 6+ year solo development cycle for the Project Coreward codebase.

Thanks for reading and Borno, you’ll get your money one day.

>> Home