[In this reprinted #altdevblogaday-opinion piece, Bungie's Andy Firth explains the role of engineer architects at a game developer, including their day-to-day tasks and work on often behind-the-scenes systems.]
A question that i get asked rather a lot is "What is an engineer architect?"
And you often wouldn't be too far from the truth on a daily basis. Long term, however, we (the team) have a plan and a set of goals. Over time, we re-assess based on those we hit and those we don't, new requirements and ultimately how the game is progressing and where it needs to go.
The role I play in this is simply to ensure that under the stress and strain of day-to-day development, we're still aiming in the right direction as a whole. Those decisions take into account as much of the big picture as possible and weigh that against the immediate requirements of the current goal.
There are several people in similar roles at Bungie, and our interactions provide a simple but effective method of applying "Checks & Balances" to the progress we make; we each bring our own flavor to the table.
Day to day, this involves tasks such as the following:
This basically translates to the same thing all engineers do:
en·gi·neer noun /ˌenjəˈni(ə)r/ A person who designs, builds, or maintains engines, machines, or public works ar·chi·tect noun /ˈarkiˌtekt/ ((computer science) the structure and organization of a computer's hardware or system software) "the architecture of a computer's system software"
- Analyze the problem
- Formulate a possible set of solutions
- Analyze the solutions
- Decide what to implement
- Implement
- Test/bug fix
- Profile/sanitize
- Repeat until satisfied

- Advising/Teaching on how to handle concurrency
- Long term interface design
- Short term prototyping/bug fix hacks
- Discussing/Advising on future platforms
- Optimizing programmer iteration, debugging & general workflow
- Managing external teams
- Auditioning Middleware
- designing/writing/debugging infrastructure systems
- Memory Allocation
- File System
- Network Transport
- Crash Handling, Minidumps
- Debugger Plugins
- Multi-threading Infrastructure & Architecture
- Asset import/baking
- Math Library
- Schematization/Reflection
- Audio Engine
- Container Classes
- Profiler Infrastructure
- Compiler Configuration
- Low & High Level Optimization
- Build Systems
- Flux Capacitor Maintenance
- – you still reading?