…Just not enough time to blog about it… is the rest of the title.

It’s an old story here: I only have so much time in the day and if I could be developing or blogging, I’d rather be developing.

Here’s what you need to know about the last couple months:

Automatic programming has enabled me to do some incredible things.
Since I started using the Umple template language, I have made strides in persisting the results of my generated content. It also serves as an extra layer of versioning control, because I make sure that the code which does the things I need go into the automatic programmer and come out “working” on the other side. For the most part, I don’t keep stuff in my code that doesn’t work.

The template language helps me make HUGE changes across my code base with a couple tweaks here and there. It isn’t so much refactoring as… uh, sometimes complete restructuring. It’s so big I can’t even like, describe it. Uh, let me try…

So, I’m working on the Classic Traveller expanded star system generator, and at first I was determining the ‘main world’ of a system, and generating the bases and facilities all at once. Well, that posed some weird problems and I had to store a bunch of data redundantly. Um, without going too deep into database theory, redundancy is a bad thing. In an effort to reduce the redundancy, I decoupled base and facility generation from star system generation.

Now if you were generating star systems by hand, you’d be like, “lol, when am I ever going to have time to go back and fill that information in? It’s a bunch of dice rolls and blahblahblah.” And you would be right. If you were doing it by hand. But you aren’t doing it by hand, so you’re wrong. Sorry.

So the decoupling process was HUGE. It meant moving (and removing) dozens and in some cases, hundreds of lines of code. But here’s the trick: nearly all of it was automatically generated code. I only needed to change maybe a DOZEN lines of template code, create a new method in my template, and tweak the process control in my main class. It took about an hour to do what (if I’d done it all by hand) might have taken an entire day. Or days. Or might never have happened at all because it’s stupid and trivial, and who cares about data that much anyway?

Well, I do. I care. And the system is heavily data-driven which means I need many, many stages of the process to be as efficient as I can reasonably make them. And it all WORKS.

Then, there’s the fact that the template language, through what is basically a higher-level version of Object Composition (OOP), allows me to create new persist-able objects for my database with like, a dozen lines of code. It’s great. So far it has all worked on the first try. I have some stupendous Database Access Objects that I can create with ease, and when I figure out new tricks to facilitate the process… I can update all of the preexisting objects at the same time with minimal effort.

I’m so happy.

My work on Traveller implementation is my springboard to more complicated stuff.
I have primarily worked on the implementation of star system generation, and sector- and subsector-mapping. I’m working on trade routes as a prelude to developing Pocket Empires (per the T4 supplement), and eventually factions (such as megacorporations) and warfare. I’ve taken a few breaks here and there to work on some stuff so that when I actually move on to the next thing it isn’t a barren space with no groundwork, like…

– Spaceships. I started on a procedural starship generator. I hope to fill out a catalog of starships which can be used as quick reference for encounters and filling out navies and stuff.
– Blades in the Dark factions. It’s been a long time so I revisited this and rewrote a bunch of stuff from the ground up. I had the thing singing like, a year ago, before I tried to work out locations, and it’s languished ever since.
– Blades in the Dark missions. I did some exploratory work into expanding the basic mission structure to include like, non-heist shenanigans. It will hopefully for the basis of a procedural, Radiant-like quest system.
– D&D 3e/Pathfinder settlement rules. I want to eventually build a procedural city generator, and D&D has had rules for this for a long time. Pathfinder kinds of picked up the pieces, but nearly everything in PF is a bloated mess. I’ll have to play with this a lot before I can determine if there’s anything salvageable. I might just… really dislike Pathfinder. *shrug*

So I’m at the point where I can generate and load up a sector of space in seconds, and it is … glorious. I have separate models and views for sectors and subsectors of space, and what I really hope to do is create the routes between worlds so I can begin charting space across vast reaches. Individually these aren’t difficult problems to solve, but as the project grows larger… it gets harder to address each new feature added.

And the uh, “memory requirement” for me to manage before getting started in the morning is getting bigger. I am constantly fighting to “keep things simple” so that I can continue to develop the project. It helps that with a few mouse clicks, I can wipe the slate clean and generate another 10,000 star systems. It’s bad for me to get too invested in a chunk of procedurally generated content before the bulk of gameplay is accessible.

And there is so much more to do!

Once trade routes are operating, I plan to create planes of existence which overlaps with reality and provide shortcuts across the cosmos. Magic portals and the like, to enable characters to move across the universe with ease. But! First that requires I be able to filter and search through a growing list of candidate worlds, and connect them via portals.

I have other stuff on the back burner too, like generating alien races and populating worlds. A lot of that will have to wait until I have some way of interacting with them, because for now a lot of an individual world’s content is inaccessible (waiting for me to further development of the User Interface).

Coming soon are additional model and view features.
For now, the only way to interact with the generated content is via sector and subsector views: which give you summaries of world information and spatial relationships. I have some basic trade route information generated and displayed, which is neat… but entirely visual at the moment.

Soon, I hope to develop a “stellar” model and view, which will display individual planetary systems, including their stars, worlds, and moons. I want to be able to show orbital information, axial tilt, length of day & year, and so forth. A lot of this information I could calculate right now, but there’s no reason to because there’s no way to access that information outside of peering into the database.

Probably sometime after the stellar model, I’ll incorporate the planetary model, which will let you view individual worlds and procedurally generate their surface terrain detail. I’ve shared some images of past progress, and I’ve been reading a lot of geology and climate science (and physics, and engineering…) in the meantime in preparation for simulating and representing these details. Worlds will have atmospheres, water, and climate.

Somewhere in there, I’ll work out populations and settlements, but that’s quite a bit farther down the line.

And just like that, I’ve written 1200 words.
I need to get back to work. See you later, space cowboy…