Tools Engineer: Core Software Development - Computer Science, Computer Architecture
- Engines and their tools
- Game Tools History
- The Toolsmiths GDC Codex
- The Toolsmiths Glossary
- The Toolsmiths Learning Paths
- ◍ Tools Engineer Learning Path
- ◎ Tools Engineer: Core Game Development
- ◎ Tools Engineer: Core Game Tools Development
- ◎ Tools Engineer: Core Software Development
- ◌ Computer Science, Algorithms/Data Structures
- ◌ Computer Science, Computer Architecture
- ◌ Computer Science, Databases
- ◌ Computer Science, Computer Networks
- ◌ Computer Science, Operating Systems
- ◌ Programming Language, C
- ◌ Programming Language, C++
- ◌ Programming Language, C#
- ◌ Programming Language, Python
- ◌ Software Engineering, Debugging/Troubleshooting
- ◌ Software Engineering, Version Control
- ◌ Software Engineering, Writing Code/Unit Testing/Refactoring
- ◎ Tools Engineer: Game Tools Development Disciplines
- The Toolsmiths Knowledge Base
- Tools Development Wisdom and Best Practice
- The Toolsmiths Arsenal
- The Toolsmiths Toolbox
Codex navigation
Knowledge
list reference from tools-engineer-checklist.md by Geoff Evans
Numbers
- Unsigned vs. signed, twos compliment
- IEEE-754 floating point components
- Floating point accuracy and large cardinality floating point numbers
ISA
- Endianness
- Pipelining
- Instrution latency
- Memory prefetch
Atomics
- Increment, decrement, compare-exchange
- Spin-locks and latency trade-offs
Atomics
- Typical cache sizes
- The memory hierarchy and relative costs
- Necessity/benefit of memory alignment
- "Ways" and cache eviction policies
Resources
Book links
- Computer Architecture: A Quantitative Approach
- Code: The Hidden Language of Computer Hardware and Software
- Computer Systems: A Programmer’s Perspective, 3 Edition
- Intel® 64 and IA-32 Architectures Software Developer’s Manual
Web Resource links
- What every programmer should know about memory
- CPU caches
- Infographics: Operation Costs in CPU Clock Cycles
- Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP)
- Data Oriented Design Resources
- Data-Oriented Design, Richard Fabian