Sunday, 19 August 2018

Sunday Progress Report

Hey, here's what I've been doing this week, getting pretty close to closing both outstanding epics (Battle and Items).



Battle:

- NPCs now have a proper 'dead' state, after which they effectively turn into containers.
- All erased events are removed from the $gameMap listing after battle, to free up their eventId and prevent rare weird bugs caused by Ids not being reassigned, or being reassigned incorrectly.
- Remove 'move' cursor when player starts walking to stop rare bug where event collision wasn't removed quick enough and the move route was cancelled- will revisit.
- 1-handed Quality of life improvements to battle controls, double click an action to confirm it, press any other action's button to cancel (press 3 to aim, press 3 again to shoot, press 1 to choose where to walk to, press 1 again to confirm and start processing move)
- General walk action refinements, removed some early, now-redundant checks and additional scripts
- Fixed a really rare, difficult-to-reproduce bug was fixed after weeks of vexing me- I'd accidentally given global scope to a single-letter variable, so under certain conditions it was being accessed and changed elsewhere, wrecking a concurrent for loop
- On the back of that, learned how to list all defined global variables and fixed all similar out-of-scope instances

Items:

- All NPCs and Containers have a priority for being picked up by the context system, so standing on dead NPC bodies won't prevent interaction with adjacent doors, living NPCs or containers or other high priority items occupying the same space as a dead NPC
- Dead NPC priority is affected by their inventory being full or not, stacks of dead bodies occupying the same position can be looted in turn systematically, empty bodies going to the bottom of the deck
- NPC and Container position, direction and contents stored and restored on exit/leave to circumvent the way RPGMaker resets events on room reload
- Contextual quality of life to container interaction, interacting with a locker before it's opened will open the locker, previously the player would need to open it with another key before being able to interact with its contents.
- Added item USE cases, which allow things like health regen by USEing food
- Added item pool probability to make some objects much more likely to show up than others.
- Added range for item quantities, so you're likely to come across a dozen rounds of ammunition, but only one handgun, for example.
- Set up item Schedule which makes 100% sure to place key items which NEED to drop in a specified room into a container or enemy inventory in this room.
- Player inventory, containers and enemy inventories are sorted alphabetically with key items listed alphabetically up top like:

Key A
Key C
Normal A
Normal B
Normal C

This happens once for containers and enemies on creation and happens for player on inventory open.
- Player inventory upgraded with the behaviour improvements I gave to containers last week


Misc:

I wrote about 60% of the story for the first mission last week, which informed some of my priorities this week and I've made 5 mins of new music, which I'd like to keep fresh for the first trailer, but I'll happily share on youtube if there's enough interest.

I spent two full days getting instruments and mastering set up to sound how I'd like and really happy with the results. Learning Javascript has also improved the way my DAW is set up, chaining instruments and effects more logically and things like that.
Hopefully my production sounds to others like the step up I think I'm hearing. It's hard to judge too definitively.

That's about it from me, this next week will be improvements to item lists, implementing proper weapon switching (switch out your main weapon with one the enemy dropped) and I think then it'll be complex enough to move onto completing the mission story and begin scripting it out.
I'll maybe take another day out to work exclusively on music, too, because I've got the bug.

Hope the week's been good to you,
Oko

No comments:

Post a Comment