Browsed by
Category: Technical

Video game developers leave the industry at a steady rate after 3-6 years of work. 

Video game developers leave the industry at a steady rate after 3-6 years of work. 

This article from Game Developer gives a pretty accurate description of working in the game industry in the 2010-20’s. They share a very common story of Frank D’Angelo who got into games, but ultimate left by late 20’s. Long term game careers are rare, with the latest numbers showing only 17% of 30,000 attendees at the Game Developers Conference having worked in the industry for seven to ten years. Why? It’s a number of factors, but common are: high stress and long hours, constant need to move for the next game job, unstable work with frequent layoffs, and unhealthy life and family balance. As someone that also felt themselves move away from games in my graphics career, I can echo much of what he experienced.

Jason Schreier also writes about these factors in his book “Blood, Sweat, and Pixels” and more recent follow up “Press Reset“.

Dealing with Time Zones in Code

Dealing with Time Zones in Code

The real answer is to always use seconds since an epoch for logging – like the Unix epoch – with 64 bit integer representation (signed, if you want to allow stamps before the epoch). Any real-world time system has some non-linear, non-monotonic behaviour like leap hours or daylight savings.

Waaaay back in 2007

Waaaay back in 2007

I remember seeing this originally way back in the day – and I’m still a little baffled why this hasn’t caught on in the age of gigantic TV’s. Probably because head tracking isn’t exactly perfect just yet? While not as immersive as a full VR headset, this does provide a full vr experience without the headset, glasses, or any other intrusive headgear.

Johnny Chung Lee (at Carnegie Mellon at the time, now at Google) used the infrared camera in the Wii remote and a head mounted sensor bar (two IR LEDs), to accurately track the location of your head and render view dependent images on the screen. This effectively transforms your display into a portal to a virtual environment. The display properly reacts to head and body movement as if it were a real window creating a realistic illusion of depth and space. By Johnny Chung Lee, Carnegie Mellon University. For more information and software visit http://johnnylee.net

Best Oculus Quest 2 Link cables

Best Oculus Quest 2 Link cables

I just upgraded from the older HTC Vive to the Oculus Quest 2. The Quest’s wireless operation without needing all the cables and sensors around your room was a huge improvement. One big shortcoming, however, is the 1 meter USB-C cable. It is ok for charging, but far too short for using the PC connected VR Oculus Link functionality.

The Quest II gets about 2-3 hours on battery. This is ok in many cases, but I definitely could kill it in a heavy gaming session. You can buy additions like the Oculus Quest 2 Elite Strap with battery that doubles your battery time – or go as far as the VR Power 2 that can give you up to 8-10 hours.

But for PC VR, you need a data cable. The longer official Oculus Quest II cable is 16ft/5m long and has a great angled attachment with velcro – but runs a eye popping $79. There are alternatives, but you need to get a high quality cable that does both power and data. Enter Android Central that gives you a bunch of great options.

In the end, I went with the TNE 16ft Link Cable for Oculus Quest 2/Quest VR Type C Cable for $18. It also has the side mount plug with velcro strap like the official one. It has fit and worked perfectly so far, and I also have about $60 to spend on games.

Memory CAS latency and true speed

Memory CAS latency and true speed

How do you evaluate how fast a stick of ram is? Many people look at the raw frequency, others CAS latency, and others transfer rate.

As this article outlines, you need to consider both speed AND latency.

For speed (MT/s), this is fairly straightforward, higher is better. But that is only half the equation. The latency of access also matters. Latency is reported as the CAS time – but that is reporting only the total number of clock cycles before access. This can be misleading by itself, because it’s just a number of cycles – not how LONG that time is.

To get an apples-to-apples comparison on latency, we need to look at latency in terms of nanoseconds – not clock cycles. To calculate a module’s latency in nanoseconds, simple multiply clock cycle duration by the total number of clock cycles.

latency (ns) = clock cycle time (ns) x number of clock cycles

Otherwise, you may not be getting much of an improvement at all. Youtube testers often find little difference between different sticks of ram because they might be focusing on faster CAS latency but not doing the whole equation. The table below shows some examples and why you need to pay attention to both speed and CAS timing.

TechnologySpeed (MT/s)Clock Cycle Time(ns)CAS LatencyLatency (ns)
DDR418661.071313.93
DDR421330.941514.06
DDR424000.831714.17
DDR426660.751914.25
DDR429330.682114.32
DDR432000.622213.75
DDR548000.424016.67

So what is the recommendation?

  • Step 1: Identify the highest memory speed supported by both your processor and motherboard (including overclocking profiles).
  • Step 2: Select the lowest latency memory that fits within your budget at that speed, remembering that a superior (i.e. lower) latency means superior system performance.

Here’s some additional information about differences between DDR speeds.

Cracking the Zodiac killer’s code

Cracking the Zodiac killer’s code

Until 2020, the 340 character cipher remained un-decrypted. There have been no end to the theories about the meaning of the code and the identity of its author from would-be sleuths. With the solution text now out and standing up to scrutiny, it’s a wonderful reminder that internet sleuths need to be taken with a grain of salt.

One of these sleuths, Sam Blake, decided to contact programmer David Oranchak of Roanoke, Virginia after he gave a talk on it at the annual meeting of the American Cryptogram Association. Blake was particularly intrigued by the idea of homophonic substitution where one letter might be swapped for more than one symbol and then re-arranged in a systematic way. This generated a whole host of new ways to read the cypher.

Here’s Oranchak’s talk:

Oranchak took what he’d found to Jarl van Eycke, a Belgian warehouse worker and codebreaker who’d written AZdecrypt, software used for decoding homophonic substitutions. Van Eycke used an updated version of his software to churn through the possibilities. Using misspellings and characteristics from Zodiac’s previous writings things started falling into place.

The code used a tremendous amount of computing power, power that was definitely not available in 1960’s. The techniques involved in cracking it weren’t like the ones used in modern cryptography, so it’s explains why few people have used such statistical models on what is essentially a one-off code.

Oranchak sent their solution to contacts at the FBI, and by the end of 2020, the FBI had verified the methodology and results. In March 2021, Blake wrote about how he’d used Mathematica, a math software package, for his part, and in January, van Eycke made headlines again when he cracked an unsolved 386-year-old code composed by a Dutch scientist.

You can read more about the journey here, or check out the 9 part series about solving the code on Oranchak’s youtube channel.

Writing your own OS and running in a VM

Writing your own OS and running in a VM

JDH sits down and writes his own OS from scratch – and it runs in a VM on modern x86 hardware. But what should his OS do? How about play Tetris. With graphics, keyboard input, and even Soundblaster sound. He writes everything from scratch to handle all of this. As someone that grew up with 8086 assembly and programming old DOS based TSR programs, this was a blast from the past and definitely worth a watch.