Posted on 08/01/2014 - 16:17
I've just finished uploading new test beta 0.993b, which adds several new encounters, new toys, new dangers, and several tweaks and fixes
The build is available to anyone who owns the beta at bluebottlegames.com, or on Desura and Steam. Desura (and therefore, Groupees) users can use Desura Connect to gain access here, or even get their Steam keys and try it on Steam.
To access the test build on the official site, simply visit the beta page, and click any of the download links below the usual Windows, Mac, and Linux buttons.
Steam users can access the test build by opting into the beta for it.
Updates Included in the Test Beta
Michigan still has a few surprises in store...
Test beta 0.993b includes the following changes:
- Added new location and plot encounters.
- Added Blue Frog preacher and cultist to replace old generic Blue Frog.
- Added new Hatter encounters for some player choices.
- Added new queries to two NPCs, ATN, and GPS.
- Added player crosshairs to minimap.
- Added hex fading to minimap.
- Added giizhik smudge stick effects to some situations.
- Added ability to confiscate items in encounters, and give them back later.
- Added lockbox item to game.
- Added confiscate items to Zom Zom's and one other encounter.
- Added system object property to system objects in game (e.g. GUI containers) to avoid confiscation.
- Added new "SetWaypoint" property to AI so conditions can set and queue waypoints.
- Added "TriggerEncounter" to AI so AI can have conditions applied when reaching waypoint.
- Added AI waypoint code to support encounter trigger at end of each waypoint.
- Added "Player" precondition to all plot encounters, so only player can trigger them (now that AI can trigger, too).
- Added condition to allow crafting during some encounters.
- Added custom AI hex looting algorithm, so AI prefers better loot.
- Added code to prevent AI overloading self when looting.
- Added method on AICreature to add and remove conditions to player (for plot flags).
- Added PassTime method to creatures for condition use (e.g. pass 2 hours in encounter).
- Added code to ignore talisman when surrendering in combat.
- Added UVD items in 4 varieties, plus scratched.
- Added recipe to break UVDs and cases into plastic shards.
- Added swamp and forest crash site scavenge locations.
- Added nasal allergy condition.
- Added nasal allergy as accident to urban and brutish scavenging.
- Added new rubble camp type.
- Added new scavenge locale for Great Black Swamp.
- Added code to auto-advance combat turns if player is asleep for more than 2 consecutive turns.
- Added a new battle move to crawl away from battle if crippled and opponent is unconscious.
- Added defoliant and exposure condition.
- Added new field to conditions to set their transfer range to other creatures in combat.
- Added gas mask item, and situations where it can be useful.
- Added immunity field to creatures, so they can resist conditions.
- Added code to round move reserve left UI to 2 digits.
- Added code to remove "running" condition when entering combat.
- Added new torso slot depth (3) for sash and other items worn outside armor/fur.
- Changed map to have larger swamp area, with jagged boundary.
- Changed Stoat to always appear if player wearing cryo wristband, and not otherwise.
- Changed AI hex looting to use current lighting and detection level to check if camps are seen, instead of pure random number.
- Changed items screen silhouette to have better hit areas (filled gaps).
- Changed Merga Wraith AI to avoid charging in combat. Uses advance instead (to make escape possible).
- Changed poison condition so that abdominal pains are a separate condition, so other conditions can share effect.
- Changed poison condition to be invisible, and only symptoms visible.
- Changed Blue Frog spawn coordinates.
- Changed recipes to generate treasure items after game data is loaded, to avoid null pointer issues (cases with bNested=true).
- Changed pistol ranges from 10 to 30.
- Changed shotgun slug ranges to 60.
- Changed dirty rags treasure from 3-5 units to 4.
- Fixed a bug that prevented Hatter revisits from triggering.
- Fixed a bug that caused all items to be use-degraded in encounters, even if use charges were set to 0.
- Fixed several missing discharge values in scavenge encounters.
- Fixed a bug that caused repeated death messages in Game Over screen's "Final Moments." bd
- Fixed a bug that caused software to be missing in treasure that involved locked or uncharged hardware.
- Fixed a bug in AI setting player conditions.
- Fixed a bug that caused reverse recipes to generate extra tool in output.
- Fixed a bug that caused jar of eyes to not work in web version.
- Fixed bug that prevented crowbar use in locked storage shed if skilled in lockpicking.
- Fixed a bug that allowed players to sleep and rest during encounters.
- Fixed a bug that caused ATN to be unlabeled on map after visiting.
- Fixed a bug that caused infinite loop during loading if player added more than one mod with the same name.
- Fixed a bug that caused degrading discharges to stay active when charges completely spent.
- Fixed a bug that caused null pointer error when loading a game that had NPC with container in slot without visible capacity (e.g. head).
- Fixed a bug that caused item image overrides to be ignored if game is loaded in low-res mode.
- Fixed a bug that caused mod remap ID to be off by one in some cases when overriding data.
- Fixed a bug that caused mod battlemoves to have bad condition IDs, resulting in no effects.
This is a pretty huge update, and includes a mix of new and changed content, plus several fixes.
The biggest new feature is the new encounter, which involves two new locations with an updated faction. Some updates were made to old encounters, as well.
There are also a handful of new items in the game. As usual, some are more useful, while others are more for lore purposes.
The conditions and creature data types had a few upgrades, too. AI can now do things like queue waypoints, and trigger encounters at each waypoint (effectively setting game variables and performing actions). If you're a modder, it's worth noting the new properties on each, as your data may need to add info to those new fields.
Finally, there's a whack of fixes and tweaks, from weapon ranges to crafting.
As always, let me know what you think of the changes, and if you notice any issues with the new build!
Posted on 07/31/2014 - 16:33
I spent a good portion of the day working on an encounter where the player negotiates today. It was something I wanted to add after this new location was finished, as one possible reward for their efforts. It should offer some interesting options for the player, and might even open up some main goal questions I'll have to answer later. We'll have to see how it's received by players.
In addition to the new encounter content, I also resumed testing of the new location. And in doing so, I found and fixed a few bugs within. In the process, there were a few bugs in the general game that I found, as well.
The first was a problem with the way hardware and software pass through the treasure system. Normally, items with default treasure inside would get their items added correctly, and this worked for locked/uncharged hardware, too. However, if the device is considered locked or uncharged, treasures that have the "nested" property weren't adding correctly. E.g. a locked smartphone with default software inside would be fine, but software added as part of a treasure's "nesting" feature wouldn't work.
I managed to fix this, and it should fix some of the hardware-related treasures in the game. I have a suspicion that this may also be related to the crafting+hardware bugs we've been seeing.
I also found the cause to the repeated death messages on the "Game Over" screen. Looks like the screen fade-out was repeatedly collecting death messages instead of just doing it once.
Finally, I added a few new Hatter encounters for cases when the player tries to talk and Hatter won't see them. This should make it seem less like a bug when the player goes to talk to Hatter, but Hatter isn't available.
Testing will continue tomorrow, and I'm hoping I can get a test copy up soon. Have a good night, all!
Posted on 07/30/2014 - 16:01
I finished developing the follow-up encounter today, both mapping it out and hooking up variables. A lot of it was transcribed from Harald's spec, but I decided to change a few procedural details that meant some tweaking. (e.g. needed a different explanation for why a building was untouched for so many years)
That, and I wanted to slightly change how the player discovers this encounter. Let's just say it rewards those with a certain skillset :)
Now, I think all roads to this follow-up are complete, and the player can work through it no matter which path they choose. Tomorrow, I want to tie-up a few more loose ends elsewhere on the map. After that, some more testing, and hopefully an upload!
Posted on 07/29/2014 - 16:39
As mentioned this morning, I'm into the testing phase of the encounter now. My first run-through actually went pretty smoothly. But it wasn't too long before I started noticing some bugs and missing details.
The bug turned out to be in the code for AI setting conditions on the player when reaching waypoints. It was removing them correctly, but not adding them.
I also noticed some missing details and choices in the encounter, such as exit nodes, missing items to make choices, as well as missing items.
I spent a while working on "revisit" nodes, too. Like many encounter locations, I need to write stuff to handle the player revisiting the area after their first visit.
And while I was in the encounter editor, I decided to hook-up confiscation to Zom Zom's. ZZ's will now confiscate items like a nightclub would (bags, weapons, armor, etc.). This turned out to be a bit tricky, as I needed to avoid doing so before the player pays their admission fee.
I also decided to make Stoat a permanent character. Previously, he would only appear in 30% of all games, and even then, only if the player chose to be "stock." Instead, he now appears in all games when the player enters ZZ's with something he wants. (This is a precursor to perhaps adding more interaction with him later, time permitting.)
Overall, a pretty good day. Lots of tedious detail work, but it's all necessary to make the new encounter flow. More of that tomorrow, most likely!
Posted on 07/29/2014 - 09:40
Sorry for the missed post last night! I think I hit "Preview" instead of "Post," unfortunately. I blame the heat :)
Anyway, I meant to post that the latest encounter is finally hooked-up, and is now in the testing phase:
I still have a few follow-up encounters to do before it's ready, but they should be much smaller than the above image. (The small island of nodes at the bottom is the beginning of one, for example.)
Basically, I want there to be a few repercussions in the game world, so after the main encounter is done, certain variables should trigger different outcomes in other places. This may be something I add over time, though, depending on how solid the main encounter feels after testing. (That way, you guys get new stuff to try while I continue work.)
See you later tonight, when I (hopefully) remember to "Confirm" instead of "Preview"!
Posted on 07/25/2014 - 16:27
Yesterday's confiscation system seems to be working today. I was able to test it out in a variety of situations, and can now confiscate items, confiscate additional items without losing old ones, return them later, and lose them forever, as needed. I hooked-up the corresponding nodes in the new encounter, and there are endings that result in both getting items back and losing them.
I also managed to get through a few more "rooms" and "conversations" in the new encounter. I put those in quotes because some are more conceptual than literal rooms and talks. I still have maybe 1/4 of the encounter left at this point.
While I was in there, however, I ran into a situation I hadn't thought of before. One of the player's items might come in handy, so I wanted to reward those who had it. As such, I needed to ad-lib a bit of new content in the encounter, handling this situation.
In part, this meant making it possible to craft items while inside an encounter. Usually, this isn't possible due to time constraints or pressures preventing the player from sitting down with tools. However, this situation was a good case for letting the player, since the alternative would be to force players to prepare in advance without knowing what's ahead. And for such a long encounter, this seemed unlikely (and unfair).
So I added a special condition to the game that lets it know when the player can craft in the items screen during the current encounter node. There could be some other encounters where I should retrofit this new condition, but the good news is that if I miss any, it's available to modders, too.
In fact, I'm trying to make most of my new solutions to things modder-accessible, in case my judgement doesn't age well :)
Anyway, I setup this new ability, and wrote an alternate path. And furthermore, I retrofitted an old (very old!) encounter with a new path for this same item. More easter eggs for the vets!
That's all for this week. Hope everyone has a good weekend, and see you Monday!
Posted on 07/24/2014 - 17:01
I managed to get a good chunk of the new encounter hooked-up today. I estimate I'm now close to 2/3 finished with it. It was mostly smooth sailing today, hence the progress. Just creating treasure groups, conditions, and assigning items to encounter choices. Pretty straightforward.
I also figured out a decent way to solve the issue I identified yesterday with the logical gap. It turns out a slight detour in the text nodes helped make sense of it for the player path I was worried about. I just had to introduce a character in a different way, and hide some outcomes from that path.
One thing I ran into today, towards the end, was how to handle player items in a place where those items were confiscated. In the past, I've skirted this issue by either avoiding choices that allow item use (e.g. Zom Zom's, ATN) or simply ignoring it altogether (e.g. DMC unrealistically allows all items inside, which can sometimes be used in DMC encounters)
Today, there was yet another place where this issue popped up. The player was allegedly stripped of all items if they followed one path, but still had them if they chose another.
So I finally decided to look into a way of confiscating items in these cases:
New lockbox, and minimap.
On the left, in the image above, you can see the new lockbox item. When an encounter confiscates items, they go into this lockbox, which is hidden from view. Later, when the encounter is done, the items can be "unconfiscated," which will place this box on the ground.
This lockbox is a normal container, for the most part. It can be emptied-out, held in hands, etc., for the player to grab their items. However, it weighs 1 ton, so it cannot be moved. And if the player leaves anything inside it, those items can be lost later (if the encounter removes the lockbox, or uses it again).
I'll be making use of it in this new encounter. And perhaps if there's time, I'll see about adding it to the DMC and Zom Zom's.
Also new to the game is a minimap upgrade (above, right). I finally took some time to make it a bit clearer by adding crosshairs at the current player location, as well as dimming the hexes that are currently dimmed on the map. This should make it a bit more useful for determining the player's actual location.
Still plenty more work to do on this new encounter, but it is turning out to have many new surprises!
Posted on 07/23/2014 - 16:48
I was interviewed by No Crisis Yet!
A couple weeks ago, Jon Lynch discovered NEO Scavenger by accident, and was dumbfounded by how many hours he found himself sinking into the game. So he and Ben decided to make their show's first guest the dev behind this crazy "wasteland shoe peddler" game, yours truly :)
It's about 30 minutes of talking to me, followed by a discussion of Divinity: Original Sin and Yogventure. In it, I talk a bit about my choices, background, and mistakes. If you have some spare time, give it a listen!
Development continues on the new encounter, as I spent most of the day hooking up the spider web of nodes to game variables. I've finally got my AI doing his thing on the map and triggering game events, so it's back to making other encounter branches active.
During the process, I discovered a logical gap that I must've missed when mapping it out earlier. There were two similar events planned, but I think I only mapped one out and assumed it covered both cases. As such, I need to ad-lib some outcomes for the missing branch.
It's a bit daunting, as this missing branch could easily become a string of encounters on its own. That would be good for players in that they would have more content, but bad because it would delay things by many more weeks. Instead, I'm going to see if I can find a way to fill the gap efficiently for now, and if there's time later, I can expand on it.
Tomorrow promises more of the same encounter work. It's slow and tedious stuff, but it's definitely something players like consuming, so it's worth it.
Have a good night, all!
Posted on 07/22/2014 - 16:54
Work continued today on the AI mission code. I made a few changes to my previous system so it would be more reliable, and now the AI can have a list of waypoints and encounters to process in order. E.g. go to hex x,y, do encounters 1->2->3, then go to next hex, and next encounter, etc.
This way, I can get the AI to move around the map, and perform different actions in each location (setting variables on the player, adding/removing items, spawning creatures, etc.)
As a result, I now have my AI going to a special hex, and different things will happen if the player gets there first or not. As well as if the player intercepts the AI and then goes there. Pretty cool!
An interesting side-effect is that AI can also be derailed by other AI, so it's possible some NPCs could thwart an AI's mission. In theory, this could make the game a bit more dynamic, but we'll see if that's a good thing or not :) Could be chaotic.
Now that this is hooked up and the skeleton is working, I can continue hooking up the rest of the new encounter. And I'll still need to flesh-out this skeletal side-quest/consquences.
Should be some interesting stuff when done!
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!