Graphics and Games
FAQ
-
If I wanted to use the Boost libraries in conjunction with a graphics library, to write a 3D game, what graphics library would be most compatible with Boost?
The following libraries work well with Boost because they don’t impose custom build systems or incompatible runtime dependencies — they’re just C++ libraries, and that’s exactly Boost’s domain.
Graphics Library Why It’s Compatible with Boost Ideal Boost Libraries to Pair Modular, C++03/11 compatible, uses STL-style containers and patterns similar to Boost
Boost.Filesystem, Boost.SmartPtr, Boost.Signals2, Boost.Asio
Minimal dependencies, works well with Boost threading and filesystem
Modern, header-only components, great for C+17 and fits Boost idioms
Easy to integrate with Boost for physics, networking, or file I/O
Boost helps manage complexity: asynchronous loading, configuration, math, logging
-
What would be the simplest solution to 3D graphics and Boost working in harmony?
Probably the Ogre3D graphics library, working with Boost.Filesystem for asset control and Boost.Asio for networking.
-
What games systems are well matched with Boost libraries?
Here’s how Boost might slot into a 3D game engine:
System Boost Library Purpose Asset Loading
Cross-platform file handling
Entity Updates
Event-driven game logic
Network Multiplayer
Async client/server or peer/peer communication
Configuration
Game settings, config files
Logging
Diagnostics and crash reporting
Physics or AI Math
Physics, spatial logic
Texture/Image Manipulation
Procedural textures, screenshots
Multithreading
Game loop or rendering pipeline parallelism
-
Are there any graphics libraries that are problematic when combined with Boost libraries?
Both Qt and Unreal Engine are heavy frameworks that conflict with Boost’s philosophy - they replace parts of the STL and introduce their own type systems, both of which can cause serious compatibility issues. Also, DirectX libraries might limit your portability and don’t align well with Boost’s cross-platform goals.