IT Hare on Soft.ware

Disclosure: On this site you won’t find specific advice on “how to call function xyz()”. Interpreting C++ ARM and #pragma dwim is also out of scope.

We’re treating our readers as intelligent beings who can use Google and/or StackOverflow, where all such specific questions were answered more than once.

What you will find is opinions, more opinions, and even more opinions on all the aspects of software development - and with a large chunk of them based on real-world experience too.

Your mileage may vary. Batteries not included.


Services Provided: Co-Location vs Rented/Dedicated Servers vs Cloud

Quote: “in general – I suggest to have your first few servers rented, and think about scaling your load (including using cloud servers) while you’re running your playtesting/public beta/etc.”
Another Quote: “most likely to rent just the space in the datacenter is going to be more expensive that renting space plus servers-in-that-space. Don’t ask me why it is the case – but it usually is”

Preparing to Deploy your Game: To Cloud or Not to Cloud?

Quote: “In fact, the following “hybrid” model is more optimal than both pure cloud-based and pure rental-based ones”
Another Quote: “One relatively recent and certainly welcome addition to the cloud scene, is so-called “bare-metal cloud” servers.”

Production Crashes. Post-factum Debugging. Logging. Replayable Deterministic Re(Actors)

Quote: “I’ve seen game companies with hundreds of thousands of dollars lost per hour of unplanned server downtime.”
Another Quote: “deterministic debugging is by far the best thing I have seen for production debugging.”

My Personal Take on Testing (including Unit Testing and (A)TDD/BDD)

Quote: “BTW, I don’t want to say that unit testing is pointless”
Another Quote: “I am arguing that changing design to enable testing should be avoided.”

(Almost-)Zero-Additional-Latency UDP-over-TCP

Quote: “we realize that for some of the Clients – UDP just doesn’t work because of some weird firewall between Client and Server”
Another Quote: “there is nothing to block us (so head-of-line blocking doesn’t apply)”

TCP Peculiarities as Applied to Games, Part II

Quote: “Nagle’s algorithm aims to deal with those [CENSORED] developers who’re trying to send data over TCP in really small chunks (like 1 byte each time)”
Another Quote: “it seems that “proportional rate reduction” (PRR, reportedly used by Linux kernels by default starting from 3.2) performs for gaming purposes a little bit better than the alternatives”

TCP Peculiarities for Games, part 1

Quote: “the best we can hope when using a single TCP connection over 5%-loss channel – is having 1.5-second “lag spike” every 5 or so minutes, and a 3-second “lag spike” every 2 hours.”
Another Quote: “we may already have the-information-we-need on the receiving host – but this information is hidden from us by layers of abstraction on receiving side”