Something Special for You
by Kyzrati on 20120609 , under Brainstorm
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 ;)
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
- 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
- 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...
Help!
by Kyzrati on 20120603 , under Progress, Screenshots
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.)
I Want My Mommy
by Kyzrati on 20120525 , under Progress, Screenshots
Check out the results of a total berserk rage as described in the log:
There you can also get a glimpse of the log coloring (which is available in the current release, R6, but I never put up a screenshot showing how it looks, for those of you who aren't downloading the intermittent dev builds).
Despite the thoroughness of UFOpaedia.org, some questions remain as to how the system works, which I resolved using what I guess are the most likely and appropriate methods:
- How much morale is lost by an individual unit when it is only injured? (I have it set to use half the value of an ally death.)
- How do non-X-COM, non-alien factions (e.g. civilians) fit in? (I have this handled on a per-faction basis, whereby it affects only the individual shooter, and X-COM soldiers lose morale for killing civilians, while aliens gain it. This behavior is easily moddable, of course.)
- What are the precise alien equivalents for the human ranks where morale calculation purposes are concerned? (The data I've got now sets alien "leaders" equivalent to colonel, and "commanders" equivalent to X-COM commanders, and all the remaining applicable aliens are squaddies, except where N/A.)
- How much stamina is drained for fleeing units, if any? (I left it as normal, though I believe the original doesn't actually deduct TU/stamina for panic movement.)
- Do fleeing units trigger reaction fire before they reach their destination?
- Exactly how many TUs do berserking soldiers get? (I've got it set at 125% their normal TU, which makes some sense--UFOPaedia says they get an absolute 255, but that can't be right since it would enable units to fire a ridiculous number shots..., and no one has confirmed that value for certain. From what I remember, I think they are only restored to full (100%) TU before berserking, but I would have to go back and play the game [yet] again to confirm it. Still have yet to do that, but I'll definitely need to set aside some time for it eventually to make sure I get everything right.)
Some of the strangeness in the original has not been carried over, of course:
- Fleeing units will not always head southeast
- Fleeing units behave according to normal movement blocking rules (i.e., no walking through other units)
I'm not going to put these extended options in the game yet, but some ideas for the future of panicking:
- Out of ammo? Charge up to an alien and repeatedly bash it in the face with a rifle butt. That would be great...
- Could also have different actions based on varying degree of panic
- Civilians jumping out of high windows to escape aliens (not unlikely), most likely plummeting to their death (for anyone who didn't already know, units jumping through windows and other fragile terrain has been possible for a while now, but civilians won't normally do it yet)
Morale effects are optional and can be turned off, like just about everything else. By necessity/extension, unit rank was also coded and actually means something now.
Below are a few more log screenshots of a game played in Area 51. Nothing exceptional, really, and these excerpts don't show much of the possible unique text and interesting events, but I haven't had enough time to gather a collection of fun logs yet.
R6: "Bleeping Good Time"
by Kyzrati on 20120517 , under Release
There's no new scenario this time around, or any new gameplay at all--R6 is mostly a batch of UI changes.
As described in the previous post, the engine was refactored to support multiple fonts simultaneously, which will play a big part in future UI design. Using multiple fonts of different sizes isn't very true to the console tradition, but square fonts aren't very readable, and readable non-square fonts aren't all that great for a tactical map since they distort space, so X@COM should benefit greatly from mixing the two--square fonts for maps, and narrow fonts for text. (The R6 HUD still uses the wide text font, but will eventually be narrowed once it's redesigned.)
The temporary message feedback system was replaced by a more proper version which can be easily expanded and modified through the data files.
A new Combat Log window is now available, where you can read all about your squad's glorious exploits. The log is still in its infancy, but already includes more than 80 different message types. On completing a mission, your score and log are output to an html file (it'll show you the file name and path). I originally had it writing to a text file, but decided it'd be nicer to retain the log message colors, hence the html.
If you played Cogmind, you'll recognize the text animation effects and sounds, which were from this previously unreleased version of X@COM to begin with (I've been sitting on most of it for a while now). If the message sounds annoy you, you can mute the game with F6. (Don't forget to check F1 help for new commands.) It won't be so annoying later when it's accompanied by a wider variety of console bleeps and bloops as you give commands and watch the battle.
Although it doesn't affect current gameplay, R6 comes with the refactored anatomy system. Future modders will be happy to know that they can create new body parts, then combine those parts into completely new beings where the body part parameters do actually have a number of gameplay implications. This system was already described in an earlier post.
There's also a set of new larger fonts available which can be activated for a 1280x960 window, along with somewhat improved fullscreen support. The larger fonts were a quick job--I just blew up and the normal fonts and tidied them up enough to prevent graphical artifacts, so they don't look nearly as good as the official fonts will when I get around to dedicating more time to them. Here's a shot of one of the font sets available at the higher resolution (click for full size):
The next release will bring some new gameplay and yet more UI windows.
Tune Up
by Kyzrati on 20120511 , under Progress, Screenshots
Several months back I was fretting over what to do about the low readability of square fonts when you have long text strings or even a paragraph to read. After all, it's hard for the eyes to quickly parse that kind of unusual arrangement of characters--too much empty space. Eventually I threw out the idea of multiple fonts as not necessarily worth dirtying up the elegant and extremely efficient console-handling code in the engine.
Then a little while back jday brought it up again over on #rgrd and reminded me how important the text is in X-COM, so I started to think about it again, and realized that if it's not done now, it ain't gonna happen. Well... it's already happened, so I don't have to worry about that anymore!
Seeing as how it's going to revolutionize the upcoming UI, I had to fit it in now or the entire layout would have to be redesigned in the future. And revolutionary it is... think about all that extra info which can fit in there! The HUD will be twice as informative; the in-game log will be easier to scan; reading descriptions and stories won't torture your eyes; map overlay text will be a lot more readable, and more readily distinguishable from the map ASCII... the list goes on.
In order to keep the speed reasonably fast, the engine restricts the narrow text font width to exactly half that of the square glyphs so it lines up nicely for the rendering system--a bit limiting, but it still works out. Compare the appearance of these windows:
The command list. Though this particular window eventually won't exist in this form, it's a good example of how much easier it is to scan a list written using a narrower font.
...is now...
The log window. You guys haven't even seen this one yet! Text message work is still ongoing, and I haven't chosen colors yet, but this is a prime example of how reading a bunch of wide text would be quite annoying. In case you're wondering what the hell is going on, this is an X-COM rookie deathmatch in the sandbox =P
...is now...
Note that the specific fonts shown here are of course just something thrown together for testing.
One advantage of the new system is that the game now supports an unlimited number of fonts, which the engine organizes into sets that can be easily modded in through a configuration file. So the UI will now be able to introduce different individual fonts for different purposes, wherever it happens to work well aesthetically.
Look for a modest R6 soon.
In other news, I see that Xenonauts is kicking butt on Kickstarter after only the first couple days. Makes me jealous, and has also gotten me fantasizing about doing something similar with X@COM one day. Thinking realistically, there's not quite the same potential fan base for a non-graphical remake, but it doesn't hurt to dream! It'd be pretty amazing to attract enough money to develop X@COM full-time for a bit. Of course, to get on Kickstarter I'd have to rebrand the game (and perhaps instead tack on the original X-COM content later on as an unofficial "mod"). Not really a big deal, since it's just a bit of text, and my ultimate goal is to take this far beyond the original anyway. Meh, who knows.
***Okay, maybe not just a little slower... The required changes ended up dropping the REX rendering loop to something like 40% of its original speed. Sheesh...
Cog /out of/ the Works
by Kyzrati on 20120318 , under
Unfortunately there was way too little time to use Cogmind for some of the X@COM test development I had intended--my initial 7DRL plan was far too ambitious and I barely managed to crank out a finished game as is.
However, the interface does show off some features already available in unreleased versions of X@COM, so you can check out Cogmind to get a preview of what'll be coming down the pipe for R6 and beyond. Tell me if you like (or don't like) what you see. Things to look for: the message log, UI test sounds, and animated HUD (though the X@COM version is going to look much cooler, since I threw together the Cogmind HUD as fast as I could).
While the two games may look similar, Cogmind plays totally differently. I had lots of fun playtesting it, and you should definitely give it a spin. Tell me my hiatus from X@COM was worth it! :)
(click for full size image:)
Cogmind
by Kyzrati on 20120223 , under
What I didn't foresee, however, is that I'd come up with a fun idea for a 7DRL, which I'm now spending my free time brainstorming for.
So no X@COM, still :'(
At least it could possibly be a fun little test bed for X@COM UI elements, since it'll be developed using the exact same tech--in fact, it's going to run under a gutted 2D version of X@COM itself.
I'm not quite sure if it's going to work out yet, and I can already smell a failure on the horizon since this game idea would be better suited to a 3-6 month dev time, but in order to squeeze down the design doc I've been hacking the features list to about 10% of its original length. The result should still be playable, though not quite as dynamic or interesting as I originally intended it, as the gameplay will have to focus purely on the core mechanic and nothing else.
The title is Cogmind, and compared to X@COM it will be a far more traditional roguelike: A sci-fi dungeon romp in which you control a single character with single-action turns. For details, you can check the Cogmind blog. (Doesn't exist yet--I'll update this post with a link at some point.)
As a 7DRL, Cogmind has a finite completion time and won't be in the way for too long, so fear not, I'll get back to X@COM soon enough. (The current public demo expires at the end of March, so I have to get out another release by then...)
Now I Need A Break
by Kyzrati on 20120117 , under
Beep Boop Blip
by Kyzrati on 20120110 , under Progress
The UI for the next version has been audible for a while now--at least parts of it have. So be prepared for a bleeping good time next release! I'll be adding UI sound effects incrementally over many versions as new interface features are completed. The final map and HUD have yet to be developed, so I'm not bothering to give them sounds just yet. Weapon/movement/etc sound assets won't be added until much later, but the functionality is already there.
I replaced the inventory system from R5 with a new system that comes with greater versatility at the price of slightly higher complexity. Body parts, rather than inventory slots, are now the fundamental unit for creating an entity (unit). "Body parts" (which each have their own set of properties) can be grouped together to define a certain "anatomy" that applies to one or more races. Body parts and armor each come with their own inventory slots, so combining the two can result in different inventory layouts. Here's a shot of the relationship as commented in the source:
The original system was sufficient to model the X-COM rules, but not good enough for expanded applications like dynamic loss of limbs and the resulting effect on inventory space and item interaction. With the new system, races with entirely new and unique body parts and possibilities for interaction can be created by modding the text files.
Most X@COM engine mechanics are a superset of the original game rules, so there will be much more flexibility when expanding or modding the game. Almost everything will be exposed in text files (including mechanics, not just data).
There's also a brand new (and completely externalized) message system, including a combat log which records unit actions/events. The goal of this initial implementation is to simply provide a place where you can read what just happened, or scroll back through the log in case you missed a piece of the action. Eventually, at the end of each mission I'd like to have the game analyze the entire log, and create a summary of the action which is output to a file and could hopefully be an entertaining recap of a mission. The log is rather unexciting in its current state, so I'll save the visuals for a later video that includes more unique windows that will be appearing soon.
Thanks to everyone who showed their support in the Roguelike of the Year competition! We did fairly well--12th out of 185--considering X@COM is just an early alpha game. Next year once the game is a lot more playable I'm sure performance will be even better.
You Need a Break
by Kyzrati on 20111221 , under
While rushing to add in the new Exodus scenario for R5, I screwed up R4's Area 51 and didn't notice. Left one freaking line of code, a "break," out of a switch statement controlling some hard-coded Area 51 update processing, which led right into Exodus code... If you play Area 51 under the new release it will crash after several turns. Thanks to Tarran and stabbymcstabstab over at Bay 12 for reporting the issue. I've uploaded a new version of the release (same filename), so Area 51 now works normally.
By request, the update also includes a smaller font so the game can be played at 800x600 (press Ctrl-PgUp/PgDn to cycle fonts, but note that you have to release ctrl before each change if you're trying to switch through multiple fonts in a row). I didn't spend very long getting the small font to look nice, so some parts may be a little fuzzy, but it appears serviceable. There will be more font options in future versions.
While I'm posting, I may as well put up the version roadmap I've been working from, and somewhat cleaned up yesterday. Do note this roadmap is subject to change (in many cases I might push back a feature to the following release, or move one up), but this is at least a fairly comprehensive list of the remaining features to implement, at least for the battlescape. I'll add this information to the FAQ page later, and update it as things change. Items in all caps refer to those containing multiple components:
0.00+ CORE MECHANICS
[alpha]
0.10 Inventory
[^CURRENT STATE^]
0.11 Sound: UI
0.11 Mechanic: Morale
0.11 Mechanic: Variable Anatomy
0.11 Item: Medkit (+UI)
0.11 Item: Mind Probe (+UI)
0.11 Item: Motion Detector (+UI)
0.11 Messages: Info
0.12 Messages: Combat/Logging
0.15 Sound: Weapons
0.15 Sound: Destruction
0.15 Sound: Entities
0.16 Unit: Chryssalids
0.16 Unit: Silacoids
0.17 Item: Psi Amp (+UI)
0.17 Mechanic: Psi Powers
0.18 Battle Recorder
0.18 Mechanic: Experience
0.18 Mechanic: Scoring
0.20 UI: Intro
0.20 UI: Main Menu
0.20 UI: Mission Intro
0.20 UI: Mission Results
0.20 UI: HUD
0.20 UI: Map Dynamics
0.21 UI: Options
0.21 Mechanic: Difficulty Levels
0.25+ DATA
0.30+ MAP GENERATION
0.35+ VISUAL/SOUND EFFECTS
0.40+ AI
0.50+ GEOSCAPE
[beta]
0.90+ Testing/Adjustments
1.00 Complete X-COM Remake
1.01+ MORE FUN STUFF
- Unit names and/or types shown next to their symbol
- Item names shown next to their symbol
- Building/terrain area highlighting w/names (later the map editor will ideally be able to name buildings and terrain blocks, so they can be referred to in the game and used as a reference)
So if you can think of something else you'd like to see, speak up now. I'll also be posting this question on Bay12 for discussion. (This question is a precursor to a discussion on HUD info, which will in some cases be dependent on what the map can be used for.)
R5: "Alpha Genesis"
by Kyzrati on 20111219 , under Release, Screenshots
So I bring you 0.10. The changelog isn't all that impressive, but this is actually the biggest release yet in terms of modifications, most of them internal as the game is now powered by a brand new engine. Let alpha development commence!
At least now you can try out the new inventory system. With full inventory access you'll also be able to keep those grenades out of your off-hand for better accuracy with two-handed weapons, and carry spare ammo for heavy weapons to make them a lot more useful.
Remote detonation of explosives is now supported. This marks the debut of the 'u'se command, which will be for all sorts of special functionality in the future. Priming your remote charges will create a detonator, which can then be activated at any time by using it. The original X-COM didn't have remote charges, but it's a commonly requested feature, so I've added them since it was easy and the vanilla mode can simply leave them out. Later on when aliens can pick up weapons, it would be amusing if/when the dumber ones happen along and pick up your primed remote charge...
To make downloading the release a little more worthwhile, I added a new scenario: Exodus. You get to assist the National Guard during the evacuation of a city overrun by aliens. This mission shouldn't be too difficult to "successfully" complete, although there's potential for a much higher score if played well. Replayability is high as the city layout and opposition forces are randomly generated. You have a smaller squad this time around, but they're better armed (and armored). You'll also face a new alien species, a weaker precursor to the upcoming Chrysalid (minus the zombies).
Here's a shot of a generated city (revealed):
"Looks quiet. Also looks like we've arrived a bit late..."
During one of my test runs, a huge group of civilians came swarming my way, and right before they reached safety, a blaster bomb came out of nowhere and toasted them all... poor civvies.
Oh, and being a city, I upped the map height to 6, so you can have some pretty tall buildings out there.
The older scenarios have also been modified/updated, mostly to give you a little more firepower and flexibility since now you have inventory access. Area 51 might be slightly easier since there's enough explosives stocked about to level the entire base. Just try not to be in it when that happens.
Your rookies should be ever so slightly more effective now, since while overhauling the armor data format I discovered that the armor value application (a temporary hack for the demo) was overriding all rookie armor with zeroes... So at least now they have that minute amount of armor (which we all know they so desperately need).
I noticed the annual Roguelike of the Year competition is being held right now. There have already been a fair number of votes cast for X@COM (I was pleasantly surprised when I first opened the page and saw several dozen votes), but let's try to get that number higher! Obviously X@COM won't (and shouldn't) win, but the extra awareness would be good, so go put in your vote! (Of course, that assumes you're reading this because you like what I'm doing here.) Don't forget to check out the other entries, too; I voted for DCSS, DF, Infra Arcana and MageGuild. Oh yeah, and myself :)
The next release will come some time next month and should include at the very least medkits (stop bleeding already!), UI sounds (ooooh), and a main menu (not really all that essential yet, but I might as well..). Other things high on the alpha list that will be appearing in the next few releases:
- sounds
- proper message system
- special units (Chryssalids, Silacoids)
- special items (motion detector, mind probe, psi amp)
- morale
- psionics
- battle recording?
I should also spend some more time on HUD design/planning, and there will probably be another post dedicated to it that provides some HUD content proposals which can hopefully attract input.
Interfacelift
by Kyzrati on 20111213 , under Progress, Video
It's been a surprisingly long time since the last post. Sorry about that. Not that nothing's been happening over here, but I prefer having something concrete to show with every post. I'm still chipping away at the todo list, but the current stage of development involves spreading out into quite a few new areas of the game code, certainly much more time-consuming than banging out simple and well-documented game mechanics!
Plus, I don't want to screw something up now in the core program that'll become a source of endless headaches later.
Recent developments have been all about paving the way for a new interface. The HUD is still waiting on the sidelines, mostly because I have yet to decide what exactly it should contain and how to organize it all. Instead I'm testing the system by implementing a simple inventory window. I know your soldiers are getting antsy about the fact that they just *know* they have more ammo in their backpack, but, um... forgot how to get it :)
Well, now they'll finally be able to stock a few extra grenades and missiles, and do it in style!
Okay, so it doesn't look like much yet, but look again... it's alive!
The system is capable of far more than you see here. This sample is powered by a simple, generic window-drawing script; the interface animations are completely exposed in text files, similar to the weapon particle effects. So, just as you see weapons producing a range of snazzy effects, windows can do all that and more, and can be tweaked, or even rewritten, from the text files. (For those interested in the dev aspect, the system is very basic but powerful nonetheless: every visual component of the engine (window/control/button/etc) inherits from the same console base class, and every single one comes with its own lightweight particle engine--I LOVE PARTICLES! Besides making it not too difficult to implement good-looking effects, giving every object its own particle engine also makes control/manipulation fairly easy: even windows containing complex interconnected animations can be manipulated piecemeal and the flow seems to work almost automagically!)
In the game you won't have to watch entire windows be redrawn every time they're accessed--the way I have it now only the content portion will be redrawn after seeing the complete animation once (per run).
In its current state, the inventory screen should already be pretty informative and usable, showing TU costs, weight/encumbrance changes, highlighting valid/invalid targets for moving items or reloading, and telling you exactly why you can't do something, etc. It'll be expanded later on with additional functionality like the ability to define and apply set loadouts/equipment kits, and direct manipulation of other units' inventories (tanks that hold things, or those with modular weapons that could be swapped out by an engineer?).
In terms of control, the inventory is 100% controllable by obvious and intuitive keyboard commands. I used the mouse in the video so you could better understand what the heck was going on...
I originally thought the inventory interface would be a bit more graphical, but that wouldn't be as compatible with the new arbitrary inventory slot system. Armor and inventory slots have now been completely exposed in the text files, enabling simple creation of different kinds of armor which provide unique amounts of storage space and locations. Races are also connected to the slot system (also through the text files), so different races can specify different natural slots (which combine with armor slots to give a unit's total inventory layout). As each unit keeps track of its own available inventory slots, eventually adding the possibility of losing a limb won't be too much trouble (it'll still require a more specific body part list, though, which would also be compared against armor to make sure a given armor is usable by a certain unit at all).
Soon/next I want to finally integrate some sound effects into the particle engines to see how that should work with the animations. Hopefully those windows will be bleeping, blooping, whishing, and whooshing in no time. The audio engine is already in place, I just have yet to put together the resources and add ways for particles to trigger sounds.
Back from Hell
by Kyzrati on 20111113 , under Progress
Spent some time wading through boring non-X@COM-related code, working out various annoying library dependencies. Finally got all the correct compatible versions playing nice with each other, then tested the new engine--seems to work fine. Then ported the game code over to the new engine, and X@COM looks... suspiciously unchanged:
That's because it's still using the same old DejaVu font (little coincidental pun there). The point is what it's now got under the hood: The foundation is in place for much more interesting design possibilities now that it's a completely different engine ready with sound support, archived resource access, parent-child console interaction, command processing (as opposed to kb/mouse processing) and more.
Now back to work on the game proper. The latest addition is a second particle engine, this one 2D, for animated interface effects. We'll see in the next post how it manages to draw windows!
I've also been playing with new fonts. Eventually there will be multiple fonts to choose from while playing, but I'll need to decide on an official default appearance. The problem is that square monospace fonts aren't all that easy to read, and the ones that are don't look all that great. On the other hand, square cells are somewhat essential for tactical strategy to avoid distortion of space.
Another issue is the font's readability in words vs. single characters. With more stylish fonts, identifying a character/letter by itself (i.e., on the map) may be more difficult when it doesn't appear in a word. Perhaps this could be solved by using a separate font for the each the map and interface text, but then that's not very console-like.
Anyway, here's the alternate test font I made recently:
Doesn't look all that great yet, but it's passable.
Hello World
by Kyzrati on 20111031 , under Progress
After weeks of debating the issue with myself, I've decided to write a complete game engine from scratch rather than continue with libtcod. I originally intended to write a new libtcod framework that would replace Umbra and make coding X@COM a lot easier, but finally convinced myself that with just a little extra work I could write my own engine right on top of SDL, one that would be both simpler and much easier to modify to fit my own needs. Libtcod is a really cool library, but since I already have my own rather large collection of game classes (on which X@COM is based), I was only using a tiny fraction of libtcod's features in the first place (namely the console display).
After a little bit of planning (probably too little), Rogue Engine X was born this weekend. Here's a shot of "REX" in action--very impressive stuff, really...
Okay, maybe not so impressive. Right now it can't do much of anything except load a bitmapped font and draw one full-color console window. The color support is essentially the same as libtcod, although with a slightly different HSV pattern for the default colors.
REX features (eventually):
- Based on SDL
- Fully object-oriented (C++)
- 32-bit color console
- Command-driven input processing
- Sound/music support
- Access to archived resources through PhysFS
I already warned that X@COM's alpha debut is quite a ways off (two months, maybe?), so taking a detour to crank this out doesn't really change that. Consider this taking several steps backward in order to make huge leaps forward!
R4: "Area 51"
by Kyzrati on 20111021 , under Release
In addition to the many new features mentioned in the previous post, R4 adds a new scenario and scoring system to tide you over until the first alpha release, which probably won't be available until the end of the year! Most of the core mechanics are complete (the rest will come in alpha), and huge changes will be taking place over the next couple months as I build a libTCOD framework from scratch to handle the kinds of things I want X@COM to be able to do. I'll occasionally post progress updates when there's something to show.
As for the new scenario: Fight alongside soldiers defending an Area 51 base against an alien assault, and be prepared for some surprises. To play, run Area51.bat. The environment is non-random, but enemies are mostly randomized. Once the remake is complete, later versions could optionally include similar handcrafted scenarios, though of much better quality and properly balanced.
There are a lot of enemies, so definitely try out this new feature: You can now press/hold the 'e' key to highlight known threats. So at the beginning of a turn when you've suddenly been engulfed in total chaos (very likely to happen in Area 51, believe me), highlight the threats to quickly get an idea of what you're up against. (Threats are highlighted no matter what level they're on.) The visual effect is currently handled with the projectile particle engine, so flashing indicators may not appear in their entirety for units at the edge of your FOV (or at all for known units outside FOV); there will eventually be a separate 2D particle engine for map/interface effects that can properly handle highlighting and all kinds of other nifty indicators.
As usual, see the changelog for a comprehensive list of what you get with R4.
You can still play the original completely randomized ARRP demo; in fact, it's still the default. Remember that the original scenario will be a fairly different experience now that reaction fire is implemented.
As requested, there is now a scoring system (applies to all modes). The game will eventually replace this temporary implementation with a detailed and extensive scoring/records system, as well as medals for soldiers and achievements you can earn as commander. Here's the result of my test run on Area 51:
There are more unlisted ways to score points, but I didn't earn those. If you have a particularly good run (or even win!), when you see the mission end screen press your PrtScn button and a screenshot will be saved in your game directory. Maybe you could show it off in the X@COM Bay 12 thread (link on right).
That's it. No more media for you. Not doing any in-game screenshots or video for this release, at least not just yet, since I don't want to spoil the fun.
Now go! Defend Area 51!
Quickdraw
by Kyzrati on 20111015 , under Progress, Screenshots
Actions now trigger reaction fire (opportunity fire) from enemies that have spare TU. The system is almost identical to the original, though a few of the small quirks were removed to keep it as straightforward as possible--there aren't any strange exceptions to the way it works.
Melee reactions/counterstrikes are also possible. Out of ammo when that sectoid rounds the corner and starts firing at you point blank? As long as you've got the time left you'll just whack him with your rifle, or whatever you happen to be holding. Heck, find a sword and intentionally have your ninja-reflex soldier wait around corners for unsuspecting aliens--the heads will roll!
About the mechanics: I can't recall whether X-COM units actually turns around as part of reaction fire to shoot aliens after being hit in the back (probably because you rarely survive hits from behind by alien weaponry, anyway...). Either way, that behavior is a per-unit setting in the data files, so it's easily changed. For now I have X-COM *not* turning around.
You can reserve TU for any major action (snap / burst / aimed / melee / throw), and also intentionally deplete a unit's TU with a single command so you don't have to worry about those freaking reactive snap shots with a rocket launcher (unless you want them, of course).
Check out the video below for the ultimate showdown between X-COM and aliens. This battle is 100% based on opportunity fire! Reaction fire on this scope wouldn't normally happen in the game, but I added a third "overwatch" faction which triggers the exchange and tweaked their TU so they won't interrupt the battle; meanwhile, all the other units have full TU and are just staring at each other until someone moves... (HD + fullscreen strongly recommended, otherwise it can be hard to see what's going on)
Explosions are now simultaneously animated from the side, as seen here:
Parabolic projectile trajectories are also possible now. This feature was implemented primarily for the celatid spit, which is apparently the only projectile in the game which does that, but now any projectile can be designed to follow a parabolic trajectory, so you can add mortars etc. Be sure to kill celatids from a distance--or be killed (they've got the deadliest projectile in the game). There's now a max range setting for projectiles, also implemented for celatids, since parabolas don't inherently limit range like they did in the original. You don't want them spitting that stuff at you across the map! All other projectiles currently have unlimited range, of course.
In other news, those alien saboteurs (see 2x2 post) sure are persistent. My motherboard malfunctioned yet again. Lost a PCI slot and BIOS decided it wanted to try to overclock the CPU without my permission. Thought I was going to have to build a new rig to replace this 5-year-old dev machine, but after a cleaning and rearrangement of parts it's chugging along, again. Point is, fooling around with dying hardware ate up enough of my spare time that I probably won't get to push a new release this weekend.
All the new systems are debugged and ready to play, but I want to add a scoring system and new environment/scenario for the next (and last) pre-alpha release: Area 51.
R3: "Sheer Terror"
by Kyzrati on 20111009 , under Release, Video
As detailed in the last post, large units have been added. You get a tank this time, too. Admittedly not an impressive one, but anything will help against your new enemies, the alien "terror units." For now only large terror units are included; normal-sized thralls will come in a future version.
Terrain smashing is now implemented. Talk about putting the gravity system to the test... Giant units plowing through buildings, heavily-armored X-Com units dropping through weak house roofs in style, tanks mowing down fences... Everything went smoothly except the house filled with stuff getting bulldozed by a house-sized alien--he really helped me fix all the rare bugs :)
Now you can jump through windows without bothering to shoot them out first! By default, "smash movement" is *not* active--you can toggle it on a per-unit basis using the 'h' key. (This is so that the pathfinder knows what kind of path to take.)
Stronger units can smash almost anything, while most rookie soldiers can't get through much more than glass, shrubbery, and other weak obstacles, though stronger soldiers can eventually push through fences, thick hedges and weak walls, or even smash chairs and some other furniture as they move. Later on, some armor and equipped weapons will probably improve a soldier's ability to smash things. Sledgehammer, anyone?
Essential for large units, built-in weapon modules are now operational. The system is very expandable and can later be used to enable units to accept multiple modules, even non-weapon modules with special effects.
Melee attacks (m/M) are now possible, too. In fact, you can use any item to perform a melee attack. Farm level? Grab a pitch fork and stab the little bastards! (Warning: May not work on big bastards.) I divided melee damage into three types: bludgeoning, slashing, and piercing (others can be used or more added easily). Melee attacks can of course do non-melee kinds of damage, like the stun rod.
Bludgeoning damage may also knock targets backward depending on relative strength and item mass. Whack an alien right through a window and have him fall to his death! Or, if you're strong enough, push him right through a wall...
Melee attacks do not currently harm terrain (as in the original), though that can easily be changed by modifying the materials.xt file.
Knockbacks and terrain smashing are both optional (though in the demo there's no button to toggle them); those and the many other optional settings will eventually be accessible through a config file.
About the new demo:
- Most of the large units are what you'd expect from X-COM: UFO Defense, but I did throw in the chance of one 3x3 unit. Here's hoping you don't get mauled by a Mega Reaper. (Murphy's Law says you will.) And if you see some toppled houses and trampled hedges while you're scouting around... well, let's just say you're probably not safe :)
- Explosives are quite effective against large units since *all* sections take damage separately.
- For those who have previously checked out the bunker, there's a couple new toys inside :)
- See the changelog for a full list of changes (some commands have changed)
I also put together a quick demo video showing large units. To speed things up, I'm controlling the aliens in a mock battle. In retrospect, there should've been more wanton destruction :)
There will probably only be one more tech demo release soon (reaction fire), then a rather long gap before the first alpha version.
Now what are you waiting for?! Go stun yourself an alien!
2 x 2 = A Lot of Work
by Kyzrati on 20111002 , under Progress, Screenshots
First time spending this much time on any one part of X@COM (even the particle engine only took a little over a day); had to parse a big chunk of the code since large units touch on a little bit of nearly everything--display, body item mechanics, FOV/LOF, pathfinding... Those weren't actually much of a pain, though. Implementing the effects of gravity on these guys was the annoying part--proper displacement by falling objects, bumping into each other while tumbling through the air, etc... In the end it was definitely worth it (not to mention necessary for any self-respecting X-COM remake!).
First sighting: Reaper!
So in the next release you'll be able to stomp--oops, I mean get stomped by--some large units. Don't worry, you'll have tank support! Too bad we all know X-COM tanks tend to suck. I suppose I'll be generous and give you a well-armed rocket tank or something like that, but it won't save you...
Not from...
Hell yeah!
That's a bit excessive though, you won't see anything quite that big in the demo.
But anyway, as you can see, unit sizes are actually arbitrary--they can be any dimension you like, even taller than one cell! Why not, the code is the same regardless of size. Not necessary for vanilla X-COM, but could lead to some interesting mods :)
Since it's somewhat related to large units, next up is terrain smashing: Any units with strength exceeding the integrity of a terrain material can smash right through it (for a TU cost). So soldiers can jump through windows, tanks and strong aliens can push down walls, and massive units could walk right through buildings. Obviously like anything else not X-COM, this will be an optional setting you can turn off in case you *don't* enjoy jumping through windows or surprising aliens by driving your tank through the side of a house.
After that is tank/natural weapons. That'll be a quick addition, then I can get the next release out.
In other news: ALIENS HACK X@COM!
They must've found out about X@COM and are afraid us Earthlings are developing a training program to devise ways to repel their imminent invasion!
Okay, what really happened is the ASCII mapping code was a bit off and turned the help screen into some alien language. Under the new mapping scheme, a virtually unlimited number of tiny images can be added to the resources and attached to any terrain, unit, etc. This was necessary to make it possible to draw the 2x2 units using special characters. Until now I was relying on hacks to get the unit triangles, but now they and the normal ASCII characters are easy to work with, even from the text files.
12K Release!
by Kyzrati on 20110924 , under Release, Screenshots
I've uploaded a new release with some minor enhancements to the ARRP demo.
Here's the changlog list for those too lazy to check:
* ARRP: HUD more informative
* ARRP: To improve cover, reduced amount of open space and added a new orchard terrain area
* NEW: Light affects unit visibility
* MOD: Non-keypad movement scheme (arrows) more flexible, allows full range of movement
* MOD: Keyboard input more responsive
* MOD: ESC cancels priming action
* MOD: Right-click cancels firing/throwing
* MOD: ESC/Right-click stops movement
* MOD: Units may fire at targets beyond obstacles
* MOD: Auto doors close at end of turn instead of immediately when unoccupied
* MOD: Previous saved games no longer invalidated by adding/moving objects in data files
* FIX: Errors caused by AI misbehavior will be corrected without crashing
The biggest change: Light now affects unit visibility, so if you thought the demo was tough already, now you're really going to be slaughtered on the night missions (as it should be). I added another flare among the starting equipment; try not to blow them up--you've only got two.
Mostly been refactoring and trying to clear my workspace of notes/TODOs accumulated during the coding frenzy leading up to ARRP. Work should start on some new feature this weekend.
Here's a screenshot of a squad disembarking at the landing site near an orchard at night:
ARRP: Alien Raid Resistance Party
by Kyzrati on 20110918 , under Release
The demo scenario can be pretty damn hard, and then sometimes you can just get really unlucky. I only tested it a few times, in one of which an alien not far from the Avenger started with a Blaster Launcher... Needless to say we all died a fiery death, roasted in an impervious shell of our own making!
You can also luck out and not meet too many tough aliens, but they'll probably get you eventually. You'll definitely last a lot longer if you commandeer alien weaponry (no time for research!) and/or find secret weapons.
The alien AI is very basic (didn't spend more than a few hours adding it), and is nothing like the AI the game will use, but it does come in multiple varieties so don't expect all the enemies to behave identically.
There has been very little real playtesting so far, and I've been coding lots of new content up until just a moment ago, so don't blame me if it explodes. Seems fine when I run it, though, so do your worst. Come to think of it, explosions are good, as long as they're properly aimed...
I will entertain requests for simple updates to make the demo more fun, but don't request anything major--coding it is fun and all, but takes time away from core development. I'll also be updating the demo with new gameplay features as they become available for testing.
Some specific notes:
- The game could be quite a bit faster, but I compiled the release build with most of the assertions intact, so you'll actually get specific error messages if something does go wrong.
- Check out the FOV options. The original had none, but everyone seems to want things like highlighting. I'm not yet sure it's a great idea, since it removes some of the suspense, and X-COM is all about suspense.
- There wasn't enough time to update the latest libtcod, so there's no mouse wheel support for zooming--that will come soon.
- Oh, and look out for Sigmund.
While I'm at it, may as well put up a fun screenshot. This is what the ARRP map gen's first run produced:
Oh the havoc one misplaced variable can wreak on a calculation :)
Never fear, you can now advance your soldiers without the danger of buildings and terrain rearranging themselves around you.
Now go shoot something already!
X@COM Fans
Tags
- Brainstorm (8)
- Mods (6)
- Progress (26)
- Release (10)
- Screenshots (21)
- Video (10)





























