Wrapping Up 2012

edited 2013 Jan 27 in News
2012 has been one of the most impactful years in the history of the project.

This year our working practices have been more systematic than before. We have been focusing our efforts on a single main (master) branch, and the results of this are evident in the numbers. Compared to 2011, the number of Git commits has more than doubled — a clear increase in activity. The codebase is also growing in size: while we had about 400 KLOC (code and comments) at the end of 2011, now we have 594 KLOC (up 49%). This is an order of magnitude larger an increase than during the whole of 2011.

We have also been moving toward the use of C++ instead of C, the original programming language used in DOOM. It is safe to say that this is progressing at a good pace: the amount of C++ code is up 1100% year-on-year. Meanwhile, C is down to 276 KLOC from a high of 308 KLOC in September 2012. Some of this is due to switching files from C to C++, which is mostly superficial: new code written in line with the 2.0 architecture is object-oriented while old code files are not. Also, a lot of the new C++ code is in libdeng2, where it may not yet be fully integrated with the rest of the engine (e.g., the new Doomsday Script subsystem).

(More statistics and graphs about the source code are available at Ohloh.)

There were several important developments during the year:
  • In January, we merged DaniJ’s long-time "ringzero" work branch to the master, unifying future development efforts of the team.
  • In February, we did thorough cleaning and polishing for the first stable release in years. Crucial bugs in the engine's memory zone manager were fixed.
  • In March, the stable version 1.9.7 was released, starting the (approximately) three-month stable release cycle.
  • In May, the stable version 1.9.8 was released. We switched from SDL to Qt to allow for better integration into the native operating system.
  • In June, we started detailed long-term planning regarding Doomsday 2. The work was started to separate common functionality into shared libraries (libdeng branch) so that we can have multiple executables based on shared functionality.
  • In July, a FluidSynth plugin with support for SF2 soundfonts was written to improve music playback on Linux and Mac OS X.
  • In August, DaniJ did significant refactoring in the BSP builder, making it faster and more robust.
  • In September, the automatic updater was introduced and the stable version 1.9.9 was released. We did performance optimizations for the first time in a long while.
  • In October, the Hawthorn script engine was merged to the master to act as the foundation for Doomsday Script. We started integrating libdeng2 into the engine (plugin loading, log message output, libdeng2 Config). The engine's internal file system was refactored with the libdeng2 architecture in mind.
  • In November, we started modularizing engine internals and began the gradual trimming down of Snowberry by removing display mode configuration from the launcher.
  • In December, Doomsday Script was developed further and the Standard Library was founded. The j-ports (jDoom, jHeretic, and jHexen) were officially ended. The stable version 1.9.10 was released.
It has been a big year for Doomsday. Judging by the amount of progress we've made, it is quite evident that the 1.9 beta quagmire has been cleared. Therefore, it is time to shift up a gear and kick off 2013 with a new minor version. To reflect the magnitude of changes going on, we will be incrementing the minor version number on each stable release, leaving the third version number component for patch releases.

I can't wait to get started with what we're planning for 2013. We are finally in the right position for making actual user-visible changes in the user interface, and later, the renderer. Also, the push toward splitting the engine to separate client and server executables will be one of the integral focus areas.

Thank you for your continuing participation in the community! We hope you stick around in 2013 as we get closer and closer to Doomsday 2.

Have a happy New Year! <:-P

Comments

  • Nice to see this project is active! So is it like that, the 1.9.10 will be the last release before Doomsday 2?
  • yannara wrote:
    So is it like that, the 1.9.10 will be the last release before Doomsday 2?
    Far from it in fact. Although the project has made a huge amount of progress over the past year, our plans for Doomsday 2 greatly exceed the current Doomsday 1 functionality. Some of our plans for Doomsday 2 can be found in the roadmap.

    I expect there will be at least three/four further 1.x releases before we hit 2.0
  • I'm not an expert but as a player I can see all the amount of work you've been doing over the years, I have been a keen follower of your project since probably 1.8 version (don't remember which one exactly) and I'm absolutely impressed by your determination as the time goes by, so I thank you as a player and follower of your work, ;)
Sign In or Register to comment.