Quantum Rush Evolve Rule

Quantum Rush is a revival of the futuristic racing game. It features practice racing (just you and the track), speed racing (no track boosts, only engine power and maneuvering), and death racing (use on-track boosts and vehicle weaponry to survive to the finish). Multiple types of vehicles are available, which are customizable both functionally through research and aesthetically through purchasing with virtual funds.

While racing games have been nowhere near a favorite for myself in the past and Quantum Rush itself is merely in beta, I have been enjoying playing Quantum Rush. :)

I have submitted the following game rule to Evolve in hopes of getting it tracked.

  <game>
    <id>911337</id>
    <name>Quantum Rush</name>
    <conditions>
      <cond name="is-launch-exe-present" type="exe-present" exe="QuantumRush.exe"/>
      <cond name="has-mainData" type="file-present" file="{exedir}QuantumRush_Data\mainData"/>
      <cond name="has-resources-assets" type="file-present" file="{exedir}QuantumRush_Data\resources.assets"/>
    </conditions>
    <detection>
      <variant order="1" name="default">
        <if cond="is-launch-exe-present"/>
        <if cond="has-mainData"/>
        <if cond="has-resources-assets"/>
      </variant>
    </detection>
  </game>

Note, if you add this rule locally before the Evolve submission is (hopefully) accepted, your status will appear to you as prefixed with "Unverified". I consider this a nice little change from the last time I wrote a detection rule.

Update: The detection rule has been accepted. :)

Time Crashing Servers

If you haven't heard already, a large number of Minecraft servers had issues in the last day due to a typo related to time. The impact was large enough that Mojang's session servers temporary were unresponsive due to the flood of players attempting to reconnect to affected servers.

Spigot is a fork of the Bukkit/Craftbukkit projects. While most of the code base is the same as Craftbukkit, Spigot does introduce alterations as part of adding desired functionality. Unfortunately, like all projects, bugs can and do sometimes happens. One small code alteration involved unintentionally miscalculating server tick, which is based on time. Server tick is like air, it's important but you generally don't notice it unless there's a problem. The miscalculation resulted in a big problem where a negative number was introduced somewhere numbers should absolutely not be negative and interrupted server tick. The result for being affected was a locked up server requiring restart with a fixed server version.

Fortunately, there are solutions available. These are the most commonly applied ones:

  • Reverting back to official Craftbukkit builds (vanilla and Craftbukkit servers are not affected)
  • Updating to the latest 1.7.5 version of Spigot, which has the miscalculation corrected.
  • Using a backported "fixed" version of Spigot for 1.7.2/1.6.4

Craftbukkit builds: http://dl.bukkit.org/downloads/craftbukkit/ (link broken)

Spigot builds: http://ci.md-5.net/view/Spigot/job/Spigot/ (link broken)

Backport links: http://www.spigotmc.org/threads/arrayindexoutofboundsexception.14826/

It is worth noting, Spigot is used by a large number of servers for good reason.
MCStats Dynamic Graph

As problematic as this bug was, it hardly represents Spigot. Both vanilla Minecraft and Craftbukkit have had their own critical bugs in the past.

Honestly, the only thing that really bothered me about the incident, was not the part about having to spend approximately an hour fixing servers, but that Mojang Support tried to sweep under the rug that their servers were unavailable briefly. Mojang support instead claimed that all their servers were running in response to players asking why they couldn't log in. It was only with people correcting this, that Mojang Support admitted in replies that the session servers were indeed overwhelmed. I can tolerate a brief outage, just don't pretend it never happened.