SFML Development Updates
SFML 2.6
The release preparation work is in full swing. The code is effectively frozen and the final update is ready. Most of the required website changes are done, but some points that will take a bit more time, like updating existing tutorials, still need to be implemented.
Depending how quickly we’ll find people for the tutorials, especially for the French translations, I’m guessing the release could happen in the next 1-2 weeks.
First Maintainer Meeting
As mentioned in the last SFML News, we had our first Maintainer Meeting last week and while we weren’t fully complete, I’d say all the recently active maintainers were present. It was great to hear and see people, some for the first time.
The main and only topic was scoping for SFML 2.6 as well as SFML 3 (and beyond).
For SFML 2.6 it was a relatively quick run, since features were already finalized and for the code freeze, I already decided before the meeting, to not add anything new. We expect some bugs to creep up anyways and are prepared to squish them with SFML 2.6.1.
The main take way for me of the SFML 3.0 scoping discussion was the overall agreement, that SFML 3 should focus and prioritize C++17 support with minor to medium API breakages. This then also means that rewriting the whole rendering architecture, general rendering approach and API will not be part of SFML.
Some already spotted the SFML 4 GitHub project, the idea here is, to clearly label things that are out of scope for SFML 3 and any SFML 3.x version. It should also in communicate, that we’re not planning on repeating the “mistake” we did with SFML 2 of not releasing a new major version for 10 years – SFML 2.0 came out on the 6th of April 2013. Whether we’ll have the people and resources on our side to actually execute on this, only time will tell.
SFML 3.0
While we’re trying to get SFML 2.6 out of the door, the development of SFML 3 has not stop, on the contrary, we got some excellent PRs from binary1248 and more:
- Already Merged
- Replaced xvfb-run with manually starting Xvfb and running fluxbox
- Fixed GlContext not being activated if it shares the same address as a previously destroyed GlContext
- Reduce TransientContextLock overhead if there is already a context active on the current thread
- sf::Texture move constructor and operator
- Added sf::Texture tests
- Await Reviews
SFML Games & Projects
Star Breaker
SFML is used quite a bit at universities either to make teaching C++ a bit more interesting or when teaching about video game development. This time around we had the teacher of the Game Academy in Avignon, France post about a project four students made over the course of four weeks, but not with SFML instead they used CSFML.
Update: Turns out the game is supposed to be played with a controller and the available keyboard inputs are just for debugging purposes. After switching to my Xbox controller, I could actually play the game. It’s well designed, but I do recommend reading the “How to Play” section to understand the UI, as it didn’t exactly seem intuitive to me, plus it also informs you what for example a “Star Gauge” upgrade is really useful for. It can become quite tricky when you fail to shoot some stuff on screen and you have to dodge a lot of bullets. The Hyperlight mode is quite useful to shoot down enemies at a distance, as you can aim up or down. I’d love to see some health progress bar on the bosses, so you can estimate how long things are taking, but that’s really just up to the designer. Either way, I can totally recommend to give the game a try!
Looks like normal side-scroll shooter. Unfortunately, the game remained mostly unplayable for me, as the input handling was somehow broken. I could barely select “Solo” or “How to play” and never managed to select anything else. In the game it took me quite a bit of time to realize that “Z” is mapped to “Up” and when I get high score screen, I can’t enter anything and have to essentially quit the game and restart it.
Since the game is coming from France, I can forgive a badly mapped key, as they French keyboard layout is quite confusing and they must be thinking the same for non-French layouts.
Hopefully they can fix some of the issues, so more people get to enjoy playing it. You can find more about the game and download it on their project page (French).
Pure – Retro Games
Someone posted their project “Pure“, a retro console emulating engine, i.e. a game engine that emulates some old gaming console. It’s written in C# and has an example game “FlappyBird” provided.
I cloned the repository and tried to build things, including the example but was unable to as there were some projects missing. The only things I was able to build was the NoteEditor and the StorageEditor, but didn’t exactly know what they are or do.
I’ll see if the author can add the missing project and project files, so one can actually play around with it.
Raytracing
As mentioned in the forum post, the original idea was to create a horror game, but due to time constraints we ended up with this simple raytracing/casting tech demo.
You get at the top a mini map for orientation and then you have the lamp that illuminates the room, that’s it. I feel like the suddenness with which the walls appear the closer you get is quite unrealistic, but I’d assume this would have been further refined.
Still cool to see such an application done with SFML.
Worms
The same author as in the last two SFML News, created yet another game. This time they cloned the well-known game Worms. Where you have multiple teams fight each other with various kinds of weapons. It’s a really great hot seat game.
The terrain is currently pretty basic, but it is destructive. I find the jumping around motion quite funny. You can move around, aim your weapon and let the bomb hit your enemies until they’re dead. As usual the game mode is last worm standing.
This really brought back some memories and now I want to play some of the original games again.
That’s a Wrap
Nothing to add here at the end really.
Hope you find it insightful to see what is going on “inside” SFML and what community is doing with it.