From 1486910d47075b65976195af75e904a32a7634aa Mon Sep 17 00:00:00 2001 From: Aki Date: Fri, 8 Apr 2022 20:14:05 +0200 Subject: Added new starshatter dev blog post --- starshatter_open_dev_update_2022_04.html | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 starshatter_open_dev_update_2022_04.html (limited to 'starshatter_open_dev_update_2022_04.html') diff --git a/starshatter_open_dev_update_2022_04.html b/starshatter_open_dev_update_2022_04.html new file mode 100644 index 0000000..af69749 --- /dev/null +++ b/starshatter_open_dev_update_2022_04.html @@ -0,0 +1,65 @@ + + + + + + + + + +Starshatter: The Open Source Project - Dev Update - April 2022 + + + +
+

Starshatter: The Open Source Project
Dev Update - April 2022

+

Published on 2022-04-08 20:13:00+02:00 +

Around two months have passed since last development update for my for of Starshatter source. In this time I had a +few activity spikes and got some work done. Sad news I'm still at the stage of breaking things rather than implementing +novel things in the game. This theme will keep up until I will feel comfortable with the project structure enough to +add new things to the pile. +

Let's get over highlights! +

MSVC Support

+

One of the first things I did when I started working on Starshatter was switching to CMake and then MinGW. I left +pieces of MSVC configuration in CMake files and I never actually tested them. Reason was very simple - I have only +Linux and Unix machines at home. That changed and of course first thing I did was setting up build environment there. +

I'm not consistent with builds with MSVC - my main focus is still MinGW - still, at least now I have confidence that +CMake configuration works and that the description in readme is valid. But there's one more thing coming from me having +this environment... +

Magic Editor Builds

+

Yup, the main obstacle in building Magic in MinGW was the fact that it is using AFX. MSVC environment enabled me to +try building it, fix some mistakes in CMake, do some clean-ups, and here we are.

+Magic Editor successfully running +

Headless Server Separated from Game Executable

+

Until now Starshatter.exe (or Stars45.exe) supported -server CLI option that launched +game in a dedicated server mode with a small window. It used WinApi to exist and I just couldn't tolerate that. It had +to be purged. In its place I added new executable Starserver.exe that operates in console mode. I pretty much +kept removing and cutting the class that implemented the server until I got rid off most of the unwanted parts. After +that I shuffled some interface methods around and this allowed me to cut the structure of the project creating a new +library called StarsEx containing most of the logic and two modules producing own executables: +Starshatter and Starserver. +

The plan for now is to keep cutting the StarsEx module in order to limit strong relationships within it, +which in turn will enable me to create new smaller modules that will focus on certain functionality like the current +NetEx. I designated a milestone in this effort which I call "a headless server," which is basically the +Starserver.exe but it doesn't link directly to DirectX or WinApi libraries. Meaning I should be able to build it +on Linux host. +

Overall Modernization and Other Useless Refactoring

+

At all time I keep in mind increasing overall code quality in light of modern C++ standards. I keep moving towards +C++17 and standardized interfaces (e.g., POSIX). This effort includes the shuffles I mentioned above, but other than +the server split there are two more highlights in here: both NetEx and FoundationEx build under Linux +now. +

For best description of structure changes see the repository. Even +better, check the log - I sometimes write more detailed explanations of why I do certain things, especially when I +think it might not be clear in future or if there are many good options. +

Website Launched

+

This happened some time ago, but I sit down and created a website for the project. You can see it +here. It includes downloadable pre-built executables of the game. +

What's Next? And Some Loose Ideas

+

My main focus remains on getting building Starshatter fully on Linux. I want to accomplish it by first getting a +completely headless dedicated server working. The intent is that it will imply a good enough separation of rendering +and controls from simulation and overall game logics. +

Other than that, I started thinking about some fun stuff. First being Opentrack/Freetrack support for virtual +cockpit. Second being hosting multiplayer games each few weeks or so. Last being starting a Discord server, mostly to +support these multiplayer sessions. I'm still waiting and grokking these ideas. I'll keep you updated. +

+ -- cgit v1.1