For many years I’ve been evaluating and using various game specific open source libraries and at the same time I was designing and implementing my own. Despite the fact that many libraries are quite competent on what they do, their overall design leaves a few things to be desired. Some of the concepts described here sound naive but you can’t imagine how many libraries get them wrong. This article focuses on a few good practices that designers/implementers of performance critical libraries should be aware of.
This article is built around five pillars:
- How public interfaces should look like.
- Data oriented design.
- The importance of thread-awareness.
- Memory management.
- And some general concepts.
Who is the target audience:
- People who want to create performance critical libraries/middleware.
- People who want to attract serious users and not only hobbyists.
- Mainly directed to opensource.
Who is not the target audience:
- People who want to create middleware solely for their own amusement.
- C++ purists.