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.

 

War on Clones, Part I. IP-based (non-)Identification. Identifying PCs and Macs

Quote: “NEVER EVER use IPv4 for long-term bans”
Another Quote: “If using MAC addresses to identify devices, you SHOULD gather stats on repeating MAC addresses within your DB”
[]

Even Bigger Brother, or Governments using Social Engineering to Circumvent Crypto

Quote: “Unless our Joe Average is a security specialist, he’ll install the certificate for sure”
Another Quote: “On the other hand, it is Very Clear that such a system IS a wet dream of a pretty much ANY government out there.”
[]

Logins and Passwords

Quote: “I STRONGLY recommend to provide an option for your players to use 3rd-party “social logins””
Another Quote: “you can be sure that as soon as your game is alive and kicking – you’ll need to implement password recovery for your players.”
[]

Random Number Generation

Quote: “even if your RNG is statistically perfect, people will still complain 🙁 “
Another Quote: “On modern x86 CPUs, single core can generate 150M+ random bytes/second this way (and this is a Damn Lot).”
[]

Implementing Queues for Event-Driven Programs

Quote: “full queues SHOULD NOT happen during normal operation”
Another Quote: “With queues-implemented-over-mutexes like the ones we’ve written above, the most annoying thing performance-wise is that there is a chance that the OS’s scheduler can force the preemptive context switch right when the thread-being-preempted-is-owning-our-mutex.”
[]

C++ Guidelines – Made-to-Measure vs One-Size-Fits-All

Abstract: “After bashing all those Big Name guys for making those over-arching sets of guidelines, it is perfectly logical for me myself to do the same 😉”
Quote: “DON’T use C-style cast, EVER. If you DO need a cast – DO spend time on figuring out which of C++ *_cast<>s you really mean (and maybe, you’ll find a way to avoid that cast at all)”
[]

C++ Performance: Common Wisdoms and Common “Wisdoms”

Quote: “over(ab)using C++ features is a different story, we’ll discuss these features below on case-by-case basis”
Another Quote: “Compiler will use all its Next-to-Divine Wisdom to show you that it is smarter than you are, and to ignore most of those inline specifications you carefully wrote.”
[]