Posted on 07/21/2014 - 17:08
Hope everyone had a good weekend! My parents dropped by on their cross-country drive, so it was good to chill with them. We discovered our street has Saskatoon and Thimble berries! (And Rochelle at the latter, despite my warnings about red berries being 50% poisonous).
Today, I resumed work on the new encounter. The focus was on making the AI do appropriate things in the right order, so the player can interact with world evens in real time. I've got my AI going to a waypoint, spawning and collecting an item, and then continuing. However, there was a problem with dropping that item later.
It turns out that I need to carefully handle the way AI triggers encounters. In this case, I was accidentally triggering an encounter within another one, and it confused the game (and make the item disappear). As such, I've changed the AI encounter code to process them serially, instead of instantly. I'll be testing that tomorrow.
This new location and AI mission also involves new items, and here's a sneak peek:
Good luck carrying the latter!
I still have a few details to sort out with the big barrel, and also how the other two work. But hopefully, they'll be nice discoveries for those who make the right decisions.
Plus, after all the above is finished, there are some interesting game choices I want to give the player at the end of this encounter. I'll be continuing my experiment with not hand-holding the player, and letting players figure out what to do next. Hopefully, more clever players can be rewarded for their ingenuity!
That's all for today. Have a good night, all!
Posted on 07/18/2014 - 16:42
Earlier today, some of you may have noticed the site being offline for maintenance. There were some security updates for software that needed installing, so I had to take the site offline and apply those. Fortunately, that seems to have gone smoothly, and it was only down for about half an hour or so.
Once that was done, I returned to work on the AI waypoint and encounter stuff mentioned yesterday.
The AI waypoints seem to be working now, and I was able to spawn an NPC that went to the desired hex. Once there, they resumed normal operations. I could queue waypoints by adding conditions to creatures in a certain order, but I also want to make them do things once they reach their destination. (e.g. pick up or drop items, add new waypoints, or set game flags)
So, I also added a new function to AI that lets them trigger encounters of their own. AI won't see the usual text or images, nor make decisions. However, this allows them to benefit from the encounter system's logic tools for triggering encounters when certain conditions are met. (e.g. don't trigger this encounter unless these other conditions exist)
This way, I could have an AI approach a hex, and have something there trigger an encounter which gives items and sets new waypoints. Hopefully, this will make some more encounter tricks possible.
Finally, with those systems working, I resumed work on the encounter. Most of this work revolved around creating new quest items, and figuring out how those would work and be distributed. I'll likely be continuing on that Monday, after which I'll hook them up to the encounter.
That about does it for this week. Hope everyone has a good weekend, and see you Monday!
Posted on 07/17/2014 - 17:05
After yesterday's work fleshing-out some new ways to use the new factions' equipment, it was back to encounter integration for me.
A good chunk of today involved going through the new encounter I added a few weeks ago, node-by-node, and hooking up game variables. The usual encounter stuff applies here, such as treasure IDs, items for each of the choices, conditions, fatalities, etc.
After going through several of those, I reached a point where I needed to add some more "hooks" for the game to use.
One such "hook" was to let encounters pass time in-game. Previously, encounters happened instantaneously, and no passage of time occurred regardless of what the text said in the encounter. Since one of the new encounter branches involves the passage of time, I added a new method to creatures called "PassTime." This can be called inside a condition, which will simulate the creature's metabolism for the specified time.
Another "hook" involved adding waypoints to AI. Currently, AI does it's usual foraging/hunting/fleeing/sleeping, but that's it. This new encounter involves a branch where a creature is spawned that has a destination. Harald and I wanted it to be such that the player could intercept this AI and affect the story outcome a bit.
As such, there is now a "SetWaypoint" method on AI, also set by conditions. AI will head towards this waypoint as long as no threats are in sight. Otherwise, they act normally.
Finally, I also needed to add some code to make certain things happen when the AI reaches their waypoints. Things like picking items up, dropping them, or applying conditions to the player. This is my current task, and I almost have the function done. I'll be testing it out tomorrow.
Assuming this all works as planned, this should open up some cool possibilities not only for the story, but also modders. I look forward to seeing how queueing AI behavior changes the game.
That's all for tonight. See you tomorrow!
Posted on 07/16/2014 - 16:46
Hey Folks! Hope everyone had a good week. Our wedding was an unqualified success, and we had a great time seeing friends and family. It was a pretty crazy week, as you'd probably guess!
Now that I'm back, dev continues. And I decided to share a sneak peek to whet your appetite for the upcoming build:
A little bit of shiny, and a little bit of ominous.
These are some bits of content I was working on today to make things more interesting. As mentioned last week, the Great Black Swamp now has a new scavenge locale to make it worth exploring. That was a good start, but I decided there should probably be more. A sort of "unicorn" that one rarely sees, but is worth seeking out.
The image on the right is one such "unicorn," and finding it may turn out to be a big payday. Not only that, but it also may contain a hint of history and lore, too!
And on the left? Let's just say that it's a relic of days long passed...
In addition to the new content above, I also decided to take players' feedback to heart regarding the combination of surrendering and Merga Wraiths.
Players who surrender in battle are often killed immediately by the wraith when it appears. This is especially true if the player is surrendering because they are crippled or otherwise weak. Basically, surrender is an invalid option in many cases when it should be viable, and this is mainly due to the talisman disappearing.
Instead, I decided to take their suggestion to make the talisman ignored by the surrender code. It's a bit unrealistic, but it plugs a huge hole in the game design with very little effort. A worthy trade, if you ask me.
Also, while I was in there, I tweaked the wraith to prefer advancing to charging. Wraiths are supposed to be a bit more reserved and confident, and it betrays that image when they run. Making them prefer advance fixes this image problem, and also gives players a bit more of a chance to postpone their death by escaping combat more often.
We'll see if it was enough of a change, or too much. Hopefully, it's just the right balance!
That's all for today. More to come tomorrow!
Posted on 07/07/2014 - 17:17
Hey folks! Hope everyone had a good weekend. Ours was actually a bit hectic, as we're planning a trip back home to get married this week. Exciting, but also frenetic!
As such, starting tomorrow, I'll be on vacation and will have limited internet access. I should be back on Wednesday (16th) next week. As usual, I'll try to check messages and such for any major issues. Fortunately, we have a pretty stable build up there (v0.9922b), so I think we should be free of any fires until I get back.
As for what I did today, a lot of it focused on the Great Black Swamp. Now that we have gas masks, diseases, and toxic chemical support, I started adding these things to creatures and the Swamp. Infected creatures may now infect other creatures when at close range in combat. And visiting contaminated areas may cause side-effects.
To balance this danger, I've added a new scavenge location to the swamp. It's pretty rare, but is also fairly rewarding since few people venture there due to toxicity. I may work on an additional one, but at least we now have a proper risk/reward to balance the area (subject to tweaking after testing).
Additionally, I decided to add a new hazard to existing scavenge areas which can affect players without breathing or eye protection.
Finally, I've been watching some discussions about surrender and the wraith appearing due to talisman loss, as this is causing both issues and confusion with new players. (and vets alike!) I've made a note to look into this when I'm back, and perhaps tweak either the surrender and/or wraith to make this less jarring.
Have a good week, all. And I'll see you on the 16th!
Posted on 07/04/2014 - 17:02
Work continued today on a mix of new features and bug fixes.
After adding the gas mask yesterday, I decided to add a new hazard to the Great Black Swamp. Namely, the defoliant used there can still be dangerous to those who pass through the area. I added a new condition chain, similar to other diseases, which represents overexposure to the defoliant. It has a variety of minor to moderate symptoms, and is a chronic condition (comes back periodically). The gas mask will protect against it, if charged.
I also decided to add eye irritation symptoms separately, in case I want to use that elsewhere as scavenge outcomes, or in combat. This way, there can also be goggles, combat moves, and other stuff supported by the game (time-permitting).
I still need to add a reason to visit the swamp, now that it has a tangible hazard. This will probably take the form of corpses and scavenge locales with higher loot chances, but also higher risk.
Similarly, I'd like to add one or two new scavenge hazards for the map in general. Things like black mold or other volatiles in the air, to make gas masks and other items more useful.
Finally, the reason for all this needs to be added, too: new factions and diseases. I started working on some code to make conditions transfer to other creatures when within a certain range in combat, and this will take the form of a new field in condition definitions. This seems to be working, and the next step will be to hook up appropriate conditions, including airborne and contact-vector diseases.
Apart from all the above, I also fixed a bug that allowed players to sleep during encounters (e.g. ATN market). And the ATN map label should be fixed in the next build.
And since we finally figured out the endless turn bug, I reenabled the combat auto-turn-advance code, for when the player is unconscious for 2 or more turns in a row. This should help with tedious turn-ending when unconscious, and should also make it a bit more immersive. I'll keep an eye on it for misbehavior, though.
Lastly, happy freedom day, Americans! Hope you enjoy the long weekend, and get a chance to chill out. See y'all Monday!
Posted on 07/03/2014 - 17:06
As work continues on the new encounter and faction, I've been working on related items and features.
I've already mentioned gas masks, and I finally got those working today. One of the trickier things about gas masks is that they don't take electricity or other discrete items as charges. Rather, they slowly wear down a charge over time and use. I.e. their filters get worn out, and eventually need replacing.
This required a change to the discharge system, so I added a new charge profile field called "bDegrade." Items using a charge profile with this set to true will deduct item durability from the charges, rather than whole charges. Hence, the air filters in the gas mask will gradually approach 0%, and once they do, the gas mask stops providing benefit.
Related to this feature is the concept of immunity. For the gas mask to be useful, it needs to stop certain conditions from being applied. This is pretty easy to simulate in encounters, but almost impossible in regular gameplay. Since exploring hostile environments can be done on the map, and combat may include disease or toxins, I needed to add a special way to block conditions.
This turned out to be pretty easy, fortunately. I just added a new creature field called "SetImmunity," and conditions can add/remove IDs to the list the creature should be immune to. For example, the nanorobotic medkit not only removes gastroenteritis, but it can prevent the virus from incubating while the dosage is still active.
I also started working on another hazard which ties together the new gas mask with the existing Great Black Swamp area. Since the swamp is meant to be doused in toxic exfoliant, it makes sense that areas of that region should have dangerous atmospheric conditions. I'm hoping to make the gas mask useful in these cases, as well as in protecting against airborne diseases (which some creatures may be carrying in the future).
I think I've got the toxic fume effects figured out, and I've started codifying them. As part of this change, I separated the abdominal pains from poisoning so that other conditions could share the symptom. And as a result, poison is now a hidden condition. Players can still see the visible symptoms (abdominal pains, diarrhea), but it won't say "you have poison stage 2" anymore. Similarly, this new airborne toxin is likely to cause variable symptoms, but won't warn the player "you have exfoliant poisoning." The player will have to recognize that the headaches, vomiting, and other symptoms are an issue.
Finally, I took inventory of the remaining sound effects that were missing on items today, and organized that for Paul. He recently sent a new batch of sounds for some plastic items, berries, mushrooms, and such, and I hope to have those hooked up soon.
Overall, a pretty productive day! Have a good night, all. And see you tomorrow!
Posted on 07/02/2014 - 14:56
Since it has been relatively stable, I've just finished updating the default builds to 0.9922b on all sites. The "test" links are no longer necessary, and have been removed for now. This updates the following builds:
- Flash version on the official site
- Downloadable versions on official site
- Steam default builds
- Desura client and stand-alone builds (pending approval from Desura)
- DRM-free downloads at Humble Bundle, ShinyLoot, and IndieGameStand
New Game Over screen, one of the recent changes.
The changes included since 0.987b are pretty numerous, so I've wrapped them in spoiler tags to save space:
Fixed a bug that caused some AI to be hostile when first meeting player.
Fixed a bug that caused camp stats to ignore updates when item inside them switched modes.
Fixed a bug that caused camp stats to ignore items inside them when game loaded.
Fixed a bug that caused extra line breaks in encounters when loading data from xml.
Fixed a bug that caused duplicate recipes to be shown on crafting page when loading mods with overrides.
Added code to warn user on loading screen if item was listed in data but never defined.
Fixed a bug that caused game to crash when starting if a mod item was listed but undefined.
Fixed a bug that caused remapper to give mod recipe scraps wrong nGroupID, causing missing items.
Fixed a bug that caused bows and pistols to be missing default ammo.
Fixed a bug that caused demo Play button to be missing in new mod remapper version.
Fixed a bug that caused forest shack hexes to start with forest as scavenge location too often.
Fixed a bug that caused remapper to break when referencing items that hadn't been loaded yet.
Fixed a bug that caused mod remapping to fail if referencing a mod's data out of sequence.
Fixed a bug that caused treasure ID remapper errors in mod encounters.
Fixed a bug that caused hardware (computers, phones, etc.) to be treated as non-hardware when in a mod.
Fixed a bug that caused encumberance bar to turn green while still overloaded.
Fixed a bug that caused a soft crash due to triggering negative encounter IDs.
Fixed a game-breaking bug that happened when a non-encounter item was stuck to cursor after entering an encounter.
Changed LoseRandomItem to accept property ID instead of nGroupID (to support mods better).
Changed Add/Remove skill and trait conditions to be "Effect" type instead of "Field" type. To support modding IDs.
Changed remapper to handle mod-sensitive IDs within condition effects.
Fixed a bug that caused recipe loading to choose an out-of-index value. (Occasional stall during game load.)
Fixed a bug that caused encounters to ignore new mod encounters as outcomes.
Fixed a bug that caused items to be destroyed during crafting if inside containers that were destroyed.
Fixed a bug in the remapper that caused intra-mod dependencies to fail, due to loading order.
Fixed bug that caused recipe scraps to sometimes fail to load.
Fixed a bug that caused mods to remap ingredients incorrectly.
Fixed a bug that caused encounter triggers to happen on wrong hex types.
Fixed a bug that caused music to never fade out when options screen has non-100% music volume.
Added Paul's new audio for spears, bows, plastic bottles, rifles, tarps, shards, and arrows.
Added code to limit usage ATN food and healing services.
Added "wait" battle move, to help new players see they can skip combat turns (especially when recovering and AI demands surrender).
Changed shirt loot table so fur tunics and 3-dog-man t-shirts more rare.
Changed container loot table so backpack, duffle, and first aid kit more rare.
Changed junk loot table so sleds, carts, and painkillers more rare, and rubble/glass more common.
Changed loot tables so drugs are more rare.
Fixed a bug that caused save/load process to fail while loading games.
Fixed a bug that caused Zom Zom's entrance to be missing after talking to Stoat.
Fixed a bug that caused DMC map to zoom incorrectly when "Stretch" option was enabled.
Fixed a bug that caused ATN store items to be unidentified.
Fixed missing sounds in menu take/drop mode.
Fixed temperature/comfort bar calibration.
Fixed context menu size when in 4:3 mode.
Fixed talisman conversation with ATN warrior if player already visited ATN.
Added ability to load mods from different folders (see included readme.txt).
Added ability to specify mod loading order.
Added ability to refer to local mod data vs. base game data using ModName: prefix. (0: is base game).
Added ability to override base game data and images via folder 0.
Added t-shirt design contest items to game.
Added sound effects for several items.
Added new duffle bag item.
Added code to prevent stacking of identified and unidentified items.
Changed Game Over screen to show more stats and info.
Changed loading screen to show more loading debug info for modders (added text scrolling and loading row number).
Changed backpack slot to be 1 grid right and 2 down in all layouts, for better shoulder slot grid fit.
Changed mouse wheel to scroll message window instead of attack modes.
Changed forbidden hexes to be defined by xml instead of hard-coded.
Changed forbidden hexes to be allowed again if all encounter triggers for that hex expired.
Changed Allegan Fairgrounds to have manual entrance trigger after first visit.
Changed faction standings to be defined in xml factions table, not inside creatures.
Changed Strange Forest to have manual entrance trigger after first visit.
Changed Isotope Mine to have manual entrance trigger after first visit.
Changed Zom Zom's to have manual entrance trigger after first visit.
Changed Hatter location to have manual entrance trigger after first visit.
Changed Hidden Lake location to have manual entrance trigger after first visit.
Changed creaturesources to be defined by XML data. No longer hard-coded.
Changed factions to be defined by XML data. No longer hard-coded.
Changed frequency of hardware items in loot tables to be greater.
Changed sled frequency in loot tables to be lower.
Fixed loading progress bar to reflect all mods and overrides.
Fixed a bug that caused weather icon tooltip in screens where icon is not visible.
Fixed a bug in the deer pack spawn.
Fixed a bug that allowed items to be dragged from the crafting screen to real life and vice versa.
Fixed a treasure nesting bug in family/weapon/food encounter.
Fixed a bug that caused items to be auto-placed inside nested containers before top-level containers. (E.g. pills empty out into another pill bottle).
Fixed a bug that caused cryo facility to regain scavenge locations after saving/loading.
Fixed a bug that caused map hex visibility to get messed up after saving/loading.
Fixed a bug that caused lakes to have storage space.
Fixed a bug that caused duplicate items when crafting with tools that degraded in the process.
Fixed a bug that allowed skills to be dropped into unslotted traits.
Fixed a bug that caused traits to remain ghosted if their opposing skill was inside another trait that was unslotted.
Removed empty-out button when in a store that doesn't buy player's items.
The major changes to watch out for include:
- Loot frequency changes.
- New t-shirt design winners and duffle bag items.
- New item sound effects.
- New Game Over screen.
- ATN now more strict with its services.
- Mod-merging is supported (see included readme.txt and modding forum)
- Several bug fixes in both modding system and vanilla game.
As always, if there are any issues with the new build, let me know on the forums!
Posted on 06/30/2014 - 16:51
Hey Folks! Hope everyone had a good weekend. Our internet's still pretty flaky, so I'm going to type my news offline, and hope for a brief window to upload it.
First of all, v0.9922b seems like it might be good enough to replace v0.987b, so I'm going to try to do that this week. There are a few issues with it (there always are!), but I think the net package is an improvement over 0.987b.
For anyone worried about old v0.987b mods, you might be able to still use them with v0.9922b. I posted a sticky in the forums which explains how one can install new and old mods, in case your favorite mod hasn't been updated yet.
Obviously, with the internet connection unreliable, updates are going to be hard to do. I have a service tech coming from Shaw, but they won't get here until Friday. So I'll be limited in my internet until then.
Also, tomorrow (july 1st) is Canada day, so I won't be working. I should be back on Wednesday (July 2nd), however.
Finally, what did I do today? Well, I fixed a few bugs, for one thing. The "run" button had a few bugs that needed fixing, including extra fatigue penalties when in combat. So I took care of those.
There were also a couple mod-related bugs, which prevented certain mod content from working. Namely, battle moves were missing condition info, and recipes were sometimes breaking when overriding base recipes with mod ingredients. These have been fixed locally, and should make the next build (v0.993b and later).
I've also been working on some new code to support items that wear out other items when discharging. Most discharging items subtract whole items from their contents (like electric charges from batteries, or bullets from guns). However, some items wear down their charges instead (e.g. air filters in gas masks).
Since my new faction involves airborne toxins, I want to see if I can make gas masks more meaningful than just decorations. It would also let me add some more challenge to the Great Black Swamp, and open up the possibility of disease and airborne toxins. (Something I'm sure modders would use!)
So far, it's a bit flaky, though, so I need to work on it a bit more. If successful, I think it'll add another source of challenge and an interesting dimension to map travel/scavenging. More on this later.
Have a good holiday, fellow Canadians, and see you all Wednesday!
Posted on 06/27/2014 - 16:44
My internet access has been flaky today, so I'll post news quickly while I've got a window.
I just about finished adding all nodes for the new encounter in the editor, and it's a pretty big web of choices. All the branches and text are in place, and the next step is to start assigning game variables and other settings to each.
In addition, the new encounter location involves a faction, so I've been working on some new equipment:
I'm...too sexy for my sash.
There's another piece of equipment I did art for, but it might prove a bit trickier to add to the game. I need to figure out the best way to discharge/degrade it, as it works a bit differently than other items already in the game. That, and it would make sense to add one or two situations in which it can be used.
As a result, I may need to delve into the discharge and item degrade code, since it seems to be a confusing tangle right now.
There are also one or two new items I want to add after this, partially to help players reach this encounter (and others). There could be some fun additions in the future!
Also, it appears 0.9922b is holding up fairly well. Assuming there are no major issues with it over the weekend, that can probably become our new stable build. Fingers are crossed!
That's all for this week, however. So hope everyone has a good weekend!