D2X-XL Worklog
Notes on features and problems from the development of D2X-XL, newest first.
D2X - The Revolution |
|
While my previous work log entries have rather dealt with what has happened under the hood of D2X-XL since v1.13, I will give an overview of the improvements
D2X-XL v1.14 presents to its users here. Actually v1.14 turned out to become much bigger a release than I had initially planned, offering so many improvements and
new features over previous versions that I believe I can rightfully call it a revolutionary step forward. Stability My main goal for this D2X-XL release was stability. As laid out in my previous worklog entry, a lot of the program's code has been rewritten to achieve that goal,
utilizing many C++ features for this purpose. The new code has indeed enabled me to find quite a few severe flaws in the D2X-XL code, and the results from the beta
test and release candidate phases show that my efforts in this area have been very fruitful. V1.14 will be the most stable D2X-XL release in the history of this project. Improved Memory Management All previous versions of D2X-XL requested all the memory they would need to display the biggest possible mine right at program start, no matter how much space actually was required when playing a level. The only way to decrease memory requirements was to limit the maximum size of mines D2X-XL would handle beforehand by setting it in d2x.ini. V1.14 has a different approach. It only requests as much memory as it needs for the current level, and will return this memory to the operating system when the player returns to the menu. Since most mines are rather small compared to to the limit of 6000 cubes D2X-XL imposes, this results in a significant reduction of D2X-XLs memory footprint and level load times and relieve particular players with smaller machines. Another significant improvement in this area is the possibility to have D2X-XL unload unneeded textures from memory ("-lowmem")
and to control texture preloading to reduce D2X-XL's texture memory footprint ("-preload_textures"). D2X-XL comes with healthy default
settings already for those who cannot be bothered with technical stuff like that. Full Modding Support One benefit of the new flexible memory management is that D2X-XL can now easily handle complete overloading of all of Descent 1's and Descent 2's default
data without requiring any of the original game data files to be temporarily replaced as had to be done in the past and for other Descent versions.
With V1.14, you can store all modding data for a mission - be it textures, models, AI data, sounds or music - in separate folders, and that is both on a per mission
and per level base. D2X-XL will find and read that data and present the mission using this data. You can even overload the original Descent 1:First Strike,
Descent 2:Counterstrike and Vertigo missions that way and give them a completely new look, feel and sound. DarkFlameWolf is currently doing that for
Descent 1, and the result of her efforts is truly impressive. Painless Multiplayer I had made great efforts to improve multiplayer connectivity in the past. While these efforts had gone in the right direction, there still
remained painful problems with multiplayer games, like people endlessly waiting to connect, people constantly dropping out of multiplayer games, players
spawning on top of each other, etc. etc. V1.14 finally cures all these problems. Participating in Descent 1 and 2 multiplayer game never was that easy,
and the tracker support offered by D2X-XL makes it even easier. The level downloader has received an overhaul too and will now correctly load the mission
to be played after having downloaded it, and will properly overwrite outdated missions with newer versions it downloads. Missions completely new to the
player downloading them will be stored in a subfolder of the missions folder named "downloads" and thus can easily be identified and moved to
other locations if the player sees fit. Renderer And Multithreading D2X-XL has also received a few optimizations of the renderer and an overhaul of the multithreading code handling effects and works smoother and in many
cases faster than ever. The cockpit code has been almost completely rewritten, and the result is cockpit views that are as close to perfect as possible.
An issue that had gone unnoticed for a long time has been taken care in this version: The visible part of the mine was too small due my using a wrong FOV
(field of view) angle of 90 degrees instead of 105 degrees Descent is actually using. Widescreen users rejoice! Improved UI The UI has received a thorough overhaul that was long overdue. Many detail settings have disappeared and have been replaced by a simple control that is
easy to handle, yet gives the user enough choices to find a setting that really suits him or her. The result is a clean, sleek interface that is easy to
understand and to handle and satisfies both the D2X-XL expert and novice. OS X After a long time, there will also be a new OS X version. V1.14 cures all the problems that had surfaced here - particularly in the multiplayer area. Screenshots New improved automap combining textured and wireframe view
DarkFlameWolf's awesome Quake-Descent mod for Descent 1
V1.14 has turned out to be the biggest overhaul of D2X-XL in its entire history. 60% of the code changes committed to the D2X-XL source repository are
changes made for this program version. There has been a real long beta test phase allowing to iron out many severe and less severe problems and adding a lot of
polish to the game. I would like to thank all beta testers here for their support and dedication: You guys have been a tremendous help for getting this
D2X-XL release right. Special thanks to simx for staying up until 4 o'clock in the morning to help me debugging the OS X version. I wish you a lot of fun
and good times with this release of D2X-XL. See you in the mines! Diedel |






