📝 Это C++ порт моей репы RoadsOfHorses на Unity, C#
🎨 Превью - hulvdan.github.io.
- Прикрутил hot-reload кода игровой логики - компилирую exe, который подгружает dll.
- 0 фреймворков.
- Из библиотек:
- ImGui
- glew
- glm
- doctest
- tracy
- flatbuffers
- Прикручивал, а потом выкинул spdlog и fmt, т.к. они существенно замедляли время компиляции.
- Использую линтер - clang-tidy и clang-format.
Документация для разработки находится в DEVELOPMENT.md
Во имя C приоритет отдаю полностью "пустым" структурам без явно прописанных конструкторов.
Бан move, copy конструкторов и операторов.
Jonathan Blow, Constructors, Destructors:
- Бан динамических аллокаций во время отработки конструкторов.
- В конструкторах ничего не зависит от порядка назначения.
- Записи стримов. Handmade Hero
- Статья. Orthodox C++
- Статья. Casey Muratori. Semantic Compression
- Статья. Jonathan Blow's blog, John Carmack on Inlined Code
- YouTube. Jonathan Blow. Constructors, Destructors
- YouTube. Jonathan Blow. Q&A: Constructors, Destructors
Арены
- В "Handmade Hero" Casey Muratori изначально начинает использовать арены.
- YouTube. Ryan Fleury. Enter The Arena: Simplifying Memory Management (2023)
Generic аллокации
Размышления на тему
- YouTube. CppCon 2014: Mike Acton "Data-Oriented Design and C++"
- Книга. Richard Fabian - Data-Oriented Design
- Форум-тред. Why many AAA gamedev studios opt out of the STL
- YouTube. Timothy Cain. Programming Languages
- YouTube. Handmade Hero | new vs delete | struct vs class | How to get fired
- YouTube. Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmer
- YouTube. Casey Muratori. Handmade Hero | Getting rid of the OOP mindset
- YouTube. Casey Muratori. Handmade Hero | Private Data & Getters/Setters (Epic rant!)
- Email response. Linus Torvalds on C++
- YouTube. Casey Muratori. "Clean" Code, Horrible Performance
- Статья. Discussion between Casey Muratori and Robert Martin (Uncle Bob) about Clean Code. Part 1
- Статья. Discussion between Casey Muratori and Robert Martin (Uncle Bob) about Clean Code. Part 2