Abstract
Problem: Which operating system should an aspiring game developer learn to maximize career opportunities?
Approach: Tim Cain draws on four decades of professional experience, walking through every OS he's used — from Atari DOS in the late 1970s, through DOS, Prime OS, Unix, IRIX, Windows, and Mac OS — evaluating each on practical merits for game development.
Findings: Windows wins on pure practicality: it covers the PC and Xbox markets, offers enormous backward compatibility, and is where the vast majority of game industry jobs are. Unix/Linux is the runner-up. Mac OS falls short due to Apple's historical indifference to games and its restrictive ecosystem.
Key insight: The "best" OS isn't about personal preference — it's about market reach and employability. Windows knowledge plus C/C++ gets you access to the largest share of the games industry.
The Question
Tim responds to a viewer question from "Romeo Bomb" asking about the best OS for programming and designing games. He immediately reframes: this isn't about which OS is nicest to use (that's subjective), but which one you should know how to program for to maximize your career options.
The short answer: Windows. Knowing Windows programming gives you access to the PC market and the Xbox market — a massive combined share that has dominated for decades. Add PlayStation knowledge and you've covered most of the industry.
A Tour Through Four Decades of Operating Systems
Atari DOS (Late 1970s)
Tim's first OS. He learned BASIC and assembly language on it. Assembly was essential for anything requiring speed or hardware access — Atari's Player-Missile Graphics being a prime example of something you really wanted to do in assembly.
DOS (Early 1980s)
At age 16, Tim got a job at a game company making tools on the Atari, then transitioned to DOS for the PC game Grandmaster Bridge. His key lesson about DOS: you can do anything you want, but you have to do everything you want. DOS was an extremely thin layer over the hardware. Want a pop-up window? Code it from scratch. Want a new font? Build it by hand. Total freedom, zero convenience.
Prime OS / Unix (Mid-1980s)
At the University of Virginia, Tim used Prime OS (pronounced "Preem-os") on Prime minicomputers connected to a mainframe. It was a Unix-like system. The engineering school deliberately exposed students to many languages — C, Pascal, Prolog, SNOBOL, Fortran, Lisp — teaching that different languages serve different purposes.
Unix at UC Irvine (Late 1980s – Early 1990s)
Graduate school at UC Irvine used real Unix, and Tim loved it. Unix provided powerful access to OS functionality and supported his "hacky" tendencies — like sending spoofed messages to friends that appeared to come from "God in Heaven" (prompting a reply "from Satan in Hell").
Tim highlights a Unix feature he still wishes Windows had: inodes. In Unix, files in different directories can point to the same inode (the actual data on disk). This means you can have the same photo appear in six different folders — edit any one, they're all updated; delete one, the others remain. It's like a Windows shortcut, except every copy is the real file. Tim gives the example of wanting a family photo stored under both "Cain Family" and each sibling's folder — in Unix, that's trivial. In Windows, you need six copies or inferior shortcuts.
IRIX at Interplay (Early 1990s)
Interplay used Sun workstations running IRIX (a Unix variant) for 3D rendering. Since Tim knew Unix, he became the go-to person when artists had problems — locked accounts, broken workflows, etc.
GANOL: Tim's Abstraction Layer
When Tim joined Interplay in the early 1990s, he was coding for DOS (pre-Windows era). Rather than coding directly against the OS, he created GANOL — a wrapper/abstraction layer over DOS that included features like popup windows. The team coded Fallout against GANOL's API, and then separate developers wrote Windows and Mac backends. This let the game ship on multiple platforms from one codebase.
The Case Against Mac OS
Tim is blunt: in four decades, he hasn't seen Apple genuinely care about games. They acknowledge games exist, occasionally make half-hearted efforts (like Game Sprockets, which then vanished), but gaming doesn't appear to be a boardroom priority. Even with iPhone gaming's growth, Tim doubts Apple truly cares.
His practical complaints from making Fallout's Mac port:
- Batch processing was painful. On Windows, a simple batch file could process thousands of art files through a command-line tool. On Mac in the mid-1990s, they needed a third-party batch system and had to find apps that accepted command-line input.
- File selection was absurdly limited. You couldn't lasso-select more than ~256 files at once, forcing artists to process files in chunks.
- The Apple ecosystem mentality. The Mac developer complained about having 1,000 files in one directory, insisting you "shouldn't put more than 256." Tim's response: they all belonged there.
Tim extends this to a broader cultural observation: Apple users tend to tell you that if something isn't supported, you're doing it wrong. He gives a personal example — his first iPhone couldn't send group texts, and an Apple-fan friend insisted that wasn't a big deal, even though Android supported it from day one.
The Verdict
After four decades:
- Windows — Used it the most, it has the most games (especially including Xbox), massive backward compatibility (Tim still plays 30-year-old games on Windows). If you want maximum job options in the games industry, learn Windows.
- Unix/Linux — The runner-up, not Mac. It powers the Steam Deck, can run Windows games, and is a strong practical choice.
- Mac OS — Not recommended for game development despite being pleasant to use. Consistent interface, easy to use, but Apple's indifference to gaming makes it a poor career bet.
References
- Tim Cain. YouTube video. https://www.youtube.com/watch?v=3z-Ewv1ctf0