jump to navigation

New XL Engine Release June 15, 2011

Posted by luciusdxl in Uncategorized.
add a comment

New XL Engine Release on the new blog.

Progress And Plans May 4, 2011

Posted by luciusdxl in Uncategorized.
1 comment so far

Progress and Plans on the new blog.

Since the projects have moved to XLEngine.com, I will be posting links here for a while as new blog posts are made. Please follow the link above to read the latest post.

Site Issues April 22, 2011

Posted by luciusdxl in Uncategorized.
add a comment

Edit – the site is back online faster then I expected. When I posted this I expected extended down-time.

This post is not directly related to DarkXL but rather to the new XL Engine site. Since it is currently offline, I’m posting this on the blogs and old forums so people know what’s going on.

The new XL Engine site is down temporarily and will probably be down all of today and maybe even tomorrow. This is only a temporary issue that I’m attempting to get solved right now. Please be patient, the site will be back up as soon as possible.

Thanks for your patience.

XL-Project Move and DaggerXL Version 0.20 Update April 17, 2011

Posted by luciusdxl in Uncategorized.
add a comment

As previously discussed, I’ve moved to a centralized XL Engine site and blog. So from now on I will be linking posts from the new blog from here, until everything is moved over.

Read XL-Project Move and DaggerXL Version 0.20 Update.

DarkXL, OutlawsXL and BloodXL Moving April 15, 2011

Posted by luciusdxl in Uncategorized.

These projects will soon be merged together, with DaggerXL, as the XL Engine. While the merge itself hasn’t begun yet (see the previous post for a time table), I have begun to consolidate the communities and sites that are dealing with these projects. The DarkXL freeforums site has been closed down – forums for all these projects will now be here: xlengine.com/forums. The new site, xlengine.com will now host a new blog that will cover all the projects and the site will host news and downloads when it’s setup. I will be setting things up in the next week, after which point I’ll remove downloads from these blogs. This will also be the last blog post made specifically for this blog, though I will still put up posts here with links to the new blog so returning visitors aren’t left behind. To that end the blogs will remain operational for a while yet.

DF-21 will remain as the source for Dark Forces discussion and files. However DarkXL discussions will be moving over to the new forums like every other project. So please visit the new forums to get acquainted with them and register if you like. The site/blog isn’t fully setup yet, but as I said that will be happening within the next week.

The good news is that the new site is a properly hosted site, meaning that I have more control and things can be centralized (site, blog, forum and file hosting all on that site). This also means that things like a wiki or other features can be added later.

Beta Update, Project Merger and the Future of DXL April 13, 2011

Posted by luciusdxl in Uncategorized.

Beta Update

I plan on finishing the Beta release once version 0.20 of DaggerXL is released later this week. However with the Beta comes another big change as you’ll read below:

Project Merger

I’ve been thinking about this, off and on, for a while now. But with the DarkXL Beta coming up this is basically my “last” good chance to get this done if it’s going to be done at all. I plan on merging the DaggerXL and DarkXL projects into one engine, the XL Engine. But the engine rendering and many other aspects are different, you may say – and it’s true. But there is a lot of code that can and should be shared between the projects. For example, much of the software renderer and hardware driver abstraction layers. The in-game console. The sound system. The midi playback system. The window/OS management and input systems, the scripting system. UI scripting ability, AI scripting, and so on. As I start supporting different OS’s and rendering APIs, this will save a lot of duplicate work. I’ve been considering, way down the road – post DaggerXL beta if it happens – adding ArenaXL as a project supported by DaggerXL. With the shared code base, I can use a lot of the same code that DarkXL will use for it’s sector rendering, for example.

There are other benefits: releases that work on technology now benefit all projects, no need to “port” from one to the other. As I brushed upon before, when I add support for other platforms – I add support for all the projects. When I make releases, it will be easy to make improvements for multiple games simultaneously. Some tools and mod support can be shared across projects (for example adding the DaggerXL high resolution texture replacers support to DarkXL). And finally I can merge the communities under a single engine/site/forum so that I can be active on all the projects and not just one at a time.

So what happens to all the different sites and forums that currently exist?
DF-21 will remain a resource for Dark Forces related files and forums. However I plan on setting up a new forum, for the XL Engine, and migrate all the projects to that forum. The newer DarkXL  forums will remain open for a while, but once I get things moving I will probably focus on posting over at the XL Engine Forums and the DarkXL forums will be shut down. For the time being, I’ll keep the blogs around but I’ll probably start putting together an XL Engine blog and mirror posts across the others. As support for more games is added in the future, this will be a more scalable solution as well.

Does this change future plans for DarkXL, modding support or other DarkXL specific plans?
No. Full modding support is still planned, though many of the tools may be shared with DaggerXL modding.

Isn’t DarkXL a sector engine and DaggerXL a true 3D polygon engine? Aren’t these incompatible?
It is true that they are different but both can exist in the same engine. DarkXL actually supports rendering models already, they are used in Dark Forces for things like bridges, Tie Fighters, The Moldy Crow and so on. The way the level geometry is rendered is indeed much different, but the engine will be able to support both sector and “free-form” polygonal geometry. This has potential implications for modding, though those will be explored later. Things like scene traversal and level geometry rendering are different, but this won’t be the first engine to support multiple methods of scene traversal and rendering. A lot of the surrounding code will still be shared, so the savings offset the cost.

So here is my plan:
1) Release version 0.20 of DaggerXL.
2) Finish the DarkXL Beta.
3) Merge DaggerXL and DarkXL under the new XL Engine, where DaggerXL and DarkXL are two games supported by the engine.
4+) Continue to work on the projects as I have been, but with everything together it’ll much easier for me to keep everything going rather then letting one or another stagnate.

The order of 2 and 3 may change. My gut instinct is to get the merge done before the Beta but completing the Beta first gets a long overdue build out sooner…, but that is beyond the scope of this topic.

Finally, I have to ask the community: Are you guys willing to do this? To move to new forums, to intermingle with Daggerfall, Outlaws and Blood fans? Of course each game gets it’s own sub-forum so it’s not complete anarchy, but you get the idea. I know it’s sudden for you guys, but it’s been on my mind for a while now. Ultimately I think this change would be an improvement for all the projects – DarkXL included – but I would appreciate it if you guys let me know what you think.

Upcoming Beta and Changes March 22, 2011

Posted by luciusdxl in Uncategorized.

Since my last blog post, I have been spending a lot of my free time working on DaggerXL version 0.20. The plan was to work on the DarkXL Beta at the same time, but until this week my hectic schedule hasn’t let up as much as I originally thought. However I am once again working on the Beta release for DarkXL, with all the features discussed in the previous article. A release should finally be made within the next couple of weeks, assuming “real life” behaves for a while.

As for changes, I’ve reconsidered the goals of the Pure Renderer. While the prospect of having the GPU renderer display the game almost exactly like the DOS version is cool, and matches the original goals, it doesn’t really completely solve the problem. And that problem is that there are many people with older systems or newer systems with terrible GPUs and/or drivers that would like to use something like DarkXL but can’t due to under-performing parts, drivers or just the age of their GPU. So despite my original plans, the Pure Renderer will become a software renderer. It’ll still support the DOS-like mode (i.e. 320×200 8bit) but also support higher resolutions, 8 bit and 32 bit modes.

The Pure Renderer will share the mesh rendering and blitting code with DaggerXL (which is also getting a software renderer for the same reasons) but will, of course, use a specialized renderer for the sector geometry. With all that said, the hardware renderer will continue to be optimized and improved but this will give people another option. This means that fixed-function GPUs will not be supported (and they are not currently), but the Pure Renderer will be available instead.

This also means that DarkXL will have a software voxel rendering implementation after all as well. Though the current hardware implementation will remain of course.

Crunch Time Ending March 2, 2011

Posted by luciusdxl in Uncategorized.

My deadline for my current work is coming up this week at which point I’ll finally be able to resume normal working hours. This means that DarkXL and DaggerXL will resume active development next week. 🙂

For DarkXL – I will finish the UI script system, which is mostly complete and then fix some bugs for the Beta. The Beta will include the Pure Renderer, all the weapons including secondary fire, all the enemies with proper AI, all levels fully playable, the ending working correctly, cut-scene bugs fixed and potentially an OS X client (if this doesn’t make it in the first Beta build, it will follow shortly afterwards). Oh and I almost forgot, the voxel support among a bunch of other things I’m forgetting too…  In addition all of the source code will be available on the CodePlex site once the Beta is released, some of it is already up there. Once Beta is released DarkXL should be a complete replacement for Dark Forces in Dos Box for vanilla game play.

In addition, the Beta build will be more helpful to people setting it up for the first time. There are multiple ways it will do this: when you run it will try and determine if it can load all the necessary files. If not a dialog will pop up where you can select paths to the Dark Forces game data. This means that you won’t set the path in the text file anymore and it means that the game can tell you what’s missing right away and let you look for those files on your system.

In addition, the first time you run the program, a dialog will popup where you can put in your general preferences for how you want DarkXL to behave. This will setup all the options as outlined below, but at anytime you can still bring up the Configuration dialog in-game to tweak individual settings. This is done so people will have a positive initial experience with DarkXL that (hopefully) closely matches what they want to get out of the program without having to mess with a bunch of options – unless they want to of course.

Original controls: key board turning, key board look up and down, auto-aim

Modern Controls: full mouse look, no auto-aim by default (for most weapons)

Options will include:

Visuals     (Controls – either Original or Modern for all visual options.)


(Default “Pure Renderer”) Emulated 320×200, emulated palette support, no texture filtering, forced perspective (i.e. the original skewed perspective when looking up and down), palette based effects.


Very similar to the Dos-like mode, but with the Pure Renderer running in emulated 640×400/480 mode.

Hi-res, minimal FX

Full resolution, color depth and texture filtering. Note that texture filtering can be disabled and other tweaks can be made through the Configuration menu (modes are just initial settings that can be tweaked at anytime).

Hi-res, modern FX

Full resolution, color depth and high quality texture filtering. Additional, modern effects, are enabled by default. These include dynamic lighting and bloom/glow.

Thank you for your patience everyone, hopefully people will consider the Beta (and future support for Outlaws and Blood) to be worth the wait. 😀

Crunch Time February 13, 2011

Posted by luciusdxl in Uncategorized.

Some news on DarkXL and related projects:

I have not abandoned any of these projects but have been in serious work-related crunch time. I’ve been working feverishly, 7 days a week, for about a month now. I wish I could show you guys some of the stuff I’ve been doing – it’s really cool – but I can’t. 😦  DarkXL will resume as soon as this crunch time ends, thanks for your patience.

Weapon Scripting and Forums January 3, 2011

Posted by luciusdxl in Uncategorized.

I’m sorry to say that I missed the date of my goal – the Beta release has been delayed until later this week. So my last post was not the “Final Update Before Beta” after all.

Weapon Scripting

In the meantime I’ll talk about a feature that I decided to add earlier due to some issues I was having with the Beta.

When I was tweaking the weapons I began to realize that the way the weapons were being coded was a bit hard to work with, it was purely code driven rather then being data driven. I obviously needed to fix that, not only to get the Beta done – but also to make my life easier in the long run.

So I’ve spent part of the weekend implementing the weapon scripting system. So now, in addition to having the logic scripts (CoreLogics.as) you have weapon scripts (CoreWeapons.as). In the future, mods can provide their own script files that override the core scripts. This means that DarkXL mods will be able to have custom enemies, items and weapons. Very Happy

To create a weapon requires multiple steps:
1) Register a weapon at a specific index (which maps to the inventory items and keys).
Weapon_Register(1, “Bryar Pistol”);

2) Setup basic firing and projectile parameters. If this is a simple projectile, like the Bryar Pistol, Repeater or Fusion Cutter then you’re done with this part.
Weapon_IntParameter(WPARAM_START_FRAME, 0);
Weapon_IntParameter(WPARAM_MAX_FRAME, 3);
Weapon_IntParameter(WPARAM_FRAME_DELAY, 4);
….(more parameters)….
Weapon_StrParameter(WPARAM_SHOOT_SOUND, “PISTOL-1.VOC”);

You get the idea. You only set the parameters you need, everything else has a default of 0 or NULL. If this is a basic projectile weapon than the engine does all the heavy-lifting for you, using the parameters you’ve filled in to determine how much damage to do, which graphics to use, what sound effects to use, how fast the projectile travels, what type of ammo it uses and how much and so on.

3) Setup animation callbacks, that occur on animation frames or right as the animation finishes. This is needed for more complex or different behaviors that aren’t handled by simple projectiles. This includes fists (punching), thermal detonators, mines and so on. Most weapons don’t need these callbacks. Combining this with custom scripted projectile logics you can make totally new weapons – such as heat seeking missles, projectiles that circle around the player, trip wires and more.
This is the name of the function that exists somewhere in the script file. It can be any name you want.

4) Load render data – basically your weapon idle and animation frames.

5) Setup the Render Callback, which determines the final frame index and screen position of the weapon, given the current animation frame and firing state.

And to make things more convenient, you can reload the weapons scripts at any time from the in-game console. So you can make small tweaks and see them quickly in the game. The weapons now use this system, which is allowing me to remove the individual weapon-specific code out of the code-base.

For Outlaws and Blood being able to setup and adjust weapons while in-game will make the process much easier then it was for Dark Forces.


In addition, in preparation for the Blood and Outlaws work, I’ve started setting up new DarkXL forums. While DF-21 will remain the forum host for Dark Forces related discussion, a Dark Forces site isn’t the best place to be talking about Blood and Outlaws. The new forums will have a general DarkXL discussion area as well as areas to discuss game specific topics and DarkXL related issues. The Dark Forces category points back to the DF-21 forums, where I’ll continue to post news items and Dark Forces related items.

Source Code

I just want to reiterate here that the source code for DarkXL will be released with the Beta. Over the coming week I will be putting up the code on the DarkXL CodePlex site. You’ll note that I’ve already put up a couple of files and some directory structure, though I need to put the appropriate license information in those files – it is currently missing. I will be uploading code as I go through the files, put in the appropriate license information and organize the directory structure better. I plan on having the code fully uploaded this week, though some additional clean-up and optimization will still be required to get up to the quality that I want.

Thanks for being patient with the Beta release, it is in the final stretch. Hopefully this is really the last update before the Beta. 🙂