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