summaryrefslogtreecommitdiff
path: root/starshatter_open_dev_update_2022_01.html
blob: 8f997033db7b22f9d5d42968cf0b0a5570221c50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!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">
<meta name="published-on" content="2022-01-30T20:00:00+01:00">
<meta name="last-modified-on" content="2022-04-08T19:10:00+02:00">
<link rel="icon" type="image/png" href="favicon.png">
<link rel="stylesheet" href="style.css">

<title>Starshatter: The Open Source Project - Dev Update - January 2022</title>

<header>
<nav><a href="https://ignore.pl">ignore.pl</a></nav>
<time>30 January 2022</time>
<h1>Starshatter: The Open Source Project<br>Dev Update - January 2022</h1>
</header>

<article>
<p>Few months ago I created a fork of Starshatter Open, and because it appears to be the only (semi-) active one, and
also because I already have a platform on which I share my pointless thoughts; I thought that I'll do exactly that.
<p>Starshatter was never a popular game and these days the community is even more dead. That's mostly because there's
only few of us and as far as I know I'm the only active developer that gives it some time once a few months.
<h2>State of My Project</h2>
<p>The goals of my work on Starshatter Open are:</p>
<ul>
<li>Stabilizing the build by moving to CMake (for each component)
<li>Running Starshatter natively on Linux
<li>Have some fun in multiplayer
</ul>
<p>Order is arbitrary. So far the first goal has been partially accomplished. I cleaned up the whole building process
and moved build configuration generation to CMake. It worked fined for everything but <b>Magic2</b>. It was left behind
because it's based on MFC and doing anything with it is annoying. Nonetheless, it's on the to-do list.
<p>During the build system change I cleaned up duplicates and, let's call them "wild", parts of the solutions. For
<b>Stars45</b> it meant that I merged <b>nGenEx</b> and <b>Parser</b> sub-projects into it. They were strongly related
and they were included via direct path anyway.
<p>All third-party code has been properly checked out from their repositories and integrated into main CMake tree. In
the long run, I'd like to separate them into repositories and install into a common root for building, but for now this
will work. <b>Opcode</b> has also been updated but I did it all manually. First off I had to find the correct version of
it. Then I created CMakeLists for it myself. Oh, I mean both <b>Opcodes</b>, because apparently the source was doubled
for some reason. One was used as headers for <b>Stars45</b> the other one was built. Both were incredibly broken.
<p>After I was able to build the project consistently with MSVC and MSYS2/MinGW I took a break. Recently, I fixed some
paths, formatting and other minor things and figured out that I probably should try to build it on Linux with MinGW.
Turns out that after all path updates it worked out just fine and it runs under Wine just right.
<p>The next goal is the biggest one and it's hard to divide it into smaller ones. Of course, I mean port out of DirectX.
Starshatter is decently structured and most of graphics code is isolated in its own part, but there are some exceptions.
And while DirectX is quite OK, the windows headers are used all over the place. This might be a better target for now.
<p>We'll see. If you want to contribute and you don't know where, hit me up.
<h2>Useful Links</h2>
<ul>
<li><a href="https://www.hard-light.net/forums/index.php?board=234.0">Starshatter Open Source Project at HLP Forums</a>
<li><a href="https://negative-10.com/starshatter/">Starshatter Index at Negative-10</a>
<li><a href="https://git.ignore.pl/starshatter/">Starshatter Open Repository</a> (my fork)
</ul>
<p>In case this is all new to you I suggest to see the Negative-10's site.
<h2>Screenshots</h2>
<p>Here are two screenshots of Starshatter running in windowed mode with Wine on my Linux machine. In the first one I
forgot to copy the language pack into the directory, so the text is all messed up.</p>
<img src="starshatter_open_dev_update_2022_01-1.png" alt="forgot about language pack">
<img src="starshatter_open_dev_update_2022_01-2.png" alt="this time I didn't">
</article>
<script src="https://stats.ignore.pl/track.js"></script>