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.

 

Scaling Stateful Objects

Quote: “it is DB which is usually The Bottleneck™ – it means that we’re saving this enormous amount of load, exactly where it really matters.”
Another Quote: “as discussed above, the real-world task is always about scaling the whole system, including database; and in this regard Stateless-App-based systems exhibit significant problems.”
[]

Scalability for MOGs

Quote: “Whenever Game Event is interrupted for significant time, as a rule of thumb it is better to roll back the interrupted Game Event rather than trying to restore the exact Game World State in the middle of the Game Event.”
Another Quote: “Just like Scaling Up, improving performance doesn’t provide infinite scalability. However, it happens that it is all about numbers.”
[]

Docker and MOGs

Quote: “Contrary to popular belief, there are benefits of Docker containers which go beyond providing poorly written programs with exact versions of their dependencies”
Another Quote: “I do not buy a rather popular argument that “to achieve scalability, apps and middleware should be stateless””
[]

DevOps for MOGs

Quote: “This communication channel (coming from Operations back to Development) is extremely important to have a game which is able to work anywhere-reliably in the real world”
Another Quote: “Most importantly, our processes should allow these different production cycles to co-exist.”
[]

Databases and RAIDs

Quote: “for quite a few applications out there, the most important feature of the RAID is not even redundancy, but greatly improved write latency. Moreover – this is the thing which we cannot possibly get from software RAID (!).”
Another Quote: “As a rule of thumb – I am trying to keep the size of OLTP DB small enough to fit into RAM of the OLTP DB Server.”
[]

Configuring Hardware for MOG. Part I (Switches, Firewalls, Game Servers)

Quote: “beware: “there are distros beyond the RedHat/Debian dichotomy – but if you’re reading this section looking for my advice on it – most likely you still have too little experience running Linux to look in that direction”
Another Quote: “every time I disable Active Directory Service from a production server – I feel as a doctor who successfully removed a cancer tumor from a patient”
[]

Ultra-fast Serialization of C++ Objects

Quote: “in both these cases we can be 100% sure that we’ll be deserializing this state on the executable which is identical to the executable which serialized the state.”
Another Quote: “Even when comparing with home-grown code with per-field serialization, our Ultra-Fast Serialization still wins (up to 1.5x-2x) “
[]