With SFML 2.6.0 finally out the door and SFML 3 development being in full swing, it's time to update the Roadmap planning.
SFML 2.6.1We have identified and already fixed some build configuration issues and I'm expecting to see further reports over the next couple of weeks/months.
SFML 2.6.1 will only contain "important" bugfixes, with everything else landing on the master branch for SFML 3.
SFML 3The overall goals have not really changed:
- Upgrading the SFML API for C++17
- Cleaning up redundant and deprecated code
- Adding features as we go along:
- API breaking features only possible at a major version change
- (low priority) Non-API breaking features
While we had in the past
a lot of ideas for SFML 3, the current goal isn't to provide decade long massive update of SFML, but really to focus on the C++17 support, clean up and API breaking changes.
Here a few open points, which anyone can help out with!
In the first ever Maintainer Meeting, we've decided to
not consider a (major) graphics API overall. This means, we'll not be rewriting or accepting changes to refactor the whole rendering API.
I'd like to discuss the next few steps for SFML's development. I've worded it as if things are already decided, but in fact it's all up for discussion.
Let's start with the big elephant in the room: SFML 3
The bad news: It's impossible to integrate all the changes we have promised, discussed or
wished for over the past years.
The amount of potential API changes and redesigns is too great to fit into one version of SFML.
The good news: It has become clearer over the past few years, that a lot of people have adapted the "new" C++ standards and are looking for APIs that do support modern C++ (e.g. move-semantics), but also don't feel particual motivated to contribute to "old" C++ code bases like SFML.
SFML 3 will first and foremost focus on introducing the
C++17 standard to the SFML code base and to get rid of some baggage.
Additional API changes or redesigns have second priority on the list.
The overall goal is to accept that major version updates don't require massive library evolutions on the scale of barely achievable, but that breaking changes should be able to happen more frequently and within a manageable scope.
This also implies that we'll actively try to avoid dragging a major version on for many years, which has the the effect, that SFML 3 will end up rather short-lived compared to SFML 2.
Here's a rough roadmap what the goal is in the near future:
SFML 2.6 (see
GitHub Project for details)
- Scan codes
- Required bug fixes
- Small championed contributions
SFML 3Priority 1Priority 2- Hot API discussion points (TBD)
- (Setup for multiple rendering backends)
BackportsWe're generally open to backporting critical bug fixes to SFML 2, but it will be decided on a case-by-case basis and the focus should really be in moving forward.
SummaryThe current roadmap moves SFML 3 from an infinitely far away horizon to the next version after SFML 2.6. Major versions don't require massive API evolutions, but it simply indicates a breaking change.
I'm interested in hearing what people think of this proposal, so let the discussion begin!
Keep in mind though, that the point of the discussion here, isn't necessarily about a single item on the list, but it should be more on the whole perspective change.