Before moving on to new things, I had a few fixes to finish up from the previous week, namely ongoing issues with the Merchant and additions to the Love/Hate feature. The Love/Hate feature was simply a matter of adding a component to all enemies that labels them as a faction member. This allows their interactions to affect different factions’ relationships with Otto.
The Merchant was a bit trickier. There was an issue such that the Merchant could only be interacted with once to open the shop. Afterward, the shop became inaccessible. Quickly, I decided to make the shop open once a collider is triggered. Whenever Otto leaves the triggered area, though, the game object associated with the shop is turned off. This makes interaction almost like opening a new shop.
Unfortunately, it was still designed such that Otto couldn’t exit the shop and immediately enter it again, an issue for any player who closes the shop accidentally or realizes they forgot to do something before they left. Instead, they would have to exit the trigger collider and reenter it to access the shop again. To remedy this, I simply made another game object that was in charge of turning the shop object off immediately after the shop is closed. This allows it to be reopened immediately.
Paving My Own Path
Sometimes, when you need work to do, you need to make it for yourself. This past Monday and Tuesday, I found myself with few tasks that needed my attention. I resolved to make my own tasks by testing multiple playthroughs of Monochrome and making notes on things I could potentially work on. This worked perfectly. I was able to quickly get to work fixing small issues that, while not always game-breaking, were definitely detrimental to Otto’s journey.
Some of these included adding jokes for Icebox and Lamp to say when they’re not being interacted with for quests. It required some reconfiguring of certain components, but otherwise, fairly straightforward. The biggest one that I worked on was an unexpected camera shake during a cutscene during which Otto walks down a hallway with a Creeper. The shake was due to Otto trying to walk over multiple colliders.
This was a simple fix on paper, but in practice, it required a lot of tedious trial and error. Originally, I wanted to force Otto to spawn in a particular spot after a bout with the Creeper, but this couldn’t easily be saved the way I wanted it to be.
I decided to better control where the player begins interacting with the Creeper by shrinking its trigger collider and strategically shaping it. I also added a movement to the cutscene that has Otto walking towards a specific point before beginning their walk down the hallway. After experimenting with the timing, I achieved was I was looking for.
The team also received some new tasks later in the week from the top brass. These became a higher priority than my small to-do list I made for myself. I spent quite a bit of time working on some small things, such as editing some quest and HUD details, but the bulk of my energy went towards changing the basic wander methods used for enemies to move around in the world.
I spent an unusual amount of time deep in the code of some of our systems to better understand what I was working with. Instead of enemies moving in diagonal directions, we wanted them to move strictly horizontally and vertically. This meant changing the fundamental way that some functions operated.
The main change was creating new random variables to determine which direction the enemy should move and restricting it to right, left, up, and down. After that, there were some improvements to be made to reduce the amount of time enemies spent stuck in a single spot, which happens occasionally when the enemy reaches the edges of their mapped areas. This required more reading code than writing it.
Next week is a bit of an unknown in terms of specifics. I’ll be chipping away at the new tasks that the team has in order to bring the current build to the set expectations. However, exactly what I’ll be doing is largely dependant on what comes to light as the highest priority. There’s suddenly a lot to do, and on the chance that we can’t get it all done by the end of the month, we need to ensure that the most important stuff is done by then at the very least.
Recently, I started watching Star Wars with my girlfriend who has never seen the movies until now. Shortly after that, Mass Effect: Legendary Edition released. All of this got me craving some space exploration. I decided to get back into No Man’s Sky, a game synonymous with space exploration. Unfortunately, the game has little to offer other than some simple mining and economics. The game very much acts as a procedurally generated sandbox, so while the actual gameplay loop is simple and sometimes boring, it’s a fantastic game to play when you find yourself staring up at the stars and wondering what’s out there.