Let’s talk about modding!

So 0.2 development has been kinda slow, what with being busy with real-life stuff, and it’s a lot more gritty-nitty coding than some exciting new feature. Can’t talk for Daiky, naturally. 😛

Anyways, one of the biggest debates that goes around is how open will OpenXcom actually be? I mean, technically, it’s open-source, so anyone could already immediately start developing their own wacky versions with their own wacky changes and patches and graphics and options and…

Haha yeah right, like anyone ever does that. Plus that’s a terrible approach. The goal of OpenXcom isn’t to just leave people to fend for themselves whenever they want a feature, having to rely on various fragile third-party patches or thousands of options. It’s really unfriendly and a maintenance nightmare. This is all about the player!

For one thing, OpenXcom will try to improve the original as much as it can without jeopardizing its “purity”. This kind of stuff will probably only be implemented later on, when the game is more feature-complete. But you can expect the kind of features you’ve always wanted or gotten from fan-patches like XcomUtil or Enemy Unknown Extended. Stuff like pre-battle equipping, right-click doors, item stacking, interception groups, keyboard shortcuts, auto-sell manufacture, customizable base layout, etc. Anything that’ll improve the experience will be supported right out of the box. Anything that might be too big a change to gameplay (eg. enhanced interception logic, alien AI, etc.) will probably be left as an option. You don’t need to worry about what’s different, you’ll always get to play the game the way you want.

Another thing that’s being worked on for 0.2, is rulesets. This will provide more direct game moddability without having to touch the code, but it also won’t be anything big like custom game logic or scripting or whatever. The thinking goes like this:

There’s stuff that X-Com always has in common and which is always different. For example, UFO and TFTD contain completely stuff but they still both work and play exactly like X-Com. They just change stuff like crafts, weapons, aliens, base facilities, maps, etc. What makes them different? For example, every craft handles equally, so what separates a craft from another?


Looking at the UFOpaedia you can easily see this kind of stuff has stats. Maximum Speed, Acceleration, etc. This is the kind of stuff that makes game elements what they are. A whole bunch of boring hard-coded values defining and balancing stuff. But wait, why should they be hard-coded? Why couldn’t you just define a craft like:

<craft id="SKYRANGER">
   <speed>760</speed>
   <acceleration>2</acceleration>
   <fuel>1500</fuel>
   ...
</craft>

That way you could have your game however you want! Purist original UFO, or some improvements like better tanks and laser weapons (ala XcomUtil), or even completely new weapons, aliens and more! All just by editing a bunch of numbers.

And that’s exactly what rulesets will let you do. Mod to your heart’s content while never breaking the original X-Com feel.

Craft maintenance

Time to get some more controversial debate going on here!

As every X-Com veteran knows, when a craft returns to base, it always goes through the maintenance cycle: Repairing -> Refueling -> Rearming. While a craft can start at any step (eg. an undamaged craft will skip Repairing), it’ll always goes through the remaining steps, even if they’re not necessary. So for example, any craft that goes on a little trip will always have to Refuel and Rearm when returned to base, even if no ammo was spent or the craft doesn’t even have any weapons.

This has sparked some debate on whether this is correct or not. A lot of people just consider the “Rearming” step a necessary evil, like a final “maintenance” step (fix the paint, warm the engines, etc.) a craft always needs to go through before it’s ready to take off again . Others think it’s a bug that just wastes time and don’t want to have anything to do with it.

So what do you think? Should the original logic be preserved? Or should it be considered an unfixed bug and crafts should skip Rearming if they can? And don’t just say “make it an option” or I’ll just make it twice as annoying. 😛

Re: My code is haunted

Apparently nothing gets comments going like boring programming stuff. 😛 Anyways, the exciting conclusion!

You were all wrong. I was wrong. Well, half-wrong After all, the buggy code did rise from the grave and came back to haunt me one month later! Just in time for Halloween.

The _speed variable in question was inherited from MovingTarget. Which would’ve been fine, except there was a leftover _speed variable in Craft too. Uninitialized too, naturally. Just hiding there, no warnings, no anything, just happily confusing me and the compiler. Ain’t programming wonderful? A learning experience every day.

SVN back to normal

You can safely use the SVN repository again now, it’s all reorganized and restructured and refancied and all that. Check the updated Compiling page if you’re confused about where stuff goes now.

Battlescape development

I’m sure some of you have been thinking “oh my gawd there’s no battlescape in sight, will I ever get to shoot aliens in the face in destructible isometric maps? :(“. Well, not to worry!

Daiky, a new contributor who has a lot of experience with the X-Com battlescape, will be helping out by implementing the OpenXcom battlescape while I work on the geoscape/basescape. This should help us reach our goal a lot faster!

You can check on his progress in this thread, and here’s a screenshot of his latest progress:

Version 0.1 is here!

Yes, the first properly versioned, properly planned, properly built release is here! With tons more bugfixes and features than before! Still not complete though. But at least there’s a semblance of playability now! What are you waiting for? Go get it!

For those just joining us, here’s a run-down of all the features you can expect in this version:

Geoscape:

  • Fully-controllable globe.
  • Globe details like country borders and names.
  • Day/night effect.
  • Initial base placement.
  • Basic UFO spawning and detection.
  • Craft interception with fuel consumption and basic dogfights.
  • Craft repairing/refuelling/rearming.
  • Funding overview.
  • Monthly funding.
  • Scroll-wheel support.

Basescape:

  • Full base view with facilities.
  • Building new bases with access lift placement.
  • Base information.
  • Base stores.
  • Soldier stats (with randomly generated soldiers).
  • Craft info and equipping.
  • Facility building/removal.
  • Scroll-wheel support.

And here’s some technical notes:

  • You can’t destroy Access Lifts (therefore destroy a base).
  • You can’t minimize dogfights.
  • UFOs are nerfed to make them easier to intercept.
  • Crafts rearming in base don’t use up ammo in base stores. This is to prevent them from running out since you can’t buy more ammo yet.