Skip to content

Releases: j-jorge/bim

Version 14

23 Jan 20:16

Choose a tag to compare

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

09 Dec 20:24

Choose a tag to compare

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

02 Nov 19:22

Choose a tag to compare

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

01 Oct 20:40

Choose a tag to compare

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

31 Aug 07:57

Choose a tag to compare

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

10 Jul 18:12

Choose a tag to compare

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

25 May 16:53

Choose a tag to compare

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

01 May 20:45

Choose a tag to compare

Client features

  • The players are animated.
  • Display some messages on the matchmaking screen when waiting.

Game features

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

28 Mar 20:18

Choose a tag to compare

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

28 Feb 11:26

Choose a tag to compare

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.