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.

TCP Peculiarities as Applied to Games, Part II

March 14, 2017 by “No Bugs” Bunny

Nagle's Algorithm

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

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.ProgrammingNetwork Programming

Read more

TCP Peculiarities for Games, part 1

March 7, 2017 by “No Bugs” Bunny

Exponential Back-Off

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

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.ProgrammingNetwork Programming

Read more

Client: Installer & Auto-Updates

February 28, 2017 by “No Bugs” Bunny

Update of Updater

Quote:

Pretty much whatever-we-do, there will be a certain percentage of players which are trying to run an obsolete version of the Client forever-and-ever

Another Quote:

It is very important to keep updater transaction-oriented.

Filed under: Book: D&D of MOGs1st beta of Vol. IV-VIOn.ProgrammingTips and Tricks

Read more

Some Big-Os are Bigger Than Others

February 21, 2017 by “No Bugs” Bunny

how to weigh 780 kilos as equal to 1 kilo

Quote:

Strictly speaking, for real-world computers, every algorithm which completes in a finite time can be said to be O(1)

Another Quote:

now the difference because of unfortunate ‘jumps’ over (uncached at the time) memory can lead to a 100x+ (!) performance difference. However, it is still O(1) and is rarely taken into account during performance analysis

Filed under: On.ProgrammingOptimizations

Read more