After helping another fellow Python programmer with some help packaging their game (see comments on this post), I dove back into Star Merchant 2. I’ll be honest and say that I haven’t been giving it the love that it deserves. So tonight was spent working on a feature that expands on something found in the original.
For me, the most fascinating part of playing a game of no small complexity is discovering the little details that were given to it. I am not referring to Easter Eggs, just how much effort and attention was paid to even the smallest nut or bolt in the game.
Star Merchant 2 is no different in that regard. In the original, there was an elapsed game time counter on the display. I sometimes referred to it as the metric clock, since it didn’t really give you a human-relatable date and time. In a phrase, it could have been done better.
SM2 now has that “something better” I wanted to put into it. Put simply, it now displays an internal ship’s chronometer in a human-readable format, and also keeps a separate elapsed game time counter. And all of it was possible with only a few lines of code and the datetime module found in Python.
But I didn’t want to stop there either. I want each game of SM2 played to be unique. So, with a little more code, each new game has a dynamic “start date”, which is based on the current date, then flung far into the future. This also forms the basis of some of the hashes used in the game. This results in each game being even more unique, much like how Nethack works, only in a different format.
Why do I go to all of this trouble? Because I think it adds not only to the game’s playability (and replay) but also gives it that extra bit of attention and detail that makes it all the more immersive and fun.
Indie game programmers out there may want to consider this as they delve into their designs and make them become a reality.