The Technician
No Imperfections Noted
The Jeff and Casey Show
Jeff and Casey Time
Casey Muratori
Seattle, WA
Working on The Witness, Part 18
The Source Code
I should be back on a normal schedule next week, so Witness Wednesday Proper will resume next Wednesday. I’d like to do a Q&A about the Lister Panel, if people are up for it, just so that beginners can take a look at the actual code as it is used in the editor and ask questions about why things are the way they are. Sometimes the answer will be, "because I was in a hurry" :) But hopefully I can answer most questions in a way that gives additional insight on why it was a good idea to do things roughly the way they were done in the code.
Here is the complete ~2000 line source file that implements everything in the Lister Panel, along with its header file. Both have been lightly redacted to remove any filters that might give away aspects of The Witness’s gameplay for people who want to remain spoiler-free, so there should be absolutely no spoiler risk in reading the code:
lister_panel.h - the redacted header file
lister_panel.cpp - the redacted source code
Keep in mind that this code is a mixture of styles (Jon’s and mine), because even though I wrote all the code, I adopted Jon’s conventions in many places, just to make it easier for him to maintain. This is also editor-only code, which means it is not meant to be used in a released product, and thus the emphasis is entirely on keeping implementation costs low, and not on ancillary things like robustness that might be more of a priority in code meant for end users.
So, if you are in the mood, please spend some time looking over the files and send questions to I will collect them all and answer them next week!
- Casey Muratori
2014 July 16
Site design and technology © Copyright 2005-2014 by Molly Rocket, Inc., All Rights Reserved.
Contents are assumed to be copyright by their individual authors.
Do not duplicate without their express permission.
casey muratori
casey's blog - post 26