Why is Snowberry going away? / FAQ

edited 2015 Jun 6 in User Interface
The Snowberry frontend app is going to be removed in Doomsday 2.0. In this post I will endeavor to explain why.

Doomsday has been using a separate launcher application since its inception. The role of the launcher has been to configure the engine (at least those settings that have been difficult or impossible to change at runtime), select which external resource files to use, and manage your custom game configurations. This has meant that Doomsday itself has had no knowledge or understanding of these concepts. Consequently, Doomsday's development has been held back when it comes to handling resources: it can't determine exactly what set of resources was used when a savegame was created, making it unable to confirm if the correct resources are present when later loading the game. Multiplayer games may depend on gameplay-changing resources, too, and those must be in use on all participants. Doomsday also can't provide any type of UI related to resource management — like selecting which set of 3D models should be used — because it only knows about the low-level individual DED, DeHackEd, WAD and other data files.

Removing the frontend is a big change, though, and if you have been normally using the unstable builds, you may want to reconsider and switch to the stable ones until we can rebuild the needed functionality into the engine. Much of the required basic UI already exists in the form of the Home screen (Ring Zero) UI, where you can see available games, saved games, and public MP servers. Before version 2.0 can hit stable status, the Home screen will also offer functionality to set up your own game configurations and manage/browse add-ons and resource packs. However, Snowberry had several features that may not be that important — our goal is not to rebuild Snowberry into the engine, but to move forward and create a better UI that truly matches your needs.

There are also technical reasons why having Snowberry around has been problematic. It is written in Python and uses the wxWidgets UI framework, while the engine itself is C++ and uses Qt — having many requirements makes dealing with the code base more difficult. Python's advantage is platform independence (and I really like it as a language!), however distributing applications written in it is challenging. This kind of apps need to be wrapped using special tools that include the Python parser along with any needed extra libraries. Unfortunately, the process is quite different on each of the platforms that Doomsday supports, so it has added to the maintenance burden. (Particularly on OS X where the code signing requirements are getting ever stricter.) Python itself is transitioning from version 2 to 3, and Snowberry is still fully Python 2 based. Finally, now that Doomsday has switched to CMake and uses CPack for packaging, Snowberry's distribution scripts would need to be rewritten before it can be deployed using the new mechanism.

TL;DR — We are dropping Snowberry because it hinders Doomsday's growth, and because there are several technical issues that can be avoided if we get rid of it.

This subforum exists so you can work with us to provide feedback about which of Snowberry's features you find valuable, and what new kind of things you would like to be able to do regarding game configurations and add-on/resource pack management. Please join us in the discussion!

Comments

  • If you have any questions, please comment here and I will update a FAQ list in the original post.
Sign In or Register to comment.