SFML Development Update
It took a while and a lot of testing efforts on the three big platforms, but
setMinimumSize have just been merged! 🥳
I think it’s a great example of how even the seemingly simple features take quite a bit of thinking about the design and knowledge of the lower level APIs. Adding on top of that, a ton of testing not just of the basic straight-forward cases, but also all the edge cases we could think of, and of course for Windows, Linux and macOS.
It all started, because with certain window managers on certain Linux distros, setting a window size as a resize event happened would lead to some unwanted behavior.
We’re considering updating the minimum version of CMake, but have already run into a bit of a snag with the Raspberry Pi running Raspbian, which is a version of Debian and only ships an older CMake version. This should be fixed soon, but will be interesting to see potentially more reports of incompatibilities come in down the line.
An often requested feature has been a pausable
sf::Clock, which has already been implemented and recently brought up-to-date with the master branch. There are however still some pending decisions, on whether it’s a fit for SFML and on the naming itself.
C++17 brought support for
std::byte and while it won’t be a replacement for all
char usages, it might still find some good usage in cases, when we really just deal with bytes and not characters. There’s an open pull request with a few such changes.
Where’s SFML 2.6?! I’ve managed to update the event part of the tutorial and hopefully get to the last tutorial part soon, then it’s time for review and creating release packages.
SFML Projects & Games
This isn’t exactly a new game, but I stubbled across it, as the author tweeted about it in their #GamesRevisited Twitter thread.
It’s a real-time strategy and economic simulation game, meaning you have to train different units to build certain buildings and gather resources along the way. To get this from more of a tech demo to a fully fledged game, one would probably either need some (AI) enemies, or other disrupting events, as to weaken the economy and making use of the soldiers.
I really like how far they’ve come with a lot of features implemented and working, and of course everything running with SFML. You can grab a copy on itch.io and there’s some additional info on their Notion page.
GravytX – The Gravytoid
It’s an action-platformer and seems to be inspired by the more old-school platforms, which for me means, that it’s not about having pixel-perfect jumps, but about exploring the various levels and fighting bosses.
The story opens with you as GravitX from the planet Gravytoid and you’re on a planet to safe trapped creatures. Going by the description, it seems that one will move onto different planets at a later stage and the trailer shows various boss battles.
I only gave it a quick try, and it seems to work quite well on Android, even if the resolution appears to not fully match my screen. May give the desktop version a try a bit later on.
Keep in mind however, that while you can write “SFML code” for is::Engine, it’s actually just a translation layer to SDL, which also explains, how there can be a web version for it. Nonetheless, it’s a cool achievement to have the game fully released. Read the forum thread with all the download links.
This is a prototype game made in SFML and Box2D, with support for gamepads via XInput or regular keyboard usage. As it’s just a prototype, there isn’t any specific win condition, but it’s still quite fun to whack your ball into cars and throw them around.
It comes with a basic installer and then it’s off to the races. I found the movement with keyboard but also with the gamepad rather confusing. On my Xbox controller, I got some weird spinning behavior, while trying to just go straight ahead. The voice call outs are quite funny and brought me back to some old school Counter Strike.
You can download the game on itch.io.
There are many interesting projects being posted as screenshot or video. When there’s no link to GitHub, itch or anywhere else, I usually don’t include them in my post, as there’s nothing to actually try out. However, if you want to see those creations, I highly recommend to join our SFML Discord server and visit the #showcase channel.