Tools Engineer: Core Game Tools Development - Subjects of Interest Programming
Knowledge
list reference from tools-engineer-checklist.md by Geoff Evans
Techniques
- Instrumented profilers, hit counters, time accumulators
- Obfuscated handle systems (vs. pointer)
- Pointer-to-implementation/PIMPL benefits and costs
- Delegates, multicast delegates and events
- Retained mode vs. immediate mode graphical user interfaces
- Event-loop programming w/ all nonblocking I/O routines
- Type reflection/introspection for program automation
- Program binding time (bind at compile time, link time, run time)
- Out-of-schema (blind) data retention, version interop
- Object-relational-mapping (and pitfalls with polymorphism)
- Runtime compiled code
Determinism
- Definition and the desire to achieve it
- Typical pitfalls in C/C++
Concurrency
- The difference between concurrency and parallelism
- Job/task graph systems
- Fibers and implications for stack, TLS risks
Resources
Book Links
- Game Development Tools
- Game Engine Toolset Development
- Production Pipeline Fundamentals for Film and Games
- Concurrent Programming on Windows
- C++ Concurrency in Action
- Pro Asynchronous Programming with .NET
Web Links
Video Links
- ‘Concurrency Is Not Parallelism’
- code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care