This release focuses on cleaning up cerlib’s API as well as preparation for the upcoming 1.0 release.
- Improved website and documentation
- Replaced several C++ STL types by custom implementations:
std::string
→String
std::string_view
→StringView
std::optional
→Option
std::tuple
→Tuple
std::pair
→Pair
std::span
→Span
andMutableSpan
- The rationale for this is outlined here.
- Added a new type
pint
- A positive-only integer, used as a replacement for
size_t
- Used to index into containers, automatically checks invalid values
- Simplifies algebra and reduces casting between signed and unsigned integers
- A positive-only integer, used as a replacement for
- Added a script
NewGame.py
that’s able to generate game templates - Added entt as an optional component
- entt is automatically available in your game
- Simply
#include <entt/entt.hpp>
and go
- Improved the general game architecture
- You’re now able to write a game loop directly in the main function
- The
Game
class is now final - Events can now be polled and handled separately
- Added a new class
Camera
- Can be used to easily implement a 2D observer
- Added a new class
AnimatedImage
- Allows you to load and play sprite sheets
- Added types
Degrees
andRadians
- Improved type-safety for types and functions that handle rotations
- Supported by user-defined literals
- Can be converted to and from
- cerlib games now link statically with the C++ runtime on Windows and Linux
- On macOS, dynamic linking is preferred, since the OS guarantees the existence of a C++ runtime
- Dropped WASM support
- A focus on desktop, mobile and embedded platforms is preferred
- Your game now uses precompiled headers to reduce compilation times
- Replaced
SmallDataArray
byList
- Removed multiwindow support
- Various build system improvements