Fiancée Game – 11 – Big Stuff’s Done

Estimated Hours of Work Since Last Update: ~20

   One of these days, folks, I’ll get to a regular update schedule on this thing. Maybe. I hope. Probably not during Fiancee Game’s development. Anyways! Not a lot of time overall went into this update but a lot has been implemented here. Let’s get to it! As usual, if you’d like a more detailed look at everything that’s taken place for this update, check out the Fiancée Game Trello or follow me on Twitter.

   I’ve basically hit the point now where only a few major ‘systems’ remain to implement before I consider the game ready for the content/polish phase of its development. Shopping was one of the two major ones (the other being the conversation system). This turned out to be both easier and harder to implement than I’d thought it would be. Getting shopping working involved me having to rewrite how I handled drag-and-drop interactions between item slots. It also saw some updates to the tooltip system. There’s also finally an inhabitant in Towne, a trader. With the next update I’ll be adding some conversation to him as well.

[Left-click for .gif-y goodness!] Selling! Buying! All the things you expect at the minimum from a proper RPG!

   In an effort to get back on the dev train and get some work done, I decided to spend a few hours of a recent-ish Sunday stream doing some gamedev. The talky-talky system was the result. At least the bare bones bits of it. You can watch a VOD of the stream here if you’d like to watch me flail around. Overall the system was inspired by Baldur’s Gate and Neverwinter Nights. The UI style is my take on the Baldur’s Gate formula, but how the conversation system works ‘under the hood’ is very much inspired by the conversation system in Neverwinter Nights.

   Supported in the system as of now is the ability to check for variables on the player so that NPCs can tell if they’ve met the player in the past. I can also have conversation options cause effects in the world. Currently that’s limited to opening the shop, though. It’s designed to be stupidly easy to expand on, though. So yeah! This was the last big thing I had left to implement. Since this and the Shopping systems are done it’s mostly things that I consider much easier to implement that are left.

[Left-click for .gif-y goodness!] I’m basically Bioware now.

Other Features
   Partially to test selling items and partially as an eventual convenience feature, I added a new skill to the Adventurer skill tree: Transmutation. Transmutation opens a special slot in your inventory that essentially allows you to sell items while you’re out and about. You earn substantially less money from transmuted items, but it allows the option to keep adventuring should the player decide to do so. Unlocking this skill will require a bit of investment into the Adventurer skill tree, requiring learning two other skills before you can take it (those being the Item and Gold Hoarder skills, which increase item and gold drop rates respectively).

Sell loot from the convenience of the dungeon in which you found it!

   As part of getting the shopping systems implemented I also finally got around to making inventory and item/gear slots respect screen resolution. This means the inventory can be moved as needed and at higher resolutions I can basically stick it wherever I want on the screen should the need arise.

   In addition to the stuff above, I spent some time fleshing out systems that were already in place. Combat saw some additions, notable the ability for the player and companion to employ the Defend and Flee options in combat. The Defend action grants the user a small bonus to their Defense as well as granting them physical damage mitigation and resistance. On top of the defensive bonuses, Defend also grants a semi-potent combat buff on the round following defense that empowers the user. Finally, as long as a character is using the Defend action, they cannot be reduced to less than 1 hit point unless they’re already sitting at 1 hit point. This means that I can, at some point, implement horrific boss powers that will instagib pretty much anything, but can be avoided via clever use of the Defend option.

   Alongside defending is the ability to flee from combat. As of right now, the chance to flee is based on the difference between the player’s level and the average level of all enemies faced with some scaling to make fleeing from lower level enemies substantially easier. Fleeing does come at a price, doing so causes the player to drop a percentage of the gold that they’re carrying. I might implement some Adventurer skill tree abilities that lessen or remove gold drops if the player is fleeing from an enemy that is lower level than them.

QOL Stuff
   With all of the new features added, I also took some time to finally put in functions to make play a bit ‘cleaner.’ No longer does gameplay start with all the interface options open, everything closes as would be expected. I also now have the game assign your first skill point based on class where previously everyone just started with a free skill point.

   As per protocol I also squeaked in a few new pieces of gear that will turn up at some undetermined point. These items are basically the high end of what the player is going to be able to find in pre-expansion content.

No matter what I’m working on, I always make time to add gear. Props to anyone who catches the references for these items!
Read More Fiancée Game – 11 – Big Stuff’s Done

Foobar2000 – The Windows Soundfont

Okay, this post is a bit different from what I normally write about here, but after the journey I went through to figure this out, I figured I’d share it with the internet because I know I’m not the only person that’s been through this and the amount of help out there is minimal at best. Well, I’m here to help!

So you want your midi files played in Foobar2000 to sound like they do in Windows Media Player Classic or Winamp, but you’ve downloaded the foo_Midi component and the audio presets it comes with are… not good. So what do you do? You Google, of course! And all you come up with is a bunch of less-than-helpful posts from folks across the breadth of the internet. Well, I’m going to tell you step-by-step how to get Foobar2000’s midi component to sound just like it would if you were to play your music in Windows Media Player Classic or Winamp. Let’s get started!

First thing you’ll want to do is grab the foo_Midi component and get it installed. Once that’s done you need to grab your Windows soundfont. I’m running Windows 10 and the soundfont can be found in the “\Windows\System32\drivers” folder. You’re looking for a file called gm.dls. Copy it to your desktop or something, you don’t want to accidentally bork the original copy, so make a new one.

Once you’ve got your gm.dls file properly relocated, head on over to this site and download the demo of Extreme Sample Converter. You’ll only need the demo for this guide. Install it and boot the program. You’ll be greeted with the following:

Find your gm.dls file and before pressing convert, click the ‘Destination Format’ tab up in the menu bar. Look through the list and find “SF2 – Soundfont” and select the “Bank” sub-option. Once that’s done, go ahead and click the spiffy CONVERT button down below the file selection window. Give it a minute to convert your .dls file into a .sf2 file that Foobar2000’s midi component can work with. Once that’s done, it’s time to boot Foobar2000.

Once Foobar2000 is up and running, press Ctrl+P to open the preferences window. Navigate to the midi player component and set it up as shown here (be sure to set your SoundFont to gm.sf2!):

Having done that, mouse down to the Advanced option of the left menu. Open the “Playback” dropdown menu and then the “MIDI Player” dropdown. Change your settings to the following:

And that’s it. You’re done. When you play .midi files they should sound like the DOS games you probably remember from your youth. Enjoy!

Read More Foobar2000 – The Windows Soundfont

Fiancée Game – 10 – Nearing Feature Complete(-ish)

Estimated Hours of Work Since Last Update: ~27

   Time for another update! Work’s been particularly rough this year, on both fronts. I’ve definitely not had as much time to devote to Fiancée Game as I’d like, but I’ve made a great deal of progress in what time I’ve managed to squeak in here and there. I’d like to get at least one more dev stream in before the holidays start up full swing, but we’ll just have to wait and see if that’s possible. As usual, if you’d like a more detailed look at everything that’s taken place for this update, check out the Fiancée Game Trello or follow me on Twitter.

   The majority of this update has been mechanical and graphical updates to combat and many mechanics thereof. Since last time I’ve implemented the first tier of abilities for all the primary classes (magician, priestess, rogue, warrior), and fully completed the basic skills for the rogue (tiers 1 to 3). I’ve also added support for buffs/debuffs on all MOBs.


   In addition, I’ve finally gotten around to adding some animations to combat. It’s amazing how much better it feels to have enemies animating when they attack and having (basic) particle effects go off with attacks. There’s currently a bug in my particle implementation that causes it to only work when I’m testing it in the Unity editor, but I’ll get that fixed for the next update, ideally.

   To go alongside the combat updates I’ve gone ahead and gotten around to implementing a fair number of item properties. Mostly damage-dealing stuff, but properties like Stunning (has a small percent chance to stun an enemy on any attack) are also in there. If nothing else it gives me a large number of cool effects to work with.

Animations! Enemies flash red when they take damage and wiggle at the screen when they attack.

Character Creation
   Character creation has see an overhaul as well. The screen is now much clearer, has proper working tooltips, and I even managed to squeeze in a fifth class and added proper ability point allocation. Overall I’m much more pleased with the presentation. I’ve also gotten a proper ‘quick start’ implemented alongside finally getting around to implementing each class’s starting gear.

New and improved character creation.

   Character creation is now much cleaner looking than it used to be and also gives you more information on-screen. Alongside these implementations I also rebalanced starting class attributes to be generally lower than they were previously.

UI Improvement
   The UI has seen a bit of work, mostly in updating fonts and getting displays working as they should. We now have basic tooltips in the post-combat loot screen. I’ve decided against providing details for items found as part of loot, because I want the player to get an idea of what items are worth picking up through play as opposed to just mousing over everything and taking what’s worth the most money. The player won’t be able to actually gauge an item’s value until they take it to a shop to be sold.

Examining items after a fight gives you a little information, but not much.

   I’ve also finally gotten skill trees implemented to the point where I’m (more or less) happy with how they work with regards to UI functionality. I’m currently half working on getting them set to draw lines between skills that require one another (Backstab, for example, requires Shiv — I want the UI to automatically draw a line between the two skills), but it’s definitely a work in progress. I also got bored and added self-calculating values to tooltips; abilities that scale in effect now display their scaled numbers instead of giving a baseline and expecting the player to do math to figure out the proper numbers they’re working with.

Skill tree navigation and display. I still have some prettying up to do, but I’m happy with the layout. Lots of room to expand, too!

   Finally, I’ve updated how tooltips are displayed. While they look the same, they’re much faster to draw and use less system resources. I still have some work to do on them, notably adding a delay to when they actually appear on a mouse-over, but I’m fairly happy with how they work now.

What’s Left
   With this update I’m nearing the end of what I consider to be the most major hurdles of Fiancée Game: the major systems that make things work. I have a few left, but once they’re done it’ll be on to what I think is going to be the hard part of finishing the game: content development.

   The first of the two major systems remaining is the conversation system. I’m leaning very heavily towards a conversation system reminiscent of the Infinity Engine games, or Neverwinter Nights. Due to how they’re structured, I’m most likely going to throw together an editor in either Visual Basic of Visual C# that’ll let me put them together more easily than doing everything by hand. Before the conversation system is done I’ll need to to be able to have tests for various conversation options as well as the ability to fire off triggers so that I can start combat at the end of a fight, or reward the player for a completed quest.

   The second remaining system (and probably the first of the two that I’ll tackle) is the shop system. This is something that I probably should have implemented sooner, but I’ve wanted to get the core gameplay loop hammered out before I took the time to add something like this which I consider a less interesting part of the game. I’m planning on having the shop work on a stock system. There will be a handful of items that the shop always has in stock (basic gear, healing potion, and so on), but everything past that items will be available in limited numbers based off of what the player has sold. Item prices will also be variable based on the number currently in stock — the first few items of a given type will be worth much more than the tenth or twentieth versions. I’m also likely to have the shop’s

   I also want to tackle enemy AI and finally get around to implementing consumables, but I’m in no rush. I’m hoping to get some basic AI work done for the next update, notably adding the ability for enemies to employ special attacks, but I’m going to be spending most of my time focusing on getting the shop and conversation systems implemented. I foresee the conversation system in particular being a good challenge to get working how I want it to. I’m looking forward to it!

Read More Fiancée Game – 10 – Nearing Feature Complete(-ish)