XCOMRL

Case File: Victor Wade, Legend

by Kyzrati on 20121216 , under



A little teaser, the intro text for what I'm working on. I wanted to have it ready around mid-December, but I also prefer to include nearly everything in the design doc to retain as much epic potential as possible, and those two goals are definitely at odds with one another. Having no strict deadlines, I made the obvious choice ;p

Mechanics and core content have been finished for a while, but it comes with a huge amount of dynamic content and map areas that have yet to be completed. I'm gradually working down the long list of the latter--eight unique starting areas are already complete, as are two possible boss areas (huge on their own). Then comes several more boss areas and all the little interesting areas in between. Should be fun.

For anyone who didn't read about recent progress, this is the project I was talking about last month (see post), aimed at testing more engine features and making sure it's up to the task of handling all manner of craziness. So far I'm very satisfied, as it is apparently capable of handling a lot of unexpected features.


Also, just like last year, Roguelike of the Year voting has begun. It's not a competition, just an expression of support, so if you like X@COM (and Cogmind for that matter, which was also released this year), head over there and vote for us along with any other roguelikes you've enjoyed this year!
0 comments more...

Mod: "Assault"

by Kyzrati on 20121125 , under

We have our second full mod, this time from Draxis!

Lead a semi-randomly outfitted squad of fully-armed soldiers to take an alien base in Assault. Quite a nostalgic mission, as the design is based on the original alien base assault from X-COM! Most of the gear is standard, though you may have access to the flamethrower as well, which will come in handy if the chryssalids get some of your guys.

Check out some maps generated by Draxis' mod:




I played several games, and in the last was on track to win without losing a single soldier, if not for my own Wolfgang's stupidity. Just before taking the command center the squad used a stolen small launcher to fire back into the darkness from where we were taking heavy fire; advancing forward we found a pile of unconscious snakemen bodies, yay! After everyone passed that spot, Wolfgang decided to do away with the bodies before moving on (didn't want to risk any of them coming to, nor waste time picking up all their weapons). Prime alien grenade for immediate detonation... forget to leave enough time to get around the corner... ka-boom, Wolfgang joins the pile of snakemen bodies.

Get your own copy from the files page!
3 comments more...

Great Leap Sideways

by Kyzrati on 20121117 , under

So... according to the Roadmap I should be working on testing out more facets of the sound support right now.

I'm not.

There are several invisible/unannounced priorities that are injecting themselves into that list, many of them internal changes, the benefits of which may or may not be immediately apparent (to you--I know perfectly well what I'm doing. We hope ;p).

While it seems things have been pretty quiet on my front, it's not for lack of progress, as I've been working on Secret Project No. 47. To put it in non-secret terms, I'm expanding the capabilities of the existing game systems for both better modding potential and more interesting features aimed at the future of X@COM.

Adding official (albeit partial) modding support in R8 turned out to be a wonderful idea, because it'll ensure that at its very core the game supports elements that are both useful and desirable, and that support is built in from the start.

After all, X-COM is not the "goal" of this project; it's merely a starting point. Already we've seen the addition of many elements you won't find in the original, even though for a long time now I've restrained myself from straying too far beyond abstracted recreations of the original mechanics, as I didn't want to get bogged down by the dreaded Feature Creep many epic projects tend to face. (In case you weren't aware, X@COM will be epic, just like you know you want it.)

With the completion of battlescape mechanics in R8, before going much further (i.e., pushing forward with sound and interface development) I'd like to build a stronger foundation for what's to come. Converting armor from a static part of a unit equipped before battle to an item potentially swappable in the field (see earlier post) is representative of the kind of work I'm doing now.

That said, I'm not blindly coding new features here--exploring the possibilities and limits of the game is best done with a usable (and preferably enjoyable) testbed.

Thus I'm guided by design.

Because I'm working on a mod.

Yes, I'm modding my own game :)

It's a rather radical diversion from X-COM, but "diversion" only in the content sense, certainly not the progress sense, as this is indeed expanding the game in some very useful and desirable ways. Project 47 is going to make Cataclysm look like the uneventful sandbox testing map.

There's still much to do because I keep sidetracking myself by coding new features (RL, the non-roguelike variety, is also conspiring to slow me down), but in the meantime, at least one or two more third-party mods will hopefully be ready for you to play around with while you wait for R8.3. And thanks to all current and future modders, who are also helping guide this process by showing me what they want to be able to do, which may or may not yet be available.


I suppose this is really only one part of the Leap, and it's more of a series of skips (but skipping is decidedly non-manly, so we're Leaping), since after this there'll be more intermediary issues I want to tackle before branching off into new areas, but I'll post about those another time.
2 comments more...

Mod: "Aggression"

by Kyzrati on 20121031 , under

And we have our first total conversion by Andrew Sundberg! (maker of Cataclysm+)

Take control of a party of orcish raiders as they put the smack down on a human town, or die trying. The party is led by the warlord himself, supported by grunts, archers, a varg, and the oh-so-deadly Elder. Face off against guards, adventurers, mounted knights, mages, monks and more. And don't forget to slay some peasants!

Here is my gang of orcs after having cut a bloody path through the town, now preparing to break into the graveyard crypt to find out what's in those sarcophagi: 


And here were the results of my last test run (I didn't even use my fuming vials!):
Not quite as good as my first run using an earlier version, but Aggression got a bit more difficult since then :)

So go get some Aggression on the files page, and if you'd like to discuss it feel free to join us on Bay 12 or the X@COM modding forum.

This mod wasn't too long in the making--most dev time was consumed by tweaking and balancing, then it sat around in the incubator forum while playtesters gave it a spin (and I've been waiting to upload it since the primary server is down). Expect even greater work from Andrew and other modders in the future!

Note: The primary server is still down, so the site looks a bit weird without its proper fonts and images, including the background image... Downloads are fine though, since I've set up a mirror.
8 comments more...

R8, Now with Extra 0.1

by Kyzrati on 20121023 , under

R8 just got a little update, mostly just bugfixes for new features the modders are using, along with a slew of internal tweaks to help them improve existing mods and bring you even better ones.

Of course there is one big change for players: Armor is now an item that can be removed, as described in the previous post. Ctrl-r is the key to both equip and remove armor, which requires two free hands. These actions can also be performed by mouse through the inventory screen. Most of the regular armors are not removable, but for now it'll at least be of some help in Cataclysm since you can pick up bulletproof vests and the like off dead policemen and unique units.

You'll need to grab the new version to play future mod releases, and I updated Cataclysm+ to v3--it's now compatible with 8.1.
5 comments more...

Flying Suit or Crystal Plate?

by Kyzrati on 20121018 , under

Lately I've been reviewing my plan to make mid-mission armor swaps a reality for X@COM, and thought I'd throw my ideas out there to see if any of you have any opinions/suggestions.
I originally didn't bother with this feature since I was trying to keep everything fairly simple and focused on the tactics, so armor currently isn't even represented as an instantiated object in the game. Now I'd like to turn armor into an actual item, mostly intended for mods and special uses, since in a standard X-COM mission your soldiers would obviously be suited up beforehand and are unlikely to have time or reason to swap out while on the ground.

First of all, switching armor shouldn't be as trivial as firing a weapon or sprinting some distance, so it should have a fairly high cost, perhaps 100% TU to remove and another 100% TU to equip, striking a balance between so quick it's unrealistic/too easy and so slow it's annoying/wasteful (the costs are of course adjustable, or even vary by armor type, though probably only in special cases).

For this I'm proposing the addition of "multi-turn actions." Based on this concept, the cost of removal/equipping can be split across more than one turn, thus you can start taking your armor off this turn with your remaining 43% TU, then next turn start with 57% less TU, deducted as the remainder of the previous turn's removal action. This would lessen the impact of the action on a single turn, and not require that you do absolutely nothing else for a given turn in order to complete the action (which could waste a lot of extra TU the turn before). Some special actions added later could also take advantage of the multi-turn system, like hacking an alien computer terminal, which could be set to take 200%, 300%, or whatever makes sense.

The biggest issue with swappable armor is unit representation. Right now armor changes a unit's color, which has worked fine since X-COM soldiers are traditionally the only units with non-racial armor, and a few color shades are enough to effectively convey the difference while still knowing who's in your squad. As alternate armors become more widespread, colors are no longer sufficient to show armors without making the map somewhat more difficult to decipher at a glance, not to mention we'll soon run out of colors. (Even without armor swapping this would become an issue eventually, because I'm not going to stick with the meager three armor types of the original, and many more types of enemies could have armor since there are going to be quite a few possible human factions out there.)

Here in the first two rows are the original unit glyphs, followed by a semi-hollowed test for an armored unit. The third is the less-than-satisfactory result of thinking that an "armored" unit should perhaps have "more" color than an unarmored one, so I thought of switching unarmored units to have a slightly faded outline, and the current full-color glyph represents an armored unit.
It may be difficult to tell whether some of these will work in the game, even more so because they're not colored here, but the glyphs are easy to swap, so we can look at some screenshots later. Should also look into other alternatives. Suggestions?

Another issue is inventory items. Remember (or maybe you didn't know) that armor also provides your non-racial inventory slots; e.g., humans have L/R hand slots, but the rest of their slots come from armor. Equipping new armor would mean you'd have to drop all your items (this could be done automatically for sanity's sake), then pick them all up again and put them in whatever slots your new armor provides. I don't think this is too much of an issue since someone loaded down like that is unlikely to swap armor, plus armor swapping is mostly for mod use, anyway--I envision a character starting with no armor and finding some only later.

This could lead to some interesting gameplay, especially since armor can now provide you with special abilities, so you could equip an exoskeleton that enables you to bash through walls, for example, or a medic suit that comes with a built-in medi-kit, or even armor that automatically heals the wearer. Hell, why not a battlesuit that allows you to chain fire rockets! Okay, getting a bit carried away there... lots of possibilities, anything you can do through the special ability system, really.

EDIT: Nearing the end of my to-do list for the armor-item conversion, and just dropped in some new unit glyphs to test them out in the sandbox (perhaps more appropriately called the grassbox in X@COM):
I like A, the relatively unobtrusive design submitted Shirson. I think I like it better than the more uniform triangle of B. C, the hollow/outline design shown earlier looks pretty cool, but isn't quite appropriate to represent armor. The angular triangles of D/E look too much like L's when diagonal, so they don't work well at all. F, one of the original ideas mentioned, just looks weird. For now I'm probably going to stick with A.
15 comments more...

R8: "You Added What?!"

by Kyzrati on 20121013 , under

Recently on Bay 12 we've been talking about making X@COM more accessible to modding, and that's what R8 is all about. The game data has always been pretty moddable since it's stored in text files, but changing the data wouldn't be as much fun without the ability to create your own scenario to go along with it!

Since internally R7's Cataclysm was written using a very modular, data-based system (I love data-based design in general--probably fairly obvious by now), making the entire thing moddable only took a couple days of extracting that part of the code into text scripts, followed by extending the system so you can do plenty of things that weren't even seen in Cataclysm. So now you can use the text files to change/improve/expand Cataclysm, or go even further and do a total conversion.

There are 4 main files to edit when creating a scenario, one listing the areas and their properties, another drawing the blueprints for each area, a third for spawning objects, and the last for defining the scenario's rules and other settings. Here is an example of the settings file where you can change victory conditions, mission scoring, and general properties:
This file includes explanatory comments for data entries--the others are instead explained in much greater detail in the modding guide.

To make a mod you'll definitely want a copy of X@COM Modpack M1, which you can get by joining the new X@COM Forum (for modders and mod players only right now--it'll be expanded later). The Modpack comes with some helpful tools to make your modding experience a lot more pleasant. You'll get...
  • a 20-page guide (required reading!)
  • a palette key
  • my version of Notepad++ with syntax highlighting for X@COM script files (*.xt)
  • a fixed-width font you may want to use with NP++

If you're feeling bold and creative, you can do much more than simply modify Cataclysm. You can add new races, units, items, terrain and other objects to create a turn-based strategy game with entirely different content. On the more complex (but fun) side, you can even implement your own special abilities that enable the type of very dynamic environment seen in Cataclysm. Learn from the hundreds of examples included with the game. Here's the entire implementation of *all* the original abilities seen in X-COM, with syntax highlighting:
Click to see full script (server on which these were stored died)

And here are the lines which control the spread of the virus in Cataclysm:
Click to see full script (server on which these were stored died)

But you don't have to mess with all that stuff if you don't want to--you can create your own mission using only the scenario files and all the objects I've already created for previous scenarios.

Of course it's nice if others can play what you create, so beginning with R8, X@COM can now run mods which are simply dropped into the game directory.

Debesh Unnos (Crazy Cow) has already created the very first mod for X@COM which adds some new potential buildings/encounters to your Cataclysm town, among other changes. His mod is the beginning of what we'll call "Cataclysm+". If anyone wants to just add one new building or make a few simple additions to Cataclysm, something not necessarily worth a standalone mod, send them to me and I'll merge them with Debesh's mod to expand the scenario and give everyone a chance to see any of the extra content in their towns. Check the files page for currently available mods.

Other more ambitious mods (total conversions) are already in the works, so you'll still get some fun new stuff to play with while I work on improving the game in general.

Though modding support is the main feature of R8, it does still come with other goodies a proper release deserves.

There is of course the psi-amp, covered in my previous post. As described there, X@COM also supports intrinsic abilities, though you won't yet find any in the game.

You can now seed the map/mission generator, so you can share a particularly interesting map with other players, or play the same map multiple times without relying on a saved game. The seed for a given map is found in your mission results/score file, and can be set in "data/maps/_seed.xt".

I've added a swap hands command ('w') available as a free action (0 TU) to switch the contents of a unit's left and right hands.

R8 makes some significant changes to how doors and windows work by turning them from terrain into props (I hope I've made all the necessary adjustments--it required a rather sweeping refactoring effort). That windows are now props is an issue even for gameplay because it means you can now stand in a space previously occupied by a window, i.e. much closer to the edge, and get a better view. Sadly, this also means you'll have to hit someone twice to knock them out of a window (unless/until I enable melee knockbacks greater than one space), whereas they used to crash through the window and immediately slip off the edge.

Units are allowed to throw directly to ally positions. You could always throw at *enemies*, which is great for grenades, but the game was disallowing tosses to allies because it assumed you were trying to do something bad by throwing stuff at them =p. It's now much easier to pass around weapons and gear when you need to--in my own experience this need arises quite often in Cataclysm, so I finally fixed it.

Over the past couple weeks I noticed some things amiss in Cataclysm, or parts that could be quickly improved, so I tweaked the scripts a bit more. I don't have a list of all the changes, but among them:
  • You are guaranteed at least one homemade flamethrower in the survivalist's house. I thought I had done that originally but apparently not, and it pissed me off when I got there and searched the house only to find a bunch of ammo!
  • Suicide bombers no longer detonate on the dogs which roam the town--they're not THAT stupid...
  • Allied criminals freed from the police station will find themselves weapons if you don't give them any.
As an amusing side note, just before release I also had to fix a regression where the police started attacking me... It was rather amusing to be shot dead as I sought refuge in the police station, because the police suddenly thought they were terrorists (literally) of all things, heh.

17 comments more...

Psi-ched Up

by Kyzrati on 20121006 , under ,


It's national Adopt an Alien Pet Day!

The psi-amp is ready. I.e., you'll now be able to mind control aliens if you're good enough. The AI will not yet use the the psi-amp on you, as it would be incredibly unfair given your limited resources in the demo missions. I did, however, throw in a psi-amp... "somewhere" in Area 51 and Cataclysm. Of course, it wouldn't be much use without some skill, and there's no base for training yet, so all your units start with a random psi-skill of 2.5~5.0x their base value.




As planned, the psi-amp fit right into the special abilities system, which just needed a menu to enable selection from multiple abilities on the same object, as seen above, though the system is capable of handling much, much more than that. For example:


Yes, those are actual scripted abilities I was playing with to test the system, and they do exactly what they look like they do. (Adding each one only takes a single line of script that sets about ten variables.) So now the engine does intrinsic abilities, and X-COM agents could theoretically one day be learning all manner of psionic skills like firestarting, telekinesis, teleportation, unaided mind control, and MIND BULLETS! Well, whatever you can think of, really.

With the psi-amp done, where mechanics are concerned the X@COM battlescape is now capable of everything seen in the original! (Not to mention all the other features I've added.)

I decided against releasing another R7 update and instead pushed the previously mentioned modding features back to a modest R8, which is on the horizon and closing fast.
6 comments more...

Cataclysm Postmortem*

by Kyzrati on 20120925 , under

*so-called because you've played Cataclysm and are now dead :)

I've done a few stealth releases in the past several days, mostly little fixes and tweaks to the scenario, so we're actually up to R7.3 now. Here's a rundown of what changed in Cataclysm:
  • Unarmed civilians will also take weapons you offer them (originally only armed civilians would swap for better)
  • Second evac zone always different from the first
  • Police now talk, and eventually receive orders to leave their station and do what they can to help civilians evacuate
  • Suicide bomber detonation text uses proper actor (bomber detonates, not their intended target...)
  • Mission results correctly shows number of scrolls read
  • Fixed actor reference for one of Rev. Jones' lines
  • Fixed a few typos
There were a few other gameplay issues I found, which you can read about in the changelog. (The updates do fix a pair of pretty serious bugs, so if you're still playing R7, I highly suggest making sure you have the latest version.)

For those of you only following the project and not actually playing yet, I've uploaded a new video showing a quick overview of the new and old game elements. As usual, YouTube manages to ruin the clarity with overzealous mp4 compression, so HD + fullscreen are essential (and even then the quality leaves much to be desired).



In addition to the tips provided on release, here are some more hints and strategies to help you survive long enough to evacuate:
  • Some items may have unexpectedly useful melee attacks.
  • Alien enemies are spawned entirely from the necromass, and both it and all of the spawned units except for one are weak against fire. They're also very slow. If you can get your hands on some "fire"-power (there are several sources), you'll be nigh invincible... until your ammo runs dry.
  • If you see a growing Necrospore Shell or Bulge and have something with which to destroy it, by all means do so immediately, because what it hatches will no doubt be a fairly big problem.
  • Avoid wading through the necrospores--it slows you down.
  • If you can manage to persuade the drug dealer to give you some cocaine (guns being the best form of persuasion), it works pretty well on zombies...
  • If you can get hold of a bible, they have a chance of smiting zombies when you whack them over the head.
  • You should of course immediately gather your family first--they'll be your first rescues, and they all have rudimentary armament, which is better than what you've got, so they can at least shield you if absolutely necessary.
  • Always always grab the sledgehammer in the garage. It's your primary weapon until you can find something in another house/building. Also make sure it goes to your strongest soldier--strength = damage for the sledgehammer. Notice you have two rookies and two sergeants--the latter are generally going to be stronger, and better at just about everything else, too.
  • House garages always contain one common household tool that doubles as a weapon.
  • Remove guns from cases and swords from stands using the undocumented manipulate ('n') command. (They're quite uncommon, but you may find one.)
  • If you see a chryssalid, RUN. The only way you can hope to defeat one is with some fairly heavy explosives. Conventional arms aren't effective enough since chryssalids have thick armor and can close on you way too quickly.
  • If you spot some useful assets, don't think "Oh, I'll just go around this other building then circle back and get them", IMMEDIATELY go straight for them. Things change fast, and there a lot of unknowns. There may be no later, so if you really them now...
  • Food and drink are good for restoring stamina, which you may run low on if you run around a lot (which you probably will)--drinking an espresso and continuing your sprint is better than having to take a breather and wait for those zombies to catch up to you!
  • Flares can be useful later on when the power starts failing and street lights start flickering off. Even worse than fighting a horde of zombies is fighting a horde of zombies in the dark where you can't see them until they're almost on your position. Remember to light (use) the flares before throwing them! (These are standard flares, not the X-COM electro-flare variety).

A few screenshots from Cataclysm runs:

Here I've herded herded my civilians together for a final push through the zombies--the necromass decided to spread all over the evacuation zone to the west... This is right before I discover that unarmed civilians won't take weapons you want to give them (fixed in R7.3)... Fortunately the good reverend hooked us up with molotovs and I had found a shotgun elsewhere. (You can actually see a bit of this exact scene in the video.)

Seeking refuge by the church altar while Rev. Jones does his thing.
No one gets into this church without permission from his shotgun!

A scene I captured while checking on the game as it ran on autopilot just before R7 release.
Man are they screwed.

Field Reports

In the past few days, players on Bay 12 have been sharing some of their experiences as they try to escape the alien-induced apocalypse. Read about their exploits here (post order):

Draxis: "My team was leading a large group of civilians out of a zombie-infested area, when a zombie runs up and attacks my lead man. He smashes down the zombie with a sledgehammer, but an alien emerges from the corpse and strikes him down. He drops the unstable compound he is carrying, and it explodes, wiping out my whole team. This causes the similar compounds carried by the rest of my team--we got them out of an abandoned laboratory, and were using them as grenades--to explode as well, killing most of the civilians following us and leveling a block and a half."

Lesson: Spread out when carrying dangerous chemicals.

Crazy Cow: "I explore the city, finding nothing but a Starbucks until I come across a drughouse in the corner. The gang is dead, but it's filled with cocaine and Glocks. I set up shop waiting for the order to evac, and decide to try one of these cocaine blocks. Toshio Tanida promptly eats the entire block and falls into a coma. *facedesk*"

Lesson: Don't try cocaine while fleeing from zombies. Having a medi-kit handy might make it okay, though ;)

Orb: "I had a grenadier with unstable compounds ready to give fiery death to the necrospores. However, Doctor Faust thought it was a great idea to shoot him instead of the zombie, and proceed to have him, the Zombies, Doctor Faust + Pet, and the laboratory destroyed. Thankfully, the other two members of my team were elsewhere (1st death was due to throwing an unstable compound instead of an Anti-Necro 'nade at close range...never making that mistake again.)."

Lesson: Doctor Faust is a bad shot (he really is).

1freeman: "Just had my first 'successful' run on cataclysm, I managed to find the good doctor's lab early on which allowed me to stock up on unstable compounds and a pair of useful companions. I made my way to the northwestern quadrant and found a certain pick-wielding civilian who also joined me, then the good doctor got a little trigger happy and shot one of my guys with the explosives who died and set off a chain reaction killing another agent and most of the civvies including little Timmy and the doctor himself. The survivors then grabbed the doctor's gun and the sledgehammer, the only weapons I had left. I desperately fought off the zombie horde and just when all hope was lost I received a message from HQ informing me of the new evac zone which miraculously was nearby. Then a crystallid pops out of a zombie like a demonic jack-in-the-box, and kills the guy with the gun. I send my last agent to sprint to the evac site, leaving most of the civilians behind and with my points in the negative but hey I survived the !!FUN!! and came out a victor."

Lesson: Death and destruction is enjoyable, even when it's your own squad.

Crazy Cow: "I sat myself in the police station, used my sledgehammer to knock out the floor tiles around the stairs, blew out the far wall, and shot as many zombies as I could. After a while my limited ammunition ran out, and I sat around lobbing unstable compounds at the necrospores if they came close enough. An unnatural shriek pierces the air, and I don't give a fuck because chryssalids can't fly. The bugger paths up to me, which I found strange, so I just stared at it for a bit. Then... the chryssalid tears through the shelves lining the wall and attacks my weaponless soldiers, killing two and zombifying one before my turn rolls around. >_>"

Lesson: Don't challenge a chryssalid to staring contest. It will tear through the shelves and kill you all ;)

kingfisher1112: "A necro lord fucked up my shit, and a homeless guy killed it. Also, 'Package arriving in 5 minutes'? Is it weapons/supplies?" [he was posting while playing--this point was laugh-inducing for anyone in the know] "So. I played again. I played and I got some pretty good weapons. Rescued some civvies. Then A MOTHERFUCKING NUKE LANDED WHY ISN'T THIS IN REGULAR XCOM?"

Lesson: X@COM just gets more and more fun.

Kyzrati (while playtesting): "Down to one man, obliteration by tactical nuke imminent, I'll just hide in this house here... Miraculously SURVIVE the nuke (it happens) while pretty much everything around me is leveled (the toilet from nearby remains!). 'Wow, this is great, now I can walk around the level and see what's going on *after* the nuke!' Apparently I wasn't the only one to survive: Ten steps later a gang member walks out of the smoke at almost point blank range and shoots me dead with his pistol..."

Lesson: Murphy's law of X@COM: If you survive the nuke, it must be because you deserve some other ironic death.

Kyzrati (still playtesting): "Looking into the drug dealer's house from afar I see that everyone on the first floor is already dead. Must've been hit by a wave of zombies. Guess I'll just go pick up some free weapons. Sure enough, the first floor is littered with corpses both human and undead, and GUNS, yay! So I grab a nice pistol for myself by the stairs. Hm, should check upstairs and see if anyone's left... Ah ha, one last gang member looking out the window with his back to me. Well, I'll just shoot... *click*. DAMNIT, the pistol I grabbed is out of ammo. (That must've been some firefight downstairs.) Oh well, I'll just whack him in the back of the head with my pistol then! Sneak up behind him... *wham*, he takes the blow but doesn't go down, instead spinning around to shoot my guy in the face with reaction fire... [Several minutes later another unarmed soldier dodges into that same house, fleeing a group of zombies.] Nowhere to hide from all these zombies but upstairs... He heads up stairs to find there's already a zombie up there facing off with that same gang member. He has plenty of time and is standing behind the zombie, but decides to wait and hope that dude gets mauled. Unfortunately he blows the zombie away with his pistol. My turn. Walk up and pick up the sledgehammer my earlier friend dropped from his backpack. *WHAM* The hit doesn't kill him, but knocks him right out the window he was standing in front of... right into the middle of the zombies that had chased me up to the house earlier."

Lesson: Revenge is sweet.

That's enough fun for one post. The next one will be about modding X@COM. I've also updated the FAQ with a new section that addresses some questions which have come up multiple times in the past months.

2 comments more...

R7: "Chryssalids in my Backyard"

by Kyzrati on 20120916 , under

The zombie apocalypse is coming to a small town near you! Brought to you by... chryssalids!

It's a zombocalypse, X-COM style! Now don't get too scared. I wouldn't make you face an army of chryssalids--that would just be a massacre and not much fun at all.

I present to you R7 along with the grandest scenario yet: Cataclysm. (Yes, it's named after the cool zombie apocalypse survival roguelike which you can find here.)

A virus of alien origin suddenly descends on a town where a small group of X-COM operatives happen to be enjoying some R&R. It's time to show those aliens what off-duty X-COM soldiers can really do! WE'RE GONNA... wait a minute... we're off duty... we don't have any weapons... or armor... or anything except our wits and a sledgehammer in the garage. ****.

As you can see, this scenario is very non-traditional in design. It's all about survival, and *if* you get confident enough that you'll be able to save yourselves, you may even lend a helping hand to your neighbors, who are otherwise soon to be alien food.

Before my brother even started playtesting yesterday, he pre-announced his strategy: "I'll just kill all the civilians I see to prevent the zombies from spreading." How noble of him :) But smart. After all, you know what happens when there's even one chryssalid loose among civilian meatbags. But chryssalids are only one part of the problem, as you'll see. There is actually more than one kind of zombie out there, and only those that were created by chryssalid injection will contain eggs to hatch new chryssalids. Most zombies come from... other sources. You'll see.

Besides, you can even use civilians to your advantage (other than scoring points for rescuing them): Hold a weapon in your *left* hand and stand adjacent to them--if they think it's better than whatever they're carrying (some carry common household items as weapons), they'll take it from you at the beginning of their next turn. Be careful what you give them though, since their accuracy is even more terrible than the worst rookie, which can mean collateral casualties. In most cases it may be a better idea to just arm them with a better melee weapon rather than giving them a gun. The results of handing them a rocket launcher would no doubt be catastrophic (civilian apocalypse? :). I added this feature as an afterthought just yesterday because it only took a few minutes and sounds like fun ;) Arm your neighbors and create your own militia!

Aside from regular civilians, you may also come across any number of different NPCs. (Not all of them are friendly, mind you.) So there are lots of potential allies out there, but don't rely on the NPCs too much or expect the AI to be very smart. X@COM is still running on the same simple placeholder AI thrown together for the *last* ARRP. I've tweaked it a bit so your allies aren't complete morons and will at least stick close to you and fight only when necessary or convenient. To recruit someone, just walk up to them; if they want to join/follow you, they'll say something to that effect. (I haven't yet added the triggers necessary to have them join you on sight or some other way, so I used what I had on hand--an adjacency check script trigger.) Be careful of trying to hide in tight quarters with a bunch of friends, because they can block you in--unless you stick to the open areas, you'll have to effectively "herd" your civilians by blocking doorways; moving quickly also works, as does crashing through windows and going out back doors--most areas have quite a few access points, just don't try to visit the bathroom with all your buddies in tow ;). Also, because it can be difficult to keep track of your friends without constantly looking around to see where they are or if they're actually following you, I added a temporary command 'C' for highlighting your followers, even when outside your FOV (this also simulates the fact that you should know where they are by sound, anyway).

All this talk about the icing on the cake, and I haven't even gotten to the cake yet: Cataclysm takes place in a completely randomized town. Moreover, it features over three times as many terrain pieces as Exodus, so there's a lot of variety, and of course the huge amount of replayability that comes with it. Naturally not every structure can appear in every town, and even some that do will be destroyed by the... um... you'll see when you find them. So each time you play you may gain access to resources and allies you didn't have before (and vice versa). You could easily play a dozen different games and still not see everything. Here's a sample town:



As much as I want to describe all the fun stuff out there, I don't want to reveal too many details just yet. I'll let you play and be surprised. Find cool stuff. Kill enemies. Die. Etc. I may post some spoilers and more details later on once everyone's had their chance to explore the town.

You'll need to use everything at your disposal to survive and come up with a good strategy if you're going to survive and/or score well. Here are some essentials:
  • There are only four soldiers at the house, and relatively inexperienced ones at that; they also only have standard coverall armor--so they're pretty squishy.
  • The previously neglected 'u'se command is now more useful. All generic items currently represented by '&' have a special use. So use them. Well, you should probably first consider what may happen as a result =p Many are simply flavor items, but some can be pretty useful. This is how you use things like food, bandages, medi-kits etc.
  • Remember to turn on "smashing" ('h') if/when you want to crash through a window as an alternate entrance/exit (you may even consider doing this from the second floor of a house, rather than face what you know is downstairs :)). If you gain an insane amount of strength (somehow...), you could very well push through walls this way (though be wary of knocking walls and debris on yourself!).
  • Melee attacks ('m') are now much more important since you don't start with any guns. Hopefully for your sake you can acquire some real firepower quickly; there are a few fairly good melee weapons to be found, but it's obviously preferable to stay outside melee range of zombies. I've also somewhat lifted the original restriction on melee damage affecting terrain, so with enough strength and/or a good enough weapon you can bash through objects (ex: a sledgehammer should work fairly well on a locked door), useful for quick escapes or gaining access to new areas.

Another thing I do have to mention up front is a special little place you'll almost certainly come across, as it's the only structure besides the X-COM house which is generated on every map: Kyzrati's Curiosities. This aptly named little antique shop is stocked with a random selection of toys to play with. While many of them don't really belong in an X-COM game, most are nonetheless lots of fun--just me playing around with the script files doing weird things... Some are prototype next-gen X-COM tech which you may see in future games; some are not-so-subtle references to other roguelikes; many are fantasy-oriented. You may get lucky and find something that could increase your chances of survival, or completely doom everyone. It's a small place, and you can ignore it if not interested and would rather focus your attention on the zombocalypse. If you are interested, note that Kyzrati's will tend to carry a very different set of items each time it's generated, so visit often :)

Have some more randomly generated towns:

Despite all the content, there are several things that didn't quite make it in, but I may add them gradually as I test other features in the future and release an updated version of this scenario. I'm also considering opening up this scenario to modding, making it possible to randomly insert new structures and define what kinds of items/NPCs you want in them. (Of course you can already create new items and NPCs.) I'll see if I have the time, and if there are *multiple* people REALLY interested in having a serious go at modding, even though right now it's a bit of a pain (compared to how much easier it'll be later) and the mods wouldn't at all be futureproof. The primary purpose would be to extend the life/interest of the demo, because Cataclysm could very well be the last new scenario before I scrap the whole demo map system and put in the real one, and there will be a bit of a wait in the interim.

Moving beyond Cataclysm, let's look at what general new gameplay, mechanics, and interface features R7 comes with:

Obviously you've got your chryssailds, zombies, and silacoids as described in an earlier post.

There are the medi-kit, motion scanner, and mind probe, which I've covered before (here, here, and here). These are all activated with the 'u'se command.

While I don't like to hack together temporary incomplete features, the HUD now features a mini log. The true HUD, waiting on the sidelines until the big UI overhaul, will of course feature such a log as well, but it will be scrollable and properly animated. For now the huge number of crazy things that can happen, plus NPC speech etc., necessitated an easy way to read about them as they happen without opening the full log window every time. [Note: While playtesting, I once encountered a strange case where the mini log started writing messages where you can't see them. (Well, it was a hack to begin with...) If you do happen to run across this, it can be easily fixed by just saving and loading (F8 then F9), which reloads the log. Only ever saw it once, though...]

I also removed the extraneous unit stats from the HUD, both to make room for the mini log, and because you can now access them through the new stats window ('c' for "character", or '@'), which was added along with the mind probe.

Similar to the 'u'se action, there is another new action called manipulate ('n') which enables units to use terrain objects and other units for effects unique to / determined by the target (e.g., open furniture, activate computer terminals, remove spare ammo from a mobile storage unit, and so on). Although already processed by the game and accessible to modding through script triggers, I chose to de-emphasize this feature in Cataclysm's design mostly for lack of time. (This action is not even documented on the commands list for now.) I was going to exclude it entirely, then just today for the heck of it threw in a couple manipulable pieces of furniture: So if you happen across a gun case or sword stand, face it and press 'n' for a present. Consider it a reward for making it this far down this sheer cliff of text ;)

Morale mechanics have also been implemented. After all, what good is a frightening scenario if your troops aren't afraid of anything? Gone are the nerves of steel you took for granted in earlier releases! That said, seeing as you only have four soldiers in this scenario it's unlikely morale will matter much since you don't have many soldiers to lose anyway. Regarding morale, I wrote about the details a loooong time ago. Civilians are not currently affected by morale--their stupidity is a big enough disadvantage as it is. I'll gladly add in civilian morale penalties once maniacal charging melee berserk attacks are possible, but those aren't in yet, so you'll just have to wait if you want to see a civilian lose it and run straight at an alien to pummel it in the face with a frying pan :)

Speaking of morale, check out these rather amusing log lines I happened to see while the game was playing itself over the past couple days for testing:
(Also note that Donald was sitting on the toilet at the time :)

As with most releases, some of the new content has been retroactively inserted into old scenarios, so if you replay them you'll now have access to medi-kits, motion scanners, and the new canon aliens (so they're now *all* in there). Of course, you'll now also have to deal with morale in those missions as well, so do try to shoot more than get shot =p (Note: If you want to play without the drawbacks of morale failure, add the "-noPanic" command line switch when you run the game to ignore morale effects.)

You'll notice there is now a rudimentary help system. It's not really all that helpful yet, but the framework is there, so it's a start. Each window now also has its own command list, accessible either by keyboard or mouse (through the little '?' near the bottom right corner). Windows also have a button to close them by mouse, if you insist...

Melee attacks are now allowed to hit units on different z-levels. In fact, there was a problem preventing huge units like the colossus from even attacking targets... some fearful monster THAT was. I was wondering why it never seemed to be much of a threat despite its size, but I figured walking through walls and trashing the Area 51 base was good enough. Since melee attacks play a larger role in the new scenario, I spent a little more time with them and noticed the issue. If you go back to Area 51, beware the bite of the Colossus! (Same with the Mega Reaper in the default ARRP scenario, I believe.)

Check the change log for the full list of mods and fixes.

Overall, R7 comes with a large number of additions, but as fun as it is, in my opinion it's approaching "the more it includes, the more it leaves to desire" territory. This release was more about a mad sprint to increase depth, and it definitely succeeds at that, but a lot of it now needs fleshed out with more breadth then polished. The next several releases will be headed in that direction (sideways).

By the way, for those that don't know, this release is a part of ARRP 2012, which makes it a kind of anniversary for X@COM--the first pre-alpha tech demo was released for ARRP exactly one year ago. Things have come quite a ways since then, yet there's still so much more to do. Mechanics-wise, the battlescape is almost feature complete compared to the original. We're only missing the psi-amp now, and beyond that I have a backlog of improvements to implement before doing some serious work on the overall UI to make it truly awesome (in theory, anyway).

Under the hood, R7 also comes with a more powerful error recording system which records exactly what the program was doing even on a hard crash (beautiful line numbers, baby!), giving me one more tool to use to track down bugs remotely. But that's only if you send me the data! The crash data will be appended to the end of the run.log file, so if your game crashes and you want to help prevent the same problem from happening again, please e-mail me that file. (Be sure to make the copy *before* starting up the game again, since subsequent runs will replace the old file.) Better error data is something I've wanted to do for a while, but kept putting off since a good solution was tough to find and it wasn't absolutely necessary yet. Now it's going to be essential since the special abilities system can theoretically cause all sorts of mayhem (read: bugs) through emergent effects.

Unfortunately, this is the slowest version yet. There are several parts of the UI architecture awaiting optimization, and I know specifically what parts will be changed and how--just haven't gotten around to it. So if you don't have a fairly fast CPU, you may notice some slowdown and/or UI artifacts (possibly many). Press F5 to check your FPS (appears in title bar while windowed)--if you're not consistently getting at least 50+ (especially while opening a sub-window), your CPU is too slow to run a flawless game. It'll definitely still be playable, but your UI will likely look funny. I should get around to optimization soon.


Technical/Modding Addendum:

ALL of the neat special behaviors and interactivity with objects you see in this scenario are scripted through the new Special Abilities system (specialabilities.xt)--not a single bit is hard coded. If you look at the file you'll see I also left in many of the original test abilities I was using just to make sure the triggers and effects work as intended, though still others are not listed. (Warning: Looking at that file will likely spoil a good bit of the fun and surprises.) In previous scenarios I was forced to hard code any interesting scripted events. Now even though there are lots more interesting things going on around the map, it's all automated through these abilities. Besides adding content to the text files, the only thing I had to actually code for this scenario was the map generation and initial object spawning code, since there's no map editor yet. (The entire map format has yet to be written.)

It's ridiculously easy to add new scripts. A whole new NPC with special behavior(s) and/or weapon can be created in moments: Think of an idea, jot down a few lines in the SA/item/entity files, and *bam*, done. Granted, I'm familiar with the system and know the variables, but it's pretty simply nonetheless--actually, I don't even remember all the variables myself, I just copy and paste everything from another similar scripted object and tweak as necessary. With all the mixing and matching that's possible, even with the incomplete set of triggers/conditions/effects that exist so far, there's a lot of potential for imaginative designs.

Now that you've made it to the bottom of The Great Wall, get out there and kill some zombies! (More realistically, run away until you find something you can use, then kill them...)


"Revelation 11:11: But after the three and a half days a breath of life from God entered them, and they stood on their feet, and terror struck those who saw them." --Rev. Jones (you'll know him when you meet him--look for the shotgun-wielding clergyman handing out molotovs ;) )
17 comments more...

ARRP 2012

by Kyzrati on 20120914 , under


4 comments more...

Playing with Fire

by Kyzrati on 20120831 , under

I've started actually using all this Cool New Stuff added to the game in recent weeks in order to prepare content for the upcoming scenario, and this one was kinda fun (okay, I'll not kid myself here--it's all a ton of fun), so I thought I'd share it with you.

There's now a neat-looking flamethrower ready for the pyromaniacs among you. I originally designed this weapon to be fitted to a special guest you may encounter while playing R7, and thought I may as well create a regular portable/detachable version as well.

"It's dark out. No one will notice me as I approach this building with arson on my mind..."
(No dude, the lights on your standard-issue rookie armor make you stand out pretty well...)


"Eat flames, door!"
(Actually, the door was already open, but for some reason this moronic programmer didn't yet notice that you can't fire through open doorways. Seriously, none of you have tried it yet?)

"Witness my masterpiece!"
 (You're gonna roast alive if you don't leave soon, you know...)


Hint: You can also throw the fuel canisters as makeshift incendiary grenades, or catch them in any explosion to turn the surrounding area into a fiery inferno.

Hm, come to think of it, this was all entirely possible in R6 and uses absolutely none of the new features. Heh. Well, I've already added quite a few things that were *not* possible before, but those shall remain secret for the time being so as not to spoil all the surprises (pl.).

Hopefully you'll be able to get your hands on this neat little toy. If not, you'll always find at least one of the other many toys scattered about the level. Speaking of the level, I have yet to actually make it...

Note: In recent months I've tended towards saving up content for more substantial posts, but hey, I was having fun with this and thought you'd like to see what I'm up to. Now you know: I was busy BURNING PIXELS!
2 comments more...

What's on Your Mind?

by Kyzrati on 20120826 , under ,

The mind probe is now ready for your perusal of brains everywhere!

(click for non-fuzzy version)

Actually, it would be fun (useful, even) to later use this or other similar devices to actually get some insights into what a sentient being is thinking (AI hints, flavor text, etc).



The window is nicely animated, but again I'll save the video for a UI compilation that I'll put out with R7, which is scheduled for ARRP 2012.

Of course the same screen is also used to examine your own unit stats, so the long list of extraneous stats has been removed from the HUD since they can be accessed here:

(click for non-fuzzy version)

I may at some point add the ability to choose a stat and compare its value across all your squad members, if anyone would find that useful. Also, I'd like to limit the mind probe to sentient units only (which could be easily scripted through the text files using the new object traits system combined with effect conditions), but right now it's like the original X-COM: any target goes. A separate device could be designed for analyzing mechanical targets.

You'll notice that I've resurrected the melee stat which was included in the original X-COM code but not actually used in the game. If you weren't following early development or haven't tried the demo yet, you may not know that pretty much *any* item can be used for a melee attack.

The default data I'm using right now (not necessarily balanced properly) has most items with 100% base accuracy (note that by X-COM rules that doesn't mean you always hit) and take 30 TU (unique melee items and terror unit melee attacks are different, of course). It only works if you are adjacent to the enemy, duh. The damage done by the default melee attacks depends on the attacker's strength, though again this can be overridden for special items. I also added some common damage types (bludgeoning/slashing/piercing) that can be used to define melee attacks.

Melee is generally not as deadly as actually shooting a weapon, of course, but it allows for lots of fun new mechanics, like dedicated melee weapons (e.g. knives, light sabres, etc.) and bashing down weak terrain (or even sturdy terrain like walls using a sledge hammer!). Melee attacks can also cause knockback on the target if your strength is greater than theirs, and if your strength is also great enough to smash through whatever is behind the defender, then you'll smash them right through it. So you can, for example, whack an alien with a baseball bat and send him flying out a third-story window so he hopefully falls to his death from impact damage. In fact, if you had superhuman strength, you could theoretically smash aliens right through walls, and if it collapsed part of the structure the debris would even fall on them, which would be pretty funny... Of course, you have to watch out for powerful aliens doing the same things to you.

Now that the mind probe is done, that leaves only one item from the original X-COM yet to be implemented: the psi-amp. The effects are already possible through the current system, all that's missing is a menu to select from a list of usable abilities when an item has more than one. I'll save that for R8, though, since I need to get to adding new items and content for the next scenario.


Warning: Wall of semi-technical text follows.

In other news, a couple days ago I also finally added particle templating! Meta-programming (or in this case "meta-scripting") is incredibly useful for rapid development, enabling easy creation of multiple variations on a concept. In this case, the engine can now read in particle template data from the text files and, while parsing particle definitions, automatically generates all necessary variations of a given particle to meet template specifications.

While quite simple to implement, it becomes a huge time saver during the content design process, making it possible to more easily create multiple particle variations by detaching design from general behavior (i.e., great for lots of different effects with minor changes from a base design). In practice, it's mostly useful for recoloring, but can be used in other creative ways. This got me really excited--doing things like this always seems to tickle my geeky side (perhaps my biggest side).

I'd been thinking about adding this feature for a while, but it hadn't really become necessary yet. However, with the numerous colors you see in the profile window, templates make a lot of sense: What would've taken almost 200 particles to implement ended up taking only 8 (!) with templates.

This reminds me of back when I was rushing to finish Cogmind for 7DRL 2012 and had to quickly recolor a bunch of X@COM particle effects to match the many types of weapons available in Cogmind--lots and lots of copy and paste, which could've been avoided completely had particle templates been ready back then!

So I've also gone back and rewritten other X@COM particle systems to use templates as well--just the blip particles used in the motion scanner were collapsed from their original 42 long lines of particle parameters to 6 long ones and 8 short ones (the latter a tiny chart used in combination with the six template particles to generate a full set); the text typing effect originally required six lines for every new color, but now it's six lines to define the behavior, and one for each additional color! Yay!

Here's the entirety of the script lines needed to animate the typing as it's currently done in the game (the red template chart defines the colors):

Templates also make for better design by allowing you to concentrate on what's different about the particles, instead of wading through endless rows and columns of data looking for those specific little differences.

2 comments more...

Gimme the Drugs

by Kyzrati on 20120819 , under ,

Face it: If you were on the front line against a frightening alien menace, you'd probably prefer to be shot up with chemicals most of the time, too!

The oh-so-indispensable Medi-Kit is ready to patch up and treat your panicking, bleeding and otherwise not-so-happy-to-be-dying-to-WTF-WAS-THAT soldiers. It'll be much better than what you've had to face so far: Seeing critical wounds as more or less an unavoidable doom counter.

I'd like the UI to be a bit more flashy, but for now I'm sticking to a more utilitarian design and simple color scheme so these elements are at least available in game. So this is what you get:


I would have gone for a slightly more visual representation of the target's body, but the interface needs to be compatible with any kind of anatomy that could potentially be created through the dynamic body part system, so critical wounds are just shown through a list of parts. The window is animated and I added a new sound, too, but I'll save the video for a UI compilation once there's more to show.

In related news: The Special Ability Framework is COMPLETE! That pretty much explains where I've disappeared to these past weeks, and I'm sure one day it'll have been worth it--because for now it was definitely overkill for implementing just the standard X-COM content, e.g. chryssalids, silacoids, motion scanners, medi-kits, etc., which all could've been hard-coded in no time.

The framework doesn't yet include absolutely every trigger and effect that might eventually find its way in there, but 41 triggers, 47 conditions, and 30 different effects is already enough to create a mind-boggling amount of Fun Stuff. Some of said Fun Stuff you will see in R7.

As I've described before, it's a very flexible framework that allows modders to mix and match triggers and effects complete with text messages, particle effects, sounds, and of course effects on game objects. In fact, while testing the medi-kit I was able to pretty easily (took less than a minute...) add some extra functions for fun: a "poison" function that instantly kills the patient, and a "zombify" function that mutates the patient into a mindless zombie. The medi-kit interface dynamically builds itself based on what abilities the text files give the medi-kit (or, actually, any item with the "open medi-kit" trigger, since you could technically create other items that have medi-kit-like functionality), so the functions I added appeared as new buttons that I could use to kill or zombify targets... Much more useful functions could be created using the MOD_ENT ("modify entity") effect, which has 19 sub-effects for modifying unit stats on the fly.

Other things I played with to test the system:
  • phase-shifting aliens
  • amorphous aliens that divide in two when shot
  • aliens that emit a deadly toxin which kills any humans who get too close
  • aliens that trigger periodic cyclones which pick up small objects and fling them around (oops, did you throw that grenade over here? hah!)
  • alien gun that shoots out smaller aliens (here, have a facehugger!)
  • controlled teleports
  • items that can transform into other items
  • potion of strength (quaff it, really)
  • staff of destruction (disintegrates everything within a certain radius of target position)
  • a med station that heals user when "manipulated" (<--a new command that allows units to "use" terrain objects--could be used for computer terminals or whatever)
  • (approx. 30 more test abilities...)

Next I'll be working on the mind probe interface (which won't take very long) and a few random other housekeeping tasks before putting the next scenario to code. Actually, before that the HUD needs a temporary mini-log so you don't always have to open the full combat log to see what's going on, since the new ability system means you'll occasionally need more detail about what's going on than what you can see on the map.
1 comments more...

Motion Detected!

by Kyzrati on 20120806 , under

"Nine meters. Seven. Six."
"That can't be! That's inside the room!"


Yes, this will probably happen to you, too.

Actually, the short range of X-COM motion scanners makes it all that much more likely. Of course, with about five seconds of modding you could expand their effect to cover the entire map. Not that you'd want to, but it's *very* easy now that they're a part of the special abilities system, too.

Since returning from vacation I've been pushing forward on that same system, adding yet more triggers and effects, most notably object spawning which means triggers can now create terrain, items, and units. But everything so far is internal stuff that doesn't make for interesting posts with something visual to show for it, so I sidetracked myself in order to bring you a simple implementation of the motion scanner interface.

Motion scanners are nice, and you are definitely going to want one on the new scenario that will come with the next release, but that's all I'll say about that for now...

Check out this video showing the scanner in action as it gets some relatively heavy use in the urban Exodus map: A spotter locates an enemy hiding in a building and his buddy blows through the wall with his gatling laser. Then we put up a smoke screen before moving into an open area, and find another building swarming with aliens and send a rocket through the door...



Now back to chipping away at the trigger/effect list.
2 comments more...

Terminal Obsession

by Kyzrati on 20120701 , under

The special abilities framework is hands down the single most complex and expansive component of the code so far. It wasn't too much trouble to get the framework up and running, but adding all the moving parts that make it useful takes a while because so much can fit in there. The framework can currently process 21 triggers (at least 20 more planned), 11 conditions (dozens more planned), and 11 categories of effects (at least 17 more planned).

I'd be further along by now if not for a hard drive failure that siphoned away many hours of free time as I tried to recover everything. (X@COM is, and always will be, safe--unless all three of my redundant backups are simultaneously abducted by aliens, in which case no promises. If it makes you feel better, though, know that I would try to get them back :)

I'm eager to finish this system and continue chipping away at the R7 feature list, but I'll be disappearing for several weeks now--on the road without any coding time... It'll at least be a good opportunity to organize the design docs, which have become rather bloated with ideas and lists.

Because I needed at least SOME image for this post, here's a shot of the new "terminal" font set which will come with the next release for those commanders who want to give their console a more traditional look. It's only available at 1280x960 or greater, as the font doesn't scale down very well:
The scene above is an automated first turn on the Exodus map as the rescue mission is beset by a pack of shredders that surges out from behind the surrounding buildings under cover of darkness.
2 comments more...

Chryssalids, Zombies, and Silacoids, oh my!

by Kyzrati on 20120618 , under ,

Okay, maybe not the silacoids. Who really cares about them? They're fun and all, but certainly not dangerous.

Chryssalids are of course a completely different story. These bad boys are now out there seeking panicking civilians to zombify. Then there's the zombie spawn out for some fresh soldier meat. You'll be up against the undead hordes in a new scenario planned for the next release (which is still quite a ways off, btw). Bring your Molotovs!

Here are some log excerpts from one of my tests. Louis spots a zombie shambling toward him and uses his quick soldier reflexes to try and mow it down before it can get in close. Unfortunately Igor decides to join in with his rocket launcher and while he does manage to blast the zombie, he also takes out his nearby squadmate in the process. Of course there's now a chryssalid on the lose. Good luck guys.


Then Paul shows up and, apparently having forgotten to prime his alien grenade, uses it instead to bash the chryssalid in the face. Not smart Paul.


You'll make a good zombie, Paul--they don't need brains.

Because we don't want the silacoid to feel lonely, here's a screenshot of the alien terror unit after giving someone a crappy lawn job (terrifying indeed!):


Note that because the silacoid ability is set to deal incendiary damage, as it moves it naturally sets flammable terrain on fire, instead of just burning that area of the ground. I can't recall whether they actually set fire to the ground in the original (I don't think they did), but it would be a simple change in the ability script to turn that off. I rather like it.

Speaking of the ability scripts, here's a shot of the new specialabilities.xt file as it appears in notepad++ (click for full size):

As for modifying the silacoid's abilities as mentioned above, all you'd have to do change the "IN" (incendiary) in the "DMG_TYPE=IN" effect data string to some other kind of damage that wouldn't cause fires, like "PL" (plasma).

The Unstable Compound ability on the list was something I was using to test volatile items. Now if only Paul had smashed the chryssalid with *that* he could've at least gone out like a man! (Volatile items explode pretty easily, including when smashed against something. Oh man this game's gonna be fun once I actually get to designing the content...)

The chryssalid zombify effect was somewhat annoying because it's not supposed to take effect immediately, only on the target's death or once the chryssalid stops attacking it, so it didn't fit very well into the system and ended up requiring a "special case" MUTATE_DELAYED effect. Makes sense from a gameplay perspective, though, since that would mean a group of armored troops would be less likely to fall as quickly to a chryssalid as unarmored troops would (especially since chryssalids zombify their target even if their melee attack *misses*, and the special effect completely disregards the defender's armor!).

About the implementation, I spent a lot of time hesitating over details, trying to design the system so that it's flexible yet not prone to errors and overcomplication, but complex systems have a natural tendency to defy being forced into a simple design...

After days of bouncing back and forth between a smaller and larger scope for the special abilities, I settled on a system somewhere in the middle. In hindsight, there really should've been a lot more planning and testing before putting it to code, but the lack of concrete progress started getting to me after a few days of nothing but brainstorming and taking notes. Besides, no matter how robust it may seem, I'm sure creative modders will be able to break it. I'll just have to resolve to fix issues as they pop up, since I'd probably drive myself insane before managing to account for all the emergent possibilities. The engine does perform a lot of data checks on startup to make sure the abilities don't include any combinations that don't fit internal parameter restrictions, so we can hope the number of problems should be minimal.

Now that it works, I'll continue expanding the number of supported keywords before moving on to special items like the motion scanner. Much later on there will still be some kind of separate map-centric trigger system for terrain- and mission-related scripting; this one was focused on the game's more dynamic objects, especially entities (units).
10 comments more...

Something Special for You

by Kyzrati on 20120609 , under

Just when I thought I'd jump into adding new content, more planning showed that a generic system to implement the chryssalid ability and a few others might as well be expanded into a powerful dynamic system.

Enter "special abilities."

The term is probably not as limited in scope as you might be thinking. Special abilities will enable objects to combine conditional triggers and effects to define unique behavior under the right circumstances, and will probably be applicable to races, entities, armor, items, and/or terrain. They'll make it possible for chryssalids to turn their victims into zombies, zombies to transform into chryssalids on death, silacoids to leaves trails of fire as they move, and many more effects that you didn't see in X-COM. They could enable:
  • An alien that absorbs or eats vegetation or objects it passes over/nearby, possibly regenerating itself as a result
  • An alien that emits smoke
  • An acid beast that corrodes adjacent metallic objects
  • Snakemen that lay eggs which can in turn spawn more snakemen (UFO TTS)
  • Volatile ammunition for some strange alien device that has a small chance of exploding when loaded
  • An alien man-eating plant that chomps on units that pass by it
  • A plant that rapidly grows and spreads over time, perhaps with additional side-effects of its own
  • etc. (<--very inclusive bullet point ;)
Of course some triggers and effects may not be compatible in all cases or with certain objects, but there will be a pretty wide variety of valid combinations, and new additions should be relatively easy once the system is in place (I'd be happy to add more in the future for modding purposes). All of the parameters will be defined in the text files.

Yesterday I started implementing the necessary data objects, and as a test merged unit death explosions into the system--so now the basic infrastructure is ready. I was considering merging grenade use and light emission (by units, items, and props), but they're already working nicely so I'll leave them alone for now, and maybe migrate those features later. Silacoid fire trails and chryssalid/zombie mechanics are next, and even the upcoming motion scanner, medi-kit, mind probe, and psi-amp functions will fit in nicely. For a single item with multiple manually-triggered abilities (as opposed to the passive kind), there will be a list to choose from when activating/using it (ex: psi-amp, which could then easily be later modified to support a broader spectrum of psionic abilities).

The way this will work:
Abilities specify an initial trigger, and all abilities with a given trigger are checked for whenever the trigger situation occurs. A sample list of possible triggers:
  • "Use" an item
  • Move
  • Attack
  • Hit by an attack
  • Fall
  • Death
  • New turn
Abilities may qualify their triggers using one or more conditions, for example:
  • Standing in or adjacent to burning/smoking terrain
  • Standing next to a unit
  • Holding a certain item
  • Some stat has a relative value
  • Random chance
Finally, once triggered there are a number of effects an ability could have, including:
  • Explode
  • Spawn an object (many variations)
  • Assimilate a unit (switch faction--could be for psi-amp mind control)
  • Panic unit (psi-amp effect)
  • Mutate one unit into another
  • Transmogrify an item

All of the above lists are just what I currently have enumerated in the code for eventual implementation. Many more will be added (ideas welcome).

As a part of the new system, objects will be able to list their traits (or properties, e.g., organic, sentient, metallic, etc.), where the list of possible traits also comes from an external script. So you could pretty easily add new traits and define abilities that may only (or cannot) affect objects which possess a given trait. I'm adding that feature now because it's better than hard-coding the restriction preventing chryssalids from zombifying tanks. Can't have tanks roaming around trying to bite your soldiers, now can we...
12 comments more...

Help!

by Kyzrati on 20120603 , under ,

For you, not me, that is.

The game is starting to get rather complex, and that complexity will jump yet again in the near future with the addition of more special items and their UI elements, so I decided to go ahead and add context help before going any further.

The first time a new help topic is available (one that hasn't already been seen before), the game will pop up some text to give an overview of how to use a particular function or window. Here's what you'd see when opening the inventory window for the first time (click for full-size image):


The entire system is very dynamic and ready to simply drop in new text (it comes from an external file) and give it a target area or console. That said, the help I've got in there now is limited mostly to UI elements, not gameplay. Eventually there should be more tutorial-style help as well to help new players understand the X-COM mechanics, but for now the majority of players probably know what they're getting into, so I'm holding off on that.

Hitting F1 or '?' on any window will also bring up the list of commands associated with that window. Here's the command list for the map/HUD screen:


A command list screen did exist before, but it was a temporary solution hacked together for the first release as part of last year's ARRP. Now it's mouse accessible, is properly animated, and has been integrated into the primary UI control system. The inventory and log windows have their own command list, as will all future windows. (For now mouse access for the main command list is through a tiny button found near the bottom-right corner of the HUD, since the that part of the UI has yet to be designed.)

So with another good chunk of the [somewhat boring yet essential] internal stuff behind me, up next are probably special items and Chryssalids/spawning. As with the other mechanics, the latter will be implemented using a pretty dynamic overarching system that will enable creative modding while still being capable of modeling the original X-COM mechanics. Weapon attacks (e.g., Chryssalid bite) will become capable of special effects on the target, one of which will be to cause the target to die and spawn another unit (e.g., zombie) of a specified faction. A greater variety of spawning will also be possible, so instead of just spawning a single unit, you could have the effect be to spawn multiple units nearby (xenojelly/ooze?), or even have a unit that naturally spawns duplicates of itself, or some other specified unit, at certain intervals. Think of all the possibilities! (No, really, think of possibilities you might like to see and tell me about them, so I can make sure they'll be supported.)
4 comments more...