I have made some modifications to the next release as well as a bunch of new information about what’s going to be happening in the near term.
The release has not actually been made yet but it’ll happen tonight before I go to sleep. I’ll make another short announcement here and on the forums when the release is actually uploaded and available. I’m putting out this blog post now to save me time later.
The First XL Engine Release
Obviously this is not the first release for DarkXL or DaggerXL, but it is the first release since the process of merging the projects has begun. The following will be packaged in this release: XL Engine Launcher, version 0.199 of DaggerXL and build 9.50 of DarkXL. Currently DaggerXL and DarkXL are still separate executables, however they are packaged together and should be launched using the new Launcher. As you’ll read later in this post, they will no longer be separate executables in the next (post-merger) release. Now I’ll talk about each item, but before then I’ll talk a little bit about a change in philosphy and why these are “interim” builds rather then the promised version 10.0 (beta) and 0.20 (alpha).
To put it simply the amount of time spent on these projects is variable. Sometimes I get busy and sometimes a lot gets done quickly. When combined with big releases this can result in progress “lulls” where nothing appears to be getting done. It’s not true, of course, I work on things as I get time – but the perception of progress is lost. So I’ve talked about moving to smaller builds that would work toward the big milestones (such as 0.20, 0.30, etc.) but said that this would wait until after the merger. However as little issues come up, the large builds get delayed and so does the merging process. So I’ve decided to take action now instead of later and release interim builds – not everything is complete that I talked about and some stuff is disabled. But this will allow me to get the merger out of the way before working on more stuff (thus complicating the merger even more) and will a start to the post-merger way of doing builds.
The builds will no longer be hosted using the old “DivShare” method or using the old blogs. The Downloads page will be updated on this site, which will be the go-to place for new information and builds.
The goal is to move to a weekly build system, even if it’s just small features or bug fixes some weeks. I want to have a continual sense of progress rather then the “bursts of activity” that we have now. That is the only way to grow the project and I think will be a big improvement for everyone – including me. For DaggerXL, builds like 0.20, 0.30, etc. will be more polished milestones while builds like 0.199 will be interim builds that may contain incomplete features. But this is a work in progress, there’s no reason you guys can’t see these things in progress more.
The XL Engine Launcher
The old DXL_Settings.txt files are gone now. You will use the XL Engine Launcher to setup anything that currently cannot be set in-game, including things like game path and mod settings. The files it writes out are different, so if you try to run DarkXL or DaggerXL directly without using the launcher, you’ll get a message telling you to run it at least once. In addition, the launcher will verify that certain files exist in the paths that you specified and tell you if things are not setup correctly when you hit the “Play” button. It will also verify that OpenAL can be setup correctly and tells you if you need to update your OpenAL drivers.
Below you can see the launcher, click on the game picture to setup that game and alter it’s settings. Note this is a slightly outdated screenshot – I added support for enabling and setting up texture replacer mods as well.
Below you can see the various video and graphics settings for DaggerXL:
DarkXL Build 9.50
DarkXL will also be updated from version 9.08 to version 9.50. While the “bleeding edge” code still isn’t stable enough for release, this is an older – stable – version of the code. It isn’t as close to the Beta but does feature several features over the current 9.08 build, including:
- All the weapons implemented.
- Secondary fire implemented.
- Weapon Scripts implemented, with all weapons re-implemented using said scripts.
- Night Vision fixed.
- Fist impact sound on walls.
- Improvements to midi playback.
- Bug Fixes.
This build has also been modified to work with the launcher as discussed above. Note that secondary fire is hard-coded to ‘R’ temporarily until I add it the config dialog.
Note that if you want to play around with voxel models, this build supports the kvx format (the same as used in Blood). Not that useful for playing Dark Forces, but it’s there for testing. Here are the steps to place voxel models in the game (though they are not currently saved):
1) Create a Model directory in the same directory as the release is installed.
2) Place your kvx files into the model directory.
3) In-game, bring up the console using the ~ key.
4) type t_add_obj_3D modelName.kvx [yaw] where yaw is optional (defaults to 0). This places the model at the player’s position.
Some random screenshots of me using this:
DaggerXL version 0.199
So I’m still having some issues with version 0.20, so this interim build disables things that aren’t working if they are problematic. So not all the promised 0.20 features are there but they will come online after the merger, giving me more time to make a nice, polished Alpha release later.
Features that are there and enabled:
- All armor pieces supported with the exception of helmets. You can collect and equip them but they do not show up on the player “doll.”
- All weapon types supported except projectile weapons (bows).
- Weapon and armor materials are supported.
- The dungeon automap.
- Dungeon water – but currently only in a few dungeons, which I’ll list once the release actually goes out.
- Swimming skill, swimming controls, breath meter, drowning, etc.
- Leveling – though loot scaling and monster scaling are not yet properly handled (coming in version 0.20 still).
- Improved loot, though the full loot table implementation is still incomplete.
- Bug fixes.
Improved enemy support, random encounters, fixed dungeon textures, helmet rendering and full proper loot tables are still incomplete. Those will show up in the 0.20 alpha build.
Starting tomorrow I will start working on the engine merger. I’ll present a list of things to know and what is going on:
Switch from DirectX to OpenGL
The engine will be cross platform so I’m switching to OpenGL in order to make things easier for myself. I already have a modern working OpenGL engine, so this should be fairly painless. This also means that all reliance on D3DX will be removed.
Support for advanced sector rendering, DaggerXL style polygon/terrain rendering and voxel rendering
Basically the engine will have support for multiple ways of storing and rendering scenes.
Single executable, multiple game support using scripting and dynamic libraries
The engine will support an arbitrary number of games, though obviously only the games already talked about right now. Many things, such as weapons, enemies and UI will be supported using the scripting system as “pioneered” by DarkXL.
The engine will initially support Windows, Linux and OS X.
In addition I will be implementing the missing rendering features needed to faithfully render BloodXL and OutlawsXL. When the merger release is made, it will include the first release for BloodXL and OutlawsXL support. It will obviously be pre-alpha material, but you should be able to run around all the levels and look around. Enemies and weapons will follow shortly afterwards. The DarkXL Beta and DaggerXL Alpha will follow the initial release. However I will be making incremental weekly builds at this point (when possible), so there may be more interim versions depending on how it goes.