v1.3.0
Storm! Engine v2 - 1.3.0
This update makes Storm! Engine v2 easier to use for you and adds several tools
that make building games simpler.
🆕 New
- Easier game setup — Installed versions of the engine now include everything
you need to start a game withpkg-config. - Starter game template — New developers can copy the included starter
project and begin making a game right away. - Use only what you need — Games that don't want the entity-component system
can includestates/gameStateBase.hinstead ofstates/gameState.h. Same
game-state interface, without pulling in the entity system, components and
renderers — about 45% less for the compiler to read in every file that
touches a state. The state machine, asset store, logger and text tools all work
without the ECS. - Better gamepad support — Games can now easily read buttons, analog sticks,
and triggers from a controller. - Font and sound support — The engine can now keep fonts and sounds loaded so
games don't have to repeatedly load them from disk. - Easy text drawing — New tools make it easier to draw and center text on the
screen. - Better collision detection — New
ContactSystemlets your game detect when
objects touch without forcing the engine to decide what should happen. - Frame-rate helper —
CapFrameRate()makes it easier to keep your game
running at a consistent speed.
🔧 Improved
CollisionSystemandContactSystemnow share one implementation, so they
can't drift apart again.- Gamepad controls now feel smoother, especially when using analog sticks.
- Sports example now supports physical controllers.
- Hockey boards use the new collision system.
- Hockey saves now properly stop play and start a new faceoff.
- Examples use the new font and sound caching system.
🐛 Bug Fixes
- In the Sports example (
examples/sports):- Fixed the left hockey goal, which couldn't be scored.
- Fixed pucks that were immediately picked back up after being shot.
- Fixed a problem where a goalie save could freeze the game.
- Fixed diagonal movement being too fast.
- Fixed the puck bouncing from the wrong position.
- Fixed text that wasn't using the requested font size.
- Fixed examples repeatedly loading fonts from disk.
- Fixed several problems with fonts and sounds being cleaned up at the wrong
time. - Fixed installation instructions that didn't work correctly.
⚠️ Important for Existing Games
If you're upgrading a game from Storm! Engine v2 1.2.x, you need to rebuild
your game. Installing the new engine and simply relinking an old game is not
safe.
Two other changes for developers:
gameStateMachine.hno longer includesecs.h, the components or the asset
store for you. If your game relied on getting those automatically by including
the state machine, add the includes you actually use. This is what makes the "use
only what you need" option above work — otherwise the state machine would pull
the whole engine back in.- New games should use
ContactSystemfor collision detection. The older
CollisionSystemstill works and behaves exactly as before, but is
deprecated and may eventually be removed.
🧪 Testing
The engine now has 374 automated tests, up from 319 — 55 new, including
23 for the new contact system, 11 for gamepad handling, and coverage for text
drawing, asset caching and frame pacing.
Overall: This release is mainly about making Storm! Engine v2 easier to start
with, giving you more useful building blocks, and fixing several problems in the
example games.
Installation
Debian / Ubuntu / Linux Mint (amd64)
sudo dpkg -i libstormenginev2_1.3.0_amd64.debRaspberry Pi 4/5 with 64-bit OS (arm64)
sudo dpkg -i libstormenginev2_1.3.0_arm64.debAfter installing, link with -lstormenginev2.
Full Changelog: v1.2.9...v1.3.0