Fiancée Game – 07 – Enter the Companion

Estimated Hours of Work Since Last Update: ~11 plus a 4.5 hour dev stream

   Hey, a weekly update that’s actually on time! Not only that, but I’ve hammered out a decent amount of work this week, too, due to catching a really nasty head cold and otherwise not being up to doing much around the house.

   Last Saturday (the 2nd) I even streamed some development of Fiancée Game and had a really good time. Definitely going to do that again!

   Anyways, enough about all of that, time to dive into all the new things I’ve gotten plugged into the game this week!

The Companion
   The player’s companion has been implemented to the point where it’s combat effective. It derives all of its stats off of the player’s, so as the PC gains more power so does the companion.

   I still have to implement some display information for the companion and I feel that I need to tweak his final stat values a little bit, but overall he feels like he’s about where I want him to be.

   I dislike UI work. I find it incredibly tedious, even though Unity makes it easier than doing it by hand. Still, I actually got a decent amount of it done this week with regards to adding a character sheet to the game.

So I hear you have a thing for numbers…?

   I would say that I spent between four six hours getting the character sheet implemented to its current state. Most time was actually spent getting the information I wanted in the space that I had. As you can see above, there’s still room for just a little bit more information in the ‘Secondary Stats’ section but I don’t have anything to put there yet. I also still have to implement variable display for resistances, but I’m not in a rush to do that since they aren’t taken into account by anything yet. Graphically it’s a work in progress and I haven’t even started on the Companion character sheet, but it should mostly be copy/paste work. I also need to implement the character sheet (and skill sheet) closing the inventory and minimap when the player opens them on a screen with a resolution that has a width less than 1080 because otherwise they obscure the player’s inventory and gear.

   I also spent a few hours completely rewriting how the game handles tooltips. The previous method was sloppy and slow, now all tooltips pull their functions from the global functions script instead of having to do everything in their own script. I also changed how they display a bit; now if they’re an item or a skill they show the icon of whatever you’re mousing over in addition to providing the relevant info.

An item tooltip! Still a bit of a work in progress, but I like ’em better now.

   The combat saw a bit of work this week due to the addition of the Companion. I had to add functionality to all current ‘kill the thing’ scripts so that enemies will properly damage the Companion and so on.

   During the Dev Stream I implemented a victory screen that pops up after combat and gives the player a chance to grab their post-murder rewards. Assuming they survived. Item drops are added to a small ‘loot’ list and can be taken if the player desires. I’m planning on re-writing how the loot slots function in the coming week since they don’t currently support the rewritten tooltip system.

We survived a fight and even managed to snag an item out of it!

   In addition to the spoils of battle, the player can now gain levels. Currently a level grants you some bonus health and energy based on your class, three points to allocate to ability scores, and a skill point that can’t be used for anything quite yet. I’m hoping to have a rudimentary version of the skill system implemented by next week but it’s going to require some work on other systems to tie in functionality for things like passive skills.

Bug Fixes
   As per protocol there were a handful of bugs that I set out to take care of this week. I think that from now on I’m just going to copy/paste my notes on bug fixes instead of going into long paragraphs over them. So, for this week, I fixed the following:
   – Enemies at low health (2/22 HP on a kobold chief) have a full health bar display. Probably an error in handling the display as opposed to math error.
      – Yup. Display error. Didn’t take into account enemies with 1% – 9% health, only 10%+.

   – Null item returns when rolling for loot for a creature that has a loot table but doesn’t throw out any loot. Probably not really an error, just a poorly placed Debug.Log command.
      – I didn’t take into account the player just not rolling well enough to get loot. Whoops.

   – Torch timer counting down when not in ‘exploration’ mode.
      – 30 second fix. Made sure that the timer only counts down in exploration mode.

   – Doors (and secret doors) facing N/S don’t work because reasons.
      – Code was correct, but the script was referring to the door’s button’s worldspace position instead of the door’s. This lead to… problems.

   – Fix borked particle effect on N/S doors.
      – I was incorrectly getting the parent object’s rotation. Looking at the base rotation instead of getting it as a Euler angle.

   – Player Health/Energy bars do not move on the Y axis when re-positioning them in the UI. Has to do with their vertical resizing.
      – Linked their position on the Y axis to their parent object’s Y position. Easy fix.

   – Finally fixed all the null reference exceptions to things that exist. Was due to scripts looking for stats at the time of creation. I pushed the referencing code from Update to LateUpdate so everything has a chance to set itself up for proper referencing.

   – Gold drops at the end of combat are borked. Waaaaaay too high.
      – Was rolling dice based on min/max gold for an enemy instead of generating a number between min/max. Rookie mistake!

In Closing
   This was a really solid week for me with regards to getting things implemented in Fiancée Game. I’m hoping the coming weeks are as fruitful.

   As you might have noticed from the screenshots above, the worldspace looks a bit different. I’ve scrubbed out all of the realistic looking graphics and I’m aiming for a more 8-bit/16-bit feel to how the world looks. I just think it works better this way, plus it gives me an excuse to avoid having to 3d model decor for the world, I can just use 2d sprites instead. Fun!

   In the coming weeks I want to finish up the UI work that I need to do, which will amount to finishing off the Companion’s character sheet as well as the skill sheet. I also want to get tooltips implemented for non-skills/items so that a player could, for example, mouse over their might score and it would break down where its total is coming from.

   The biggest upcoming hurdle is that I also want to get skills for both players and enemies implemented into gameplay. Once that’s done I’m going to have to do some work on getting a proper AI routine put together for the enemies in combat. My experience working with AI is dated (very dated) so it should be a learning experience, to say the least. I’d also like to do more development streams; I had a really good time with the last one, though I’ll probably keep them a bit shorter than four-and-a-half hours.

   Until next time!

Leave a Reply

Your email address will not be published. Required fields are marked *