Super Volatile

Krzysztof Szafranek's link blog

Hi, I'm Krzysztof and I make websites.
When I'm not making websites, I read these.
Feb 13, 2012 / 12:44am

Static Code Analysis

Anything that isn’t crystal clear to a static analysis tool probably isn’t clear to your fellow programmers, either.  The classic hacker disdain for “bondage and discipline languages” is short sighted – the needs of large, long-lived, multi-programmer projects are just different than the quick work you do for yourself.

John Carmack explains the value of static code analysis tools and shares his experience from development of Rage. Excellent, must-read article for software developers.

Filed under: john carmack   software development  
Dec 20, 2011 / 5:29pm

The John Carmack Archive - plan archive

I settled on combining all forms of input into a single system event queue, similar to the windows message queue. My original intention was to just rigorously define where certain functions were called and cut down the number of required system entry points, but it turned out to have much stronger benefits.

With all events coming through one point (The return values from system calls, including the filesystem contents, are "hidden" inputs that I make no attempt at capturing, ), it was easy to set up a journalling system that recorded everything the game received. This is very different than demo recording, which just simulates a network level connection and lets time move at its own rate. Realtime applications have a number of unique development difficulties because of the interaction of time with inputs and outputs.

Transient flaw debugging. If a bug can be reproduced, it can be fixed. The nasty bugs are the ones that only happen every once in a while after playing randomly, like occasionally getting stuck on a corner. Often when you break in and investigate it, you find that something important happened the frame before the event, and you have no way of backing up. Even worse are realtime smoothness issues - was that jerk of his arm a bad animation frame, a network interpolation error, or my imagination?

more on team5150.com

Reading the archive of John Carmack's aaaa.plan files files a bit like archeology of programming and game design. I still remember playing the games he was writing at the time.

Frequent insights about programming are intertwined with boring parts concerning tuning and racing with his Ferrari cars.

Nov 26, 2011 / 10:11pm

Parallel Implementations

What I try to do nowadays is to implement new ideas in parallel with the old ones, rather than mutating the existing code.  This allows easy and honest comparison between them, and makes it trivial to go back to the old reliable path when the spiffy new one starts showing flaws.  The difference between changing a console variable to get a different behavior versus running an old exe, let alone reverting code changes and rebuilding, is significant.

John Carmack shares his approach to exploratory programming.

Filed under: john carmack   programming  
Sep 3, 2011 / 7:37pm

id Software 20th Anniversary Video Feature (PC)

We talk to the founders of id Software to celebrate their 20th anniversary.
more on gamespot.com

Video feature with John Carmack and other people from id Software, where they reflect on the history of the company.

Filed under: games   id software   john carmack  
Mar 14, 2011 / 10:59pm

Carmack: Direct3D is now better than OpenGL

'It is really just inertia that keeps us on OpenGL at this point,' Carmack told us. He also explained that the developer has no plans to move over to Direct3D, despite its advantages.
more on bit-tech.net

It's OpenGL that's playing a catch-up game, not Microsoft – Carmack on the success of Direct3D and why Id Software still sticks to OpenGL.

Filed under: direct3d   john carmack   opengl