Tools Engineer: Core Game Tools Development - Windows OS
Knowledge
list reference from tools-engineer-checklist.md by Geoff Evans
Concepts
- File descriptors, HANDLEs
- Blocking vs. non-blocking I/O requests
- The fundamental sync primitives and wait functions
- Manual and automatic condition/event primitives
- Syscall overhead
- Memory protection and superuser instructions
- Exceptions and interrupt service routines
Threads
- Memory contention and the basic dangers of threads
- OS-implemented mutex objects and the thread/process scheduler
- Thread local storage
Sockets
- TCP vs. UDP
- Network order
- Latency with select-polling vs. blocking waits vs. async
Virtual Memory
- How virtual memory is related to physical memory, swap
- How CPU hardware makes virtual memory performant
Modules
- Shared objects vs. static libraries
- Styles of "dynamic linking" on windows
- Practicality of code unloading
- Jump tables
- Process loading and the dynamic loader
- Pages inherently shared vs. non-shared across processes
- Page protections, JIT
Component Object Model (COM)
- COM interface
- components, servers and clients
- COM object
- OLE
- in-process, local, remote servers
Windows Communication Foundation (WCF)
- WCF architecture
- contracts
- binding
- address
- endpoint
- hosting
Remote Procedure Call (RPC)
- RPC model
- Microsoft Interface Definition Language (idl and acf files)
- client/server stubs
- binding
- pipes
MFC absolute basics (Optional)
- what does it provide
- CObject
- CWinApp
- document/view architecture
- events and event handling
- AFX = MFC ?