Week 14/2013: Another cycle completed

edited 2013 Apr 8 in Developers
Last week we released the stable version 1.10 and started work on 1.11.

The release of 1.10 was a bit rocky due to important last-minute fixes resulting in some instability and a couple of bugs in the autobuilder causing hiccups. We are prepared to release a 1.10.1 patch if needed, though.

Recently we've been encountering more and more issues with old versions of GCC (4.0, 4.2) particularly with the OS X 10.4 build. To ease this maintenance cost, 1.10 is the last version where OS X 10.4 (and the PowerPC CPU arch) is supported; from 1.11 onward the minimum supported OS X version is 10.6. This also means the minimum required version of Qt will be 4.7 and on OS X the Cocoa version of Qt is required. For similar reasons we are planning to drop support for Windows XP. While 1.11 should still run on XP, we won't be spending much/any time testing on it.

It is always refreshing to go back to Unstable as we are free to reprioritize the Roadmap and see what needs doing next instead of having a strict focus on polishing the stable release. While there are several topics listed in the Roadmap for 1.11, my personal #1 goal is to produce a new in-game Console UI widget. The old console contains some of our most ancient code, originating all the way from the start of the project in 1999. I am very happy to be finally able to start revising the engine's GUI as it has become one of the biggest obstacles for future enhancement of the engine.

My work with the "ui-framework" branch has continued with cleaning up the architecture of how windows are managed by the engine. Over the years this section of the code has grown convoluted, as we've been switching underlying UI frameworks from SDL to Qt and then the language from C to C++. It was time to rethink the whole thing from the ground up with Qt and C++ in mind. So far the end result has been a great improvement with features like setting the fullscreen display resolution separately from the windowed size finally being implemented.

My plan for this week is to continue work in the "ui-framework" branch finishing up the window management improvements, merge them to master and then proceed to the new GUI work.

Comments

  • You'll see from the Roadmap that my #1 priority for the 1.11 release is the introduction of a Half-edge data structure to model the map data elements. This goal I have personally been working toward for several years now, beginning back during the 1.9.0-betaX series which saw map loading being moved into the engine. A little while later we took the next significant step of integrating a GL node builder (based on glBSP 2.24) into the engine. Later still I then revised the node builder implementation, introducing the "ownership" concept and enabling us to build this data using the exact same types as used at runtime, when the game is in play. Since then however, it has sat on the back burner while we focused on updating the engine's technology platform, porting to Qt and switching to C++.

    I'm happy to say we are now finally in a position where I can resume working on this. The first step is to address the legacy issues in the node builder, which in certain circumstances result in a less than ideal BSP tree.

    Before this work can begin however, there is the not insignificant job of cleaning up the map data components after their preliminary switch to C++ for the 1.10 release. I actually began this task a couple of weeks prior to the 1.10 stable release, as I had a little less to do in the candidate phase this time around. Thus far the cleanup has progressed pretty smoothly and my plan for this week is to complete this phase and merge it to the master.

    With luck this should mean I can then turn my attention to more exciting prospects.
Sign In or Register to comment.