diff options
Diffstat (limited to 'starshatter_open_dev_update_2022_04.html')
-rw-r--r-- | starshatter_open_dev_update_2022_04.html | 65 |
1 files changed, 65 insertions, 0 deletions
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 @@ +<!doctype html> +<html lang="en"> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="author" content="aki"> +<meta name="tags" content="starshatter, starshatter: the open source project, development blog"> +<link rel="icon" type="image/png" href="cylo.png"> +<link rel="stylesheet" href="style.css"> + +<title>Starshatter: The Open Source Project - Dev Update - April 2022</title> + +<nav><p><a href="https://ignore.pl">ignore.pl</a></p></nav> + +<article> +<h1>Starshatter: The Open Source Project<br>Dev Update - April 2022</h1> +<p class="subtitle">Published on 2022-04-08 20:13:00+02:00 +<p>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. +<p>Let's get over highlights! +<h2>MSVC Support</h2> +<p>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. +<p>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... +<h2>Magic Editor Builds</h2> +<p>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.</p> +<img src="starshatter_open_dev_update_2022_04-1.png" alt="Magic Editor successfully running"> +<h2>Headless Server Separated from Game Executable</h2> +<p>Until now <i>Starshatter.exe</i> (or <i>Stars45.exe</i>) supported <code>-server</code> 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 <i>Starserver.exe</i> 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 <b>StarsEx</b> containing most of the logic and two modules producing own executables: +<b>Starshatter</b> and <b>Starserver</b>. +<p>The plan for now is to keep cutting the <b>StarsEx</b> 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 +<b>NetEx</b>. I designated a milestone in this effort which I call "a headless server," which is basically the +<i>Starserver.exe</i> but it doesn't link directly to DirectX or WinApi libraries. Meaning I should be able to build it +on Linux host. +<h2>Overall Modernization and Other Useless Refactoring</h2> +<p>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 <b>NetEx</b> and <b>FoundationEx</b> build under Linux +now. +<p>For best description of structure changes see <a href="https://git.ignore.pl/starshatter/">the repository</a>. 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. +<h2>Website Launched</h2> +<p>This happened some time ago, but I sit down and created a website for the project. You can see it +<a href="https://ignore.pl/starshatter/">here</a>. It includes downloadable pre-built executables of the game. +<h2>What's Next? And Some Loose Ideas</h2> +<p>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. +<p>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. +</article> +<script src="https://stats.ignore.pl/track.js"></script> |