Skip to content

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 02:41
· 175 commits to main since this release
v1.3.0
64910b5

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 with pkg-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 include states/gameStateBase.h instead of states/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 ContactSystem lets your game detect when
    objects touch without forcing the engine to decide what should happen.
  • Frame-rate helperCapFrameRate() makes it easier to keep your game
    running at a consistent speed.

🔧 Improved

  • CollisionSystem and ContactSystem now 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.h no longer includes ecs.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 ContactSystem for collision detection. The older
    CollisionSystem still 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.deb

Raspberry Pi 4/5 with 64-bit OS (arm64)

sudo dpkg -i libstormenginev2_1.3.0_arm64.deb

After installing, link with -lstormenginev2.

Full Changelog: v1.2.9...v1.3.0