This is a fly by update to let folks know that development is still ongoing in the Sojour world despite time pressures.
As per previous posts, the current development focus remains with the Calendar Mk2 system (which I should really give a name!).
One of the things that I have realised whilst developing this system is that it has many complex algorithms that interact with each other. As a result it can be quite easy to upset them and not know that they have been upset.
In the end I decided that this is an area of Sojour that absolutely needs some automated testing around it.
Automated tests will automatically ensure that the complex algorithms in the Mk2 Calendar are performing as they should. These tests also highlight existing potential issues and pitfalls – many of which have since been fixed after being identified by these tests.
We are now up to 134 integration tests that are automatically run by my development environment every time I merge code:
Writing the tests takes a fair bit of time, including the time required to integrate them with the automated build pipeline – it’s why the build server screenshot above shows a lot of red as I try to get the server to run the tests correctly.
Despite the time cost, these tests enable me to write code faster and more efficiently.
If I do break something it will be flagged on the build server and also in JIRA as shown below, top left (the red rectangles are builds where tests failed):
If any of the tests do fail, they will provide detailed information as to why they failed that should speed up my job and also help to produce a warm fuzzy feeling that things are working properly and headed in the right direction.
Ok, so that’s what I have been doing on the new calendar system, but, what’s Dorian when it’s not at home?
Dorian is a new graphics engine that I’m working on. It will replace Ionian which is the one currently used by Sojour (and by Ancient Armies).
Why a new graphics engine?
The primary reason is that Ionian is preventing Sojour from being a 64 bit application, which limits the memory it can access. This can lead to limitations with image sizes etc.
Dorian will be fully 64 bit compatible, it will support Direct-X 9, 11 and 12, plus it will allow rendered surfaces to be embedded in WinForms – much like the current Ionian engine.
The above demo shows it running successfully in a 64 bit application in a WinForm – a big milestone for the engine.
There is still a lot of work to do and once the engine is ready, Sojour will need to be updated to be able to work with the new engine. It will be a non-trivial job, but it’s a piece of tech debt that has to be tackled to allow me to take Sojour to the new places it has to go.
That’s it for this post!
Have fun!
RobP





