Had occasion to remember this series of articles by @ID_AA_Carmack from (I think?) August 1996 that ended up making a huge impression on me as a kid. I found them preserved here https://fabiensanglard.net/quakeSource/johnc-log.aug.htm
These are .plan updates. What's that? Well, before weblogs we had the Finger protocol (rfc1288). Basically you ran a telnet server on port 79 that dumped the content of the .plan file on your computer. Micro-blogging of late 1900s!
The post are fun. Not only is it a master class in systems design it's also so... driven? He time-boxes a month to try to invent a way for games to be playable over internet latency. Before that point internet gaming had to be state synchronized, so basically unplayable.
John took Quake and turned it into QuakeWorld "If it looks feasible, I would like to see internet focused gaming become a justifiable biz direction for us." Yup. It's now a 180b industry. Thx John.
What inspired me was that I knew this problem well. I had a normal modem and you couldn't play the interesting games together. We got together for (sometimes huge) lan parties in the 90s to get around the latency problems.
Back then, everyone I knew said that this is the way it is. The internet has too much latency. Maybe one day we would get better hardware. John instead channelled his frustration into a better approach. He says "Engineering is getting what you really want with what you got".
I decided to try to become an engineer just like John. Who wouldn't ever take the status quo as a given but reframe the problem from first principles and channel frustration into code and solutions. Shopify itself started like this.
It's fun to be a fly on the wall to the discovery of non-deterministic client side prediction and server reconciliation. A uniquely video game application of something that is now an entire academic field (CAP's theorem etc).
You can follow @tobi.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.