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.

 

Unity 5 vs UE4 vs Photon vs DIY for MMO

Quote: “You can still use HLAPI despite its shortcomings”
Another Quote: “If you’re using one of the engines above (and not your own one), and your game requires Client-Driven Development Flow, you may want to start with a single-player Unity 5, or with a single-player UE4.”
[]

IDL: Encodings, Mappings, and Backward Compatibility

Quote: “Modifying generated code usually qualifies as a Really Bad Idea”
Another Quote: “How much can be gained by each of such specialized encodings – still depends on the game, but if you can try-and-test a dozen of different encodings within a few hours – it will usually allow you to learn quite a few things about your traffic (and to optimize things both visually and traffic-wise too).”
[]

MMOG. Point-to-Point Communications and non-blocking RPCs

Quote: “In other words, you can write your code ‘as if’ all-your-code-within-the-same-FSM executed within the same thread”
Another Quote: “As soon as we have these two parts of processing – we can say that our Server-to-Server communication is tolerant to all kinds of transient inter-server disconnects”
[]

MMOG: World States and Reducing Traffic

Quote: “In practice, for most classical RPGs you can get away with simulating each of your PCs and NPCs as a box (parallelepiped), or as prism (say, hexagonal or octagonal one)”
Another Quote: “Mathematically speaking, without Interest Management, the amount of data on our servers will need to send (to all players combined), is O(N^2). Interest Management reduces this number to O(N)”
[]

MMOG. RTT, Input Lag, and How to Mitigate Them

Quote: “For fast-paced games, there is one big problem with the flow shown on this diagram, and the name of the problem is “latency” (a.k.a. ‘input lag’)”
Another Quote: “No, better bandwidth doesn’t necessarily mean better latency”
[]

MMOG Server-Side. Programming Languages

Quote: “From the 50’000-feet point of view, 90% of the differences between modern mainstream programming languages (as they’re normally used – or better to say, SHOULD be used – at application-level) are minor or superficial.”
Another Quote: “On the server side (unlike client-side) protection from bot writers is not an issue (as server-side code is never exposed to players)”
[]

Asynchronous Processing for Finite State Machines/Actors: from plain event processing to Futures (with OO and Lambda Call Pyramids in between)

Quote: “With ‘callback pyramid’ it is not easy to express the concept of ‘wait for more than one thing to complete’ , which leads to unnecessary sequencing, adding to latencies (which may or may not be a problem for your purposes, but still a thing to keep in mind).”
Another Quote: “Don’t even think of converting all of your code to a so-called Continuation-Passing-Style”
[]