Releases: j-jorge/bim
Releases · j-jorge/bim
Version 14
Client
- Shorter loading times.
- Fix the bug of the disappearing joystick.
- Update the translations.
- Integrate Italian, Spanish, and Ukrainian languages.
- Add a way to use another fancy font for some languages.
- Use readable names in the remote configuration file.
Game features
- Fences block the players but let the flames go through.
- Store the entities per cell position in entity_world_map.
Server
- Push a message in a feed of Discord when a player needs an opponent.
Build scripts
- Handle --help in setup.sh even if the other arguments are invalid.
- Add Google benchmark library in the dependencies.
Tooling
- Add Tracy sections for each game system.
- Handle swipes in the script_director.
CI and tests
- Add a test to ensure that the flames go through the players.
- Add tests for remove_dead_objects().
- Add some tests for the shield power-ups.
- Add a test checking the death of multiple players on the same flame.
- Use Ubuntu 25.10 in the CI, update package revisions.
- Check on the CI that all source files have a license.
Hygiene
- Switch to C++23.
- Update Axmol to 2.11.0.0.
- Update iscool::core to 1.23.0.
Version 13
Client
- Restore the background for the end-game screen of draw games.
- Restore the inputs in the language selection popup.
- Update the translations (Breton, French, Portuguese, Portuguese (Brazil)).
- New translations: Kabyle, Occitan.
- Add a loading screen.
- Fix read of uninitialized variable.
- Update the icon.
Tooling
- Add scripting tools to run UI tests.
Hygiene
- Update Axmol to 2.10.0.
- Update libunwind to 1.8.3.
- Update cpptrace to 1.0.4.
- Update Boost to 1.89.0.
- Update iscool::core to 1.20.0.
- Update Android tools.
Version 12
Client Features
- Fix incorrect position of the soft stick.
- Add the selection screen for the game features.
- bim --version displays the version number.
Server features
- bim-server --version displays the version number.
Development
- Add a CMake option to set the Android architectures to build.
- Nodes can be added into children of other nodes via styles.
- Move non-Axmol app code into its own library.
- Action delay creation from a style.
- Action sequence creation from a style.
- Handle both "to" and "by" properties for rotations from style.
- Do not change the position of a node if the style properties are not set.
- Use boost::unordered_node_map for cached style bounds and display properties.
- Widget-bounded inputs ignore inputs from outside their bounding boxes.
- Extract the button behavior from the button class.
- Specific item size in bim::axmol::widget::list.
Hygiene
- Update Axmol to 2.9.0.
Version 11
Client features
- Integrate PostHog to collect some insights about the game usage.
- Animate the transitions from one screen to the next.
- Back to 60 fps in the menus.
- Translate the game in Turkish (thanks @asetsiya & @weblate)
- Display the server statistics on the lobby.
- Add a button to join our Discord server from the matchmaking screen.
- Bug fix: Remove the screen wheel nodes from the main scene on destruction.
- Shop and stats buttons on the lobby.
- Show a message to invite the user to donate on platforms where there is no shop.
- Add a link to Weblate in the language popup.
Game features
- The flames intersect each other.
Server features
- Dump network traffic into the statistics.
- Bug fix: Update the session count statistics when a client is explicitly disconnected.
- Collect server stats on a rolling window.
- Add the hello/hello_ok messages to introduce the game servers.
General
- Add and use tracy profiler.
- Update iscool::core to 1.19.0.
- Update Axmol to 2.8.1.
- Add a GitHub workflow job to check the build as if it was done for F-Droid.
- Cache the dependencies from one GitHub workflow run to the next.
- Add a factory function to build an ax::ui::UIRichText.
- Add a factory function to build an ax::ClippingRectangleNode.
- Allow to set ax::Label's line spacing from the styles.
- Add an input listener that triggers on any tap.
- Add a style property to apply an offset to a node.
- Add an action to move a node, with properties taken from a style.
Version 10
Client features
- New assets for the power-ups.
- Display the player's statistics on the lobby.
- Added a way to change the language via the settings.
- Added Breton, German, Portuguese, and Portuguese (Brasil)
translations of the game (thanks @weblate contributors). - Show if the game is FOSS, as well as a dev build, in the settings.
- Close the settings when the back button is pressed (thanks @saransh-g1).
- Initial support for keyboard controls in the desktop client (thanks @saransh-g1).
Game features
- Add the shield game feature.
Server features
- Implemented instant stats on the server (based on the work of @HanevyN).
Bug fixes
- Fix a case of a falling block not being solid.
- Fix a crash of the client when restarting after downloading the new
config. - Fix server crash on removal of updated GeoIP location for IP.
Hygiene
- Update Axmol to 2.7.1.
- Update iscool::core to 1.16.1.
- Avoid spurious rebuilds of shaders.
- Deactivate LTO explicitly if it is not enabled in CMake.
- Use mold for debug builds.
- Minify the JSON resources during the build.
- Add the transation files in AUTHORS.md.
Version 9
Client features
- Add a shop where the user can buy coins.
- Fetch the client config on the first launch.
- Fix spurious disconnection messages.
- Silently reconnect the client if it has been disconnected from outside a game.
Server features
- Display the clients' GeoIP-guessed country in the server's logs. Don't show the IP anymore.
- The server can get its configuration from the command line arguments or a configuration file, or both.
- Display the stack trace if the server crashes.
- Store all persistent server-generated files in a single directory when running in Docker mode.
Hygiene
- Update iscool::core to 1.14.3.
- Use non-interactive front-end for package installation in the CI.
- Display the duration of the dependency builds in setup.sh
Version 8
Client features
- Graphic updates on the lobby.
- Graphic updates on the end game screen when the player has not won.
- Use an arrow button for the back button on the end game screen.
- The player gets coins for every game played.
- Game features can be bought with coins.
- Fix some typos in the matchmaking waiting texts.
Server features
- The games are created with all features selected by the players.
Hygiene
- Pass UndefinedBehaviorSanitizer's option to abort the program on error when running the tests.
- Update Ubuntu's version to latest non-LTS on the CI.
- Extract the debug symbols from the release binaries.
- Enable interprocedural optimization on release builds.
- no-path-in-apk.sh checks the unsigned APK if there is no keystore.
- Templatize power-up factories (thanks @HanevyN)
- Update iscool::core to 1.14.0.
- Update Pack My Sprites to 1.3.0.
Version 7
Client features
- The players are animated.
- Display some messages on the matchmaking screen when waiting.
Game features
- Implement invisibility (thanks @jlallas384).
Bug fixes
- Unsafe use of std::optional in authentication_service (thanks @JuanPedroCasanas).
- Don't disconnect for both earliness and lateness in the same iteration.
- Totally disconnect the clients from the server when they are kicked out of a game.
Hygiene
- Use table2d in arena (thanks @HanevyN).
- Add a script to check the metadata files.
- Update Axmol to 2.5.0
- Update iscool::core to 1.13.0
Version 6
Client features
- Display a message when a new version is available.
- Fetch the app config from the server.
- Add the Bluesky and GitHub buttons in the settings.
- Reduce the strength of the slowness applied when the client is too
far ahead. - Unlock game features as the player wins games.
- Keep updating the matchmaking screen even when the ready button has
been pressed. - Center the control deck horizontally.
- Enlarge the d-pad.
- Thicker border for the spike on the matchmaking screen.
- Display only two features on the matchmaking screen.
- Add the fog of war game feature.
- Add a button to leave the matchmaking screen toward the lobby.
Server features
- Disconnect the players if they are inactive for too long.
- Remove inactive players from the matchmaking after a short delay.
- Randomize the players' initial position.
Bug fixes
- Release the buttons when they leave the scene.
- Fix incorrect computation of max-percents limited sizes.
- Reset the drop bomb request at each game.
Version 5
Client features
- Keep the screen on while on the matchmaking screen.
- Reduce the cooldown between two taps to 100 ms.
- Switch to 30 FPS in the menus.
- New in-game UI assets.
- Show a message and reset the app when the player is disconnected.
- Restart the app if the player leaves for 30 seconds or more.
- Fix incorrect order of the inputs for the popups.
- Add a message on the lobby to tell that the game is in alpha.
- Add the share and e-mail buttons in the settings.
- Fix the glitch when the game starts.
Bug fixes
- Remove dereference of non-dereferenceable iterator on session
removal (server).
Submission to F-Droid, reproducible builds
- Remove PNG chunks preventing reproducible builds.
- Add a test to ensure that the PNGs have no chunk preventing
reproducible builds. - Remove the Gradle wrapper files from the repository.
- Build ImageMagick as part as the host dependencies.
- Pass -fmacro-prefix-map to the compiler to have reproducible builds.
- Remove the build ID from the Android release build, to get
reproducible builds. - Remove the dependencies info from the APK, it is refused by F-Droid.
- Metadata for F-Droid.
Hygiene
- Update Axmol to 2.3.2.
- Update iscool::core to 1.12.0.
- Add the todo list in the repository.
- Keep the global CFLAGS for the build.
- setup.sh always uses Ninja.
- Install libjpeg-dev instead of libjpeg-turbo8-dev.
- Remove informational messages from the build of Boost.
- Remove the build of the bundle when only the APK is targeted.
- Apply -fvisibility=hidden to the game itself.
- Start from a clean Git repository when building a dependency.