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...