Author: GHostLPs

Fiancée Game – 09 – It’s Been a While

Estimated Hours of Work Since Last Update: ~40

   Oh. Hey! I have this blog thing that I totally haven’t been neglecting. I’m back!

   Update time! I’ve not had nearly as much time to work on Fiancée Game as I’d have liked over the past handful of months. I normally do my programming after work in the evening, but work has been particularly busy this year and has no signs of stopping so I’ve had to get work in where I could. I did manage to squeak in a pair of dev streams in May (Links for those interested: 1 | 2) which were a blast. I’d like to do more dev streams, if only because it forces me to sit down and work for a handful of hours without distraction. I feel that I’ve made a lot of progress given the time I’ve put in, all things considered. As per usual, if you want a more granular look at everything that’s taken place for this update, check out the Fiancée Game Trello.

   Apologies ahead of time for the lack of pictures. Most of the work on this update was on mechanics, not so much new features that are player-visible.

Old Become New
   The biggest chunk of time spent on this update was moving old systems to some much newer (and easier to work with) design choices. In the past, an enemy and a player were different types of objects as far as the game’s code was concerned. No longer is this the case. Now the player, companion, and enemies are all of the same stats_MOB class. This means that instead of having to do something like dealing damage three ways (once for the player, once for the companion, and once for enemies) I just do it one way. Nice!

   In addition to making a single mob class, I completely rewrote how items and the inventory were handled. Things are much faster now. There are still some improvements to be made in this area, but they’re far from necessary at the moment and I don’t even know if they’ll be needed in the final version of the game.

   I’ve mentioned it in the past, but I don’t much care for UI work. That said, on one evening I sat down and hammered a decent chunk of time into prettying up the UI for the game. I have to admit that it certainly feels more polished, if nothing else. I’ve also switched the default font from a blocky styled font over to Fontin, which most would recognize from Path of Exile.

The windows match and tooltips now have formatting! There’s still some work to be done, but the UI is getting there.

   There’s still more work to be done (as per protocol), but it’s certainly coming along nicely and looks much better than the stock gray windows I was using before. As you can see I also added prerequisites for skills, green prerequisites are ones you meet. Once a skill has all of its prerequisites met it will have a white outline instead of a red one. Skills with green outlines are ones that the player has learned.

   I also managed to squeeze in time to finally get the UI to properly orient itself based on the game’s window resolution. It looks pretty crappy on anything less than 1080p, but you can go all the way down to 720p and it’s still playable.

The Sounds of Battle
   While I previously implemented a very basic sound system into the game for playing music, I went a bit further and implemented a sound handler. This will allow me to play sounds for the player (novel, I know) in addition to whatever music. I threw in some placeholder sound effects for combat and they definitely make it feel much more like a proper game. I was very surprised by how much more like a proper game having even basic combat sound effects made Fiancée Game feel. I also implemented fading between tracks on the music player; no longer is switching areas in the middle of a music track super jarring.

   To go along with the above changes, I picked up a few sound packs from Epic Stock Media which I’m hopeful to get some use out of for this project as well as future ones. I’m likely to pick up a few more off of the Unity Asset Store at some point, but these delay that need a great deal.

General Optimization
   Among all of the above I did some optimization on particularly bloated bits of code. I improved tooltips so that they only draw once per frame instead of once per frame per object that could draw a tooltip (don’t ask). Also, at the suggestion of MadJackMcMad (the dev of Dungeonmans — go buy his game) I made some optimizations to how objects face the camera that had some pretty substantial positive effects on performance. I still need to get a proper billboarding system implemented, though.

   There’s still work to be done regarding UI optimization, mostly related to text display, but I’m to the point now where the amount of effort I’d have to put into it probably isn’t worth the gains I’d be looking at. The game runs perfectly fine with how things currently are and I’m debating over whether a fraction of a millisecond worth of frame draw time is worth refactoring a lot of old display code. Were this something I was planning to sell, I’d probably put the time in to fix these old issues, but as it is I probably won’t bother since the performance gains would likely be unnoticeable on anything but the poorest hardware.

New Mechanics
   I finally implemented a buff/debuff system to the game. It’s currently only used by the player for a pair of abilities in the rogue skill tree (Dervish and Smoke Bomb), but it certainly works!

   In addition to support for buffs, I changed how random item drops work. Combat can now result in a decent pile of loot for the lucky player. Where before each creature could drop only a single item, now they can drop many. Creatures have their own personal drop tables, but also share a much larger global drop table that has a chance to drop things based on a critter’s given level. With this change came a revised post-combat victory screen; the player has up to three pages worth of loot to tab through. There’s still a bit of work to be done on it; I want to disable page navigation when there aren’t multiple pages of loot, but that’s hardly a pressing matter.

The new post-combat victory screen. I’ll get a proper !!!VICTORY!!! header image up there eventually. Maybe.

   Along with changing how loot is portioned out to the player I also modified how monster spawning works. Previously, each monster spawner on the map had to be hand-tuned. That is, each had to be populated manually. Now, in addition to allowing that, I also implemented monster spawn tables. If, for example, I wanted an area of the map to swarm with generic undead I could just put together an undead_TrashMOBs spawn list and point a spawner to that instead of having to hand edit each spawner as I place them. This also makes expanding spawn lists much easier. Where I’d previously have to go back and add a new spawn to each spawner, now I can just add it to a single spawn list and all spawners that use that list will have access to the newly added critter beast. I figure 99% of spawners will use these spawn lists. The only ones I can think of off of my head that won’t are boss spawners and perhaps rare spawners that I may or may not hide around the world.

   As mentioned briefly above, I also implemented proper prerequisites for skills. Skills can now have both level requirements as well as skill requirements. I don’t expect the player will have much trouble meeting requirements for skills if they stick to one tree, but if they branch out they might have some issues. Skill points come quickly at early levels, but as the level count increases the rate of skill acquisition decreases. A character will only be gaining 40 skill points over 100 levels and half of those points come in the first 30 levels.

Balance is Changin’
   Finally, I did a bit of work on balancing numbers across the game. While I’m not super concerned about general game balance, I do want to avoid things being too crazy. Working with this in mind, I pulled the numbers down a little bit. Character stats at creation are now generally much lower on the high end — previously a class could hit a 32 in its primary stats before spending up to 10 bonus points on them — while the low ends are slightly lower. All classes now generate a number between 3 and 16 for each stat and have 8 points pre-assigned to them. Once that number is determined the player is given between 1 and 8 ‘bonus points’ to spend as they will. The highest stat a character can start with now is, in general, a 28. Magicians can hit a 32 Magic stat, but having a Magic stat that high is needed because they are so heavily dependent on their spells insta-gibbing things where other classes have enough survivability that they can afford to slug it out with enemies if need be (a magician starts with an average of about 15 HP, the lowest among other classes is roughly 30 — magicians are going to be Hard Mode™ in the early game).

   I’ve been putting some thought into how I want ability/spell costs to scale and while I’d originally thought to have them scale with level, I think I’ll keep them static and instead have Energy be a fairly limited resource. I want using abilities to have an impact in combat, and not something to generally be spammed (that’s what basic attacks are for). To offset this being overly cruel, I think I’m going to have a character’s Energy recharge to full after every combat. This keeps the player from having to worry about “saving it for a boss fight” and lets them really let loose if they’re in a dire situation or want to clear easy fights quickly.

That’s It
   That’s all I’ve got for this round of updates. I’m hopeful that the next update will come sooner rather than later, but only time will tell. I’ve been holding off on updates until I’ve got a decent amount of stuff to go over, but if folks would prefer more frequent incremental updates I could try that, too. Let me know in the comments what your thoughts are. Until next time! (I promise it won’t be ~4 months ’til the next update!)

Read More Fiancée Game – 09 – It’s Been a While

Dungeons & Dragons Online – Character Creation

   The first thing you’re going to be tasked with in DDO is creating your character. Unlike most MMORPGs it is completely possible to make a very suboptimal character at this point; there are a lot of bad choices that can be made if you don’t know what you’re doing. I’m going to highlight the basics of a character for you, but be sure to read tooltips carefully during character creation!

   The character that we’re going to be creating is a cleric/fighter with a focus on survivability and, later on, a decent amount of ass kicking with a sword and shield. This build should be able to get you through all quests on Normal difficulty as well as most quests on Hard difficulty with a bit of care and planning.

   I’m going to be writing this portion of the guide in the same progression you would take on the character creation screen, so let’s jump in! I’m also going to be working under the assumption that you are playing on a non-VIP account.

Character Generation
   Select “Spell.” Your style is what determines the group of starting classes you can choose from.

   We’ll be starting play as a cleric so that you can get a handle on how spellcasters work in DDO. The cleric class also gives you a solid baseline for surviving the hardships to come. You’ll be roughly 4th level by the time you get off of Korthos (Tutorial Island™), so don’t worry about not being super effective in a fight right off the bad.

   Choose “Customize” down at the bottom. The paths provided will choose your feats and skill progressions for you. They are not even remotely optimal for later game survival and should be avoided.

   Choose “Human.” Why a boring human? The bonus feat! You’re going to need all the feats you can get in DDO and being a human is an easy way to get an extra one. You also get 1 bonus skill point every level (4 at 1st level) which will offset our having an otherwise low Intelligence score. Don’t forget to also choose your gender at this point. Now let’s get into the cruncy parts of creating a character!

The choices up to this point.

Assign Your Ability Scores
   The first true choices set before you are your ability scores. This is also a point where, if you don’t know what you’re doing, you can make a really, really bad character. We won’t be doing that, though. Since you’re a fresh account you only have 28 points to spend on ability scores. As you play more, you’ll unlock the ability to create 30 and 32 point characters. Should you choose to reincarnate at end-game, you’ll be able to upgrade a character all the way up to 36 points. For the time being, though, I’d recommend the following spread of ability scores:
   Str: 16; Dex: 12; Con: 14
   Int: 8; Wis 14; Cha 10

The reasonings behind the above spread is as follows:
   Strength: You generally don’t want to spend points to get an 18 in an ability score unless you’re a caster and you’re boosting your spell DCs (it’s harder to find spell DC increases than attack/damage increases). A 16 strength gives you a solid baseline for melee effectiveness. By the end of the game expect your strength to be sitting in the ballpark of 50 (a +20 modifier), or so.
   Dexterity: A dexterity of 12 gives you a +1 modifier to your armor class which is the most you’ll be able to get in full plate armor (which you’ll be wearing). As you gain levels, this cap will increase, but so will your dexterity. You’ll be wanting to reach a dexterity of around 26 (a +8 modifier) by the time you’re at end game.
   Constitution: Regardless of what you’re playing you always want a constitution of at least 14 (12 if you’re a -2 Con race). The bonus hit points from this will keep you alive in the early game and will add up quite nicely at the end of the game. You’ll want as much constitution as you can get at the end of the game; work toward having a constitution of at least 30 (a +10 modifier) by the end of the game.
   Intelligence: We don’t care about intelligence because we don’t need many skills with this build and none of the skills or abilities we’ll be using are based off of intelligence. All we’ll be investing in skill-wise are the Heal and Use Magic Device (see Assign Your Skill Points below). Intelligence isn’t particularly important for this character so don’t expect to get it much higher than 20 (a +5 modifier) without more investment than is probably worth putting into it.
   Wisdom: Our wisdom score determines the maximum level of spells we can cast (Wis – 10 = max spell level) and it also grants us bonus spell points. A 14 baseline will guarantee us a 17 wisdom by the time we have access to +3 ability score items which will allow us to cast all of the spells we’ll need access to. We don’t care about our spell DCs since we’re not an offensive caster, and the bonus spell points granted by having a higher Wisdom can be supplemented by feats instead. By the end of the game expect your wisdom to be around 26 (a +8 modifier) or so.
   Charisma: Generally a dump stat, charisma is of some small use to all characters in DDO that focus on the Use Magic Device skill, which we will. That being said, we don’t need a lot of it since it won’t be something of use to us until we’re nearing end game. A cleric’s ability to Turn Undead is based on Charisma, but tends not to be worth investing in unless you also intend on working towards the divine might enhancement. A charisma score of 24 (a +7 modifier) or thereabouts should be more than attainable by the end of the game.

Assign Your Skill Points
   Time to tackle skills! This character is fairly easy with regards to skill point assignment. You’re going to have eight skill points to assign at this point and each skill can take up to four of them. Since our first level is a cleric level, we’re going to be maxing out two skills: Heal and Use Magic Device (UMD). Here’s why:
   Heal: This skill helps you stay alive. Every point in the heal skill grants you a point of positive spellpower which increases the effectiveness of your healing spells by 1%. It doesn’t sound like much, but it adds up surprisingly quickly!
   Use Magic Device: Truth-be-told, this skill is going to be almost completely useless to you until you’re nearing the level cap. That having been said, it’ll be incredibly useful once you get there. UMD lets you use magical items (such as wands and scrolls) that aren’t normally usable by you. This will let you gain access to some incredibly useful buffs (like displacement) and utility spells (like teleport).

   For all further cleric levels we take we’re going to want to spend our points as above: one point into Heal and half a point into UMD.

   Beginning at 2nd level we’re going to begin multiclassing into the fighter class. This means you have a small choice in how to spend your skill points. Whenever you take a fighter level you’ll want to spend a skill point on Use Magic Device. Since UMD is a cross-class skill this will grant only a .5 modifier, but over the 6 fighter levels we’ll be taking that’s a total +3 modifier to the skill. The other skill point you acquire can be used on either a half a point in Heal (totaling out to +3 to Heal by 20th level) or a whole point in Intimidate (totaling out to +6 to Intimidate by 20th level). Intimidate is useful if you are going to be playing with friends and want to take on a tanking role. If you’re going to be soloing almost exclusively, I recommend putting your skill points in Heal and UMD.

   It’s time to choose our feats! Feats are what make characters unique, in a sense; they offer abilities that can’t be acquired anywhere else and are typically the source of a fairly decent amount of a character’s given power. At first level we begin with three feats: one for being 1st level, one because we’re human, and one class feat. Choose the following:
   1st Level Feat: Shield Mastery – Shield Mastery gives us several handy bonuses. Physical resistance is great because it functions as a percentile reduction to any incoming physical damage we take, and the 10 points we get for using a tower shield (which we’ll be using) is very nice. 3% doublestrike means that every attack we make has a 3% chance to hit the target twice — it’s not a high chance, but extra damage is helpful. The +3 bonus to melee power is a flat percentile damage increase to all attacks we make with melee weapons. Very nice!
   Human Feat: Improved Shield Bash – Improved Shield Bash gives us a 20% chance to automatically make an attack with our shield every time we attack (up to once per second). This will happen surprisingly often and the additional damage will never be unwelcome.
   Class Feat: Follower of the Sovereign Host – We choose the Sovereign Host as our deity not only because their favored weapon (the longsword) is decent, but because once we reach 6th level in cleric we’ll also gain access to an incredibly potent healing ability. We’ll be fighting with longswords primarily until much later in the game.

Review Your Spells
   Have a quick look at all the spells you’ll have access to in your spellbook. You won’t be able to cast all of them, you’ll have to choose a select few for that honor. I’d recommend grabbing bless, cure light wounds, divine favor, or night shield as soon as you have the opportunity to do so. You will begin play with only cure light wounds prepared but you’ll gain access to a rest shrine where you can prepare your other spells a handful of minutes into the tutorial. A brief overview of why you’ll want this selection of spells is as follows:
   Bless: This AoE buff grants you a +1 morale bonus to attack rolls and on saving throws against fear. The bonus to attack rolls is fairly useful early on. Past low levels you’d probably be better off preparing divine favor, though. Lasts for 1 minute per cleric level you possess (minimum 5 minutes).
   Divine Favor: This self-only buff grants you a +1 luck bonus to both attack and damage rolls. This spell is something you’ll want to keep prepared even into end game. Luck bonuses to stats are very uncommon unless you happen to have a bard as a travelling companion. Lasts for 6 seconds per cleric level you possess (minimum 30 seconds).
   Cure Light Wounds: Your first healing spell. You have to have one of these prepared at every spell level you have access to. It’s cheap and heals for enough to keep you running around if you’re careful.
   Night Shield: Nightshield grants a +1 resistance bonus to saving throws (scaling up to +3 at cleric level 9), which is not particularly useful past 1st or 2nd level. The more important thing that it does, though, is that it grants you immunity to magic missiles. This immunity will save your life later in the game. Always have this spell prepared and applied. Lasts for 1 minute per cleric level you possess (minimum 5 minutes).

Summary & Your Appearance
   Finally, you’re provided a quick look through all of your stats up to this point. Make sure everything is where it needs to be and then hit next where you will then be given the ability to customize your character’s appearance, name them, as well as choose an alignment. Alignment used to be much more important than it is now, but I would recommend you align yourself in some way that has Good in it. Once you’re done with all of the above go ahead and click “Create.”

   I’ll see you all next time where we being our journey through Korthos. Until then, run through the tutorial and poke around town a bit. It’s time to begin your journey!

Welcome to DDO!
Read More Dungeons & Dragons Online – Character Creation