summaryrefslogtreecommitdiff
path: root/starshatter_open_dev_update_2022_04.html
diff options
context:
space:
mode:
Diffstat (limited to 'starshatter_open_dev_update_2022_04.html')
-rw-r--r--starshatter_open_dev_update_2022_04.html65
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>