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 on all the aspects of software development (from UI to scalability, reliability and security) for all kinds of systems (from large-scale systems to embedded ones), the reasoning behind those opinions, and tons of practical observations, which may help you to choose what you really need for your specific task.

Your mileage may vary. Batteries not included.

 

Game Graphics 101: Lights!.. Camera!.. Frustum?

bb_part113_bookchapter014g_v1
Quote: “In games, more often than not, we’ll be dealing with so-called Phong reflection model.”
Another Quote: “with orthographic projection, the lines which project points from our 3D world onto our 2D screen, are no longer converging to one single point; instead, they go parallel to each other.”
[]

Game Graphics 101: Textures, UV Mapping, and Texture Filtering

bb_part112_bookchapter014f_v6
Quote: “Size-wise, textures are HUGE. Actually, in a typical 3D game, 90%+ of the space on disk (and of GPU bandwidth/RAM) are used by textures.”
Another Quote: “3D anti-aliasing algorithms can be divided into two large groups: ‘proper’ anti-aliasing (the one which tries to avoid anti-aliasing in the first place), and ‘post-processing’ anti-aliasing (the one which creates an aliased image – and then post-processes it to make it look better).”
[]

Infographics: Operation Costs in CPU Clock Cycles

part101_infographics_v07
Quote: “Back in 80s, it was possible to calculate the speed of the program just by looking at assembly.”
Another Quote: “keep in mind that these days compilers tend to ignore inline specifications more often than not”
[]

MOG Graphics 101: 3D Maths Basics, Meshes, Client- and Server-Side Polygon Counts

BB_part110_BookChapter014e_v2
Quote: “for the purposes of the MOG network communications, I usually suggest using Euler angles to represent rotations/orientations”
Another Quote: “One thing which persistently haunts 3D developers, is polygon count.”
[]

Deterministic Components for Distributed Systems

BB_part090_Overload133_jun2016_v1
Quote: “Then you can recover from any single server failure in a perfectly transparent manner”
Another Quote: “after the program fails in production, we can get the input log and run it in the comfort of a developer’s machine, under a debugger, as many times as we want, and get exactly the same variables at exactly the same points as happened in production”
[]

Game Graphics 101: 2D Animation, Sprites, Double and Triple Buffering

BB_part108_BookChapter014c_v1
Quote: “If you’re using double buffering AND perform buffer swap in sync with the V-Sync signal, your monitor will show your game just as a movie projector with shutter would show a cartoon in the cinema”
Another Quote: “I’ve seen a pretty minimal 2D engine written from scratch at a cost of 4-6 person-weeks”
[]