Tools Engineer: Core Software Development - Programming Language, C++
- 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
Objects
- Implicit
this
- Overloading and overload resolution
- Constructor and destructor (implications for
this
's virtuals, exceptions)
Virtuals
- vtable: when is it set, how is it found, and what does it contain
- vtable: what are the implications of multiple inheritance
Generics
- Function templates, class templates, concerns about code bloat
- Runtime type information (vs. reflection), type traits
- Template meta-programming, constexpr
Resources
Book Links
Web Links
Video Links
- C++ - The Cherno Project
- CppCon 2014: Nicolas Fleury “C++ in Huge AAA Games”
- CppCon 2014: Jeff Preshing “How Ubisoft Develops Games for Multicore - Before and After C++11”
- CppCon 2016: Nicolas Fleury “Rainbow Six Siege: Quest for Performance”
- CppCon 2018:Nicolas Fleury & Mathieu Nayrolles “Better C++ using Machine Learning on Large Projects”