Hazeron Forums

Full Version: The Shores of Hazeron Project
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
The following is excerpted from an e-mail received recently. It is a typical battery of questions that I get from college students. Perhaps it is part of a school project.

Firstly, which programming language is SoH primarily made with? A lot of projects seem to use C++ or C#, as they look to be the standard. 

Secondly, where did you originally start with such a large and unique project like SoH? Did you have some kind of general outline you planned out in advance like the list you have on your about page or did you introduce systems as and when they fit in?

Lastly, do you have any recommended reading or even general advice for someone who wanted to go about this type of project?

Shores of Hazeron is written almost entirely in C++. The Hazeron Status page shows the current source code line counts. After C++, the next largest chunk of source code is written in OpenGL Shader Language (GLSL). Then there is a smattering of shell scripts and other supporting materials. All told, they would comprise 57 500-page books, if printed in book form, without illustrations.

Shores of Hazeron started with a mental vision of a scene of space.

Being a computer geek, I was working on automating some of the dice rolling processes of the Traveller role-playing game one afternoon, in preparation for the weekly get together of booze and space adventure with my Air Force buddies. Oh, to be young again.

Tapping away at my keyboard, I fell into a reverie, imagining a fully 3D computer graphic environment where I was walking down the corridor of a spacecraft, looked out the window, and saw a space station orbiting a world. Spacecraft were going about missions of their own, to and from the planet's surface, living and working in space. All the while, my spacecraft was on a mission of its own, unrelated to their activities.

It was a highly ambitious daydream considering the 1.25 MHz computer I was using, built from a kit, with no graphical capabilities whatsoever, just an ASCII dumb terminal. Internet? What's that? Something my 300 baud acoustic coupler would never know.

As it were, I devoted my entire career to developing the skills necessary to write that code. I founded a software company and developed a revolutionary CAD program to produce the revenue necessary to do it.

I wrote that program. It is called Shores of Hazeron.

There was an architectural plan for the overall project from the beginning. I spent considerable time planning how this all had to work, involving multiple computers with varying capabilities. Quite a bit of work went into developing the underlying concepts, particularly the 3D interrelationships of objects, before writing tons of code.

Development of the server and client programs has remained true to that original architecture. Some details of implementation have changed along the way but the original architecture remains intact.

Let me address the topic of "introducing systems as they fit in". Every single detail of the software was not worked out ahead of time. On a project of this size, one must be prepared to forge ahead with incomplete information, knowing that you can solve whatever challenges come your way, if they are solveable using computer code. For example, I knew players in the game would have to shoot guns from the beginning. I didn't have to define it more than that. It isn't necessary to know precisely how your gun is going to shoot on the first day. You know when you get there that it will just require more code and that you'll be able to work it out.

In fact, that WAS the game for several years. Each time I wanted to do something new, code had to be written. I can remember those first moments of finally getting my body through the door of a spaceship, operating the controls to make it fly, or finally getting a spaceship to enter the landing bay of another spaceship in orbit. From a programming perspective, it's been a lot of fun, punctuated by a few moments of sobbing fist-pounding frustration.

In the beginning of the project, the universe was very coarse and planets had little detail. That coalesced into what it is today, after years of grinding work, sometimes nine steps back for every ten forward.

To anyone thinking seriously about a career in programming, I recommend the book C++ From the Ground Up by Herbert Schildt. In fact, I recommend it so much that I have purchased and given away many copies of that book over the years, two within just the last few years to a couple of promising young men I met at a local restaurant, so I know you can still get the book. That book changed my life, way back when.