Nu Replayer: A discovery of Artificial Negativity (Nov 2021)

EDITOR’S NOTE: CSY has been kind enough to give us an update on his Nu Replayer project. There are also some discoveries about the computer player in here, so it’s worth a gander even if you don’t use this tool.

Background

It has been quite a long while since I touched Nu Replayer in any form. Even in its “Perpetual Alpha” state, the existing functionality has worked quite nicely.

… until now, where I was playing single player levels using the Beginner ruleset. Even if the name does not make the most sense, it still exposes mechanics we normally might not see in a live game, so I will proceed anyway.

Technical Details

While I was struggling to collect data on the recently discovered Botanical natives, I instead stumbled upon a planet that, at first glance, had -30,084 neutronium fuel on its surface. This may blow the mind of a “naked eye”. It also caused a triangle to be incorrectly rendered onto the starmap… a triangle which would normally be visible (as possibly a diamond) only if you were using a wide screen with “Condensed View” disabled.

Then I attempted to isolate the fault. Did Planets Nu somehow had a limit of 2^15? I then inspected more closely, revealing that it was Nu Replayer at fault, pinpointing to the conversion system. It had converted 35,452 neuronium incorrectly due to using signed 16-bit integers for the four minerals (both of the quirks outlined in this section since fixed in the local build).

Game Details

Ideally, when playing with unlimited fuel active, I should not even be displaying fuel levels. Except… I have a feeling I may be exposing something that the computer players can do that we can not do in an unlimited fuel game. Namely, I suspect the computer players are able to unload fuel onto planets, while we are always stuck with full fuel tanks.

From what I am reading, NuHost consistently tops off fuel tanks (after the last mass check step), so the only mass difference that should be shown is the amount of fuel you would have burned that turn (assuming no cargo changes). If the computer players are unloading fuel onto planets, this heavily messes up that strategy. In short, I suspect the computer players are cheating on this subject.

Theoretical Plans

Nu Replayer itself is still missing a huge chunk of functionality regarding networking support. Namely, I do not know how to properly download a ZIP archive (the HTTP response heading and file are sent as a single response), and I kinda want to overhaul the starmap display.

If there is a way for me to tweak SDL_Net settings, I may be able to achieve the ZIP download on that front.

What I do not know if I choose to overhaul it is if I am able to keep the territory mapping functionality. Most maps tend to be huge, 2000×2000 LY and upwards in size. In the meantime, the current system is problematic, because Planets Nu itself does not comply with its own rules when it comes to map size.

If it says that a map size is 2000×2000, I expect all planets to stay within (1000,1000)-(3000,3000). This rule gets broken all the time in games, but the oldest games are safe, by virtue of using the “default map”.

Overall, I always intended for Nu Replayer to be a learning project. Little did I know it would be this huge of a project. This is currently my oldest project still in existence, having made my first released build all the way back in May 2012. For now, I am limiting most changes to non-compatibility breaking bug fixes.


If you have thoughts or insights about this, feel free to Comment.

Planets Magazine does not own, sponsor, or have anything to do with Nu Replayer; we’re just hosting this article. On the other hand, it would be silly to not rattle our tin cup when we have the chance, so: You can make a PayPal donation to support the Planets Magazine, or click the button below to Buy Us A Coffee. This does not go to CSY.

Buy Me A Coffee

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s