On the "game-y" side of things, I implemented planet ownership change, which made it possible to start working on various other parts.

  • The ability to abandon planets. It is quite simple; it has a delay which depends on how long the planet had been under your control when you abandon it (within limits of course), and it does affect happiness negatively.
  • The ability to destroy planets. It not only affects planet ownership (the planet has to become neutral before it is turned to dust), but many other parts of the game. Since planet destruction can destroy fleets around it, moving fleets have to be checked. In addition, any fleet that has a trajectory which takes it through the destroyed planet's area needs to have its travel time updated. Finally, there are many other details affected by it (such as the fleet detection system which needs to be reset, happiness which is affected on all planets in the owner's empire, all other planets in the same system, and possibly all planets on which self-destruct buildings are present).

I also added the necessary fields and computations to handle happiness effects from the size and age of a planet's controlling empire.

I am in the progress of modifying the event formatting code, as it used to have its specific mini-language; with the new "pre-processor", this has become redundant, but it requires a few other changes to be efficient.

On another front, I rewrote a lot of the existing tests for use with the test runner script, added new tests for old stuff, and started testing the new things as I added them. That takes a lot of time and it's a bit boring to do, but sometimes I discover a bug so I'm mostly fine with it.

I will not have much time to work on LegacyWorlds for the next two weeks, and so I intend to work mostly on both very small items (changes or fixes to the CLI views, that sort of things) or relatively big refactorings (but which don't require too much concentration and can be done in multiple stages) which I've had listed in my to-do list for quite a while. Oh, and quite possibly write more test scripts.


I implemented the tax system. It's pretty basic - you can set a tax rate for the whole empire, or use specific, per-planet tax rates. Of course, taxes influence happiness negatively after a certain threshold.

I have mostly rewritten the parser for the command language that is used for the game definitions as well as the command line interface. The idea is to be able to run automated test scripts. However, my initial plan (simply add a few things so it's easy to run a bunch of scripts with different parameters) didn't work out because I realised I'd have to eyeball the output for errors, and that gets rather hard once a dozen or more test scripts are being executed.

So I went for something a little deeper, and now I have a LISP-like language as the preprocessor. While it still has a few rather big warts (see this tweet for an example), it's mostly usable at this stage, so I don't intend to tweak it too much at the moment. I'll just add new built-ins when I need them and that's about it.

I've started working on the test runner, which is a script that loads all tests and executes them. It's a bit complicated because I still want to be able to run individual tests directly, so it has to process the test scripts into something more appropriate.

I intend to finish this next week, then get back to working on the game itself - my next "to-do list" item being the code for planet ownership changes, which is necessary for battles and to implement the ability to abandon planets or to blow them up.


LegacyWorlds is off-line... for now.

LegacyWorlds used to be an online, browser-based "strategy" (and by that, I mean "build as much weaponry as you can before hitting everyone else on the head with it") game. I lost all motivation to work on it, for many reasons.

The good news is... well, I'm doing something with some of the ideas that were meant for newer versions. So, LegacyWorlds will be back, albeit under a different form.

When? Hmm. I have no idea!

Meanwhile, the very old Beta 5 source code can be found on Github. I will publish the Beta 6 M1 source at some point, but that is definitely not a priority.

<- Older entries | Newer entries ->