The previous development team for SuperTux has abandoned the project altogether, so development stalled for a few years. When new people took over, we faced a variety of different obstacles, including the following:
Largely unknown and unmaintained code base (It took a while to really get to grips with the majority of the code, so making changes was often an obstacle. However, after careful studying and a lot of help from various communities, including the C++ developer community) we managed to understand and make first amendments to the code which then over time became more numerous and bigger
Outdated code (The old code base used an old standard of C++ (C++98). Updating that to the newer C++ 2011 or 2013 standards is an ongoing process. I, the main developer, have made some code changes in that regard.
Non-documented code (This is an ongoing problem which we’re facing. Most of the code that was written is badly documented and can only be understood when the whole software is understood. As we lack the man power to specifically work on documentation, we have decided to document new code additions thoroughly and work on the backlog of undocumented code as we see fit.
Low community participation (SuperTux is and has always been a community product, as such we depend on input from the community for various tasks. We have tried to change that by asking people for help using our various social media channels (forum, reddit, Twitter) to ask for help. In some aspects, especially when it comes to levels, we’re getting some participation, in other areas, such as programming and graphic design we’re still looking for help, so we can say that the success of this has been mediocre.
Issues dealing with certain community members (Some community members proved to be harder to deal with than others, this included accusing the team of making the game bad on purpose, of being „mean“ and other things. We overcame these issues through setting up guidelines for dealing with community members. This includes responding to incidents in a timely and positive manner.
Low visibility (Since SuperTux was dormant for such a long time, everyone assumed that the project was officially dead. It took some time to gain some visibility of the rebirth of SuperTux, as to say). Methods we used include setting up social media channels on twitter, YouTube, reddit and other sites that boost visibility, also releasing early and often certainly helped us gain back some of the initial visibility.
Untested code (Our test coverage is extremely low. Since most of our code isn’t modular and depends on other parts of the game, so you can’t test it without starting the game, we have certain problems changing that fact, however, for small parts like the maths library of SuperTux, some tests were written by other members of the community).