David Pol
banner
davidpol.bsky.social
David Pol
@davidpol.bsky.social
Handcrafted game programming and custom game engines.

https://innercomputing.com
Oops, good catch, thank you! I am right in the middle of a refactoring pass and missed this part. It is fixed now.
August 27, 2025 at 5:50 PM
• Having access to _Alignof/alignof makes arena allocation nicer, as it can be wrapped in a macro that automatically passes the required alignment for the type (avoiding any waste caused by over-aligning for the worst case).

• Anonymous structs/unions make for more succinct code with nested types.
August 7, 2025 at 1:29 PM
Yes, you can extend the idea depending on how you want to use them. I do single translation unit builds, so linking is not an issue.
March 2, 2025 at 3:07 PM
Putting an actual end to the game in ante 8 would have made it clearer that this title is not really after the "Slay the Spire playing experience" (where beating the game is more like the actual beginning), but I wonder how such a design decision would have affected its reception.
February 28, 2025 at 11:36 AM
Exactly! I have also found that "using the right tool for the job" in practice often means ending up with a combination of different approaches in the same codebase.
February 5, 2025 at 12:57 PM
Many games have a small and well-defined set of entity and component types, and these are probably better served by an ad-hoc architecture that avoids the rigidity and complexity an ECS would introduce. It can still be data-oriented, but just a simpler approach tailored to the problem at hand.
February 5, 2025 at 11:50 AM
A data-oriented approach does not _require_ using an ECS architecture. I see ECS more useful when writing code that is intended to be used for a wide variety of different games, or as a way to manage the complexity with game designs involving a combinatorial explosion of behaviors.
February 5, 2025 at 11:50 AM
Data-oriented programming is about understanding the shape of the data in your problem domain in order to maximize performance on contemporary hardware (and improve modularity in the process): What are the inputs and outputs? What is the transformation process?

www.youtube.com/watch?v=rX0I...
CppCon 2014: Mike Acton "Data-Oriented Design and C++"
YouTube video by CppCon
www.youtube.com
February 5, 2025 at 11:50 AM
I try to present a non-dogmatic view on the ECS architecture, which is too often introduced as a "One True Way" of doing things nowadays. Many of the original resources on data-oriented programming do not even mention the term ECS in the first place!

gamesfromwithin.com/data-oriente...
Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP) – Games from Within
gamesfromwithin.com
February 5, 2025 at 11:50 AM
Orthodox C++ is a reasonable subset if you want to keep things minimal: gist.github.com/bkaradzic/2e...

And if you want to avoid the STL, there are interesting alternatives such as the EASTL, Sane C++ by @pagghiu.bsky.social or Bedrock by @jeremy.laumon.name.
Orthodox C++
Orthodox C++. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
January 22, 2025 at 2:09 PM
This also means I can finally update this section of my game engine programming course, which makes me very happy.
January 22, 2025 at 9:13 AM