BTA Developer Blog 4: Abiding Quirkiness

From BTAWiki
Jump to navigation Jump to search

Welcome back to the BTA Developer Blog series, where I take a look and explain various topics for your entertainment and education. Today, we're talking a look at how BTA handles mech quirks.


So, we should answer the question: what is a mech quirk? Simply put, mech quirks are fixed components on mechs that provide some kind of passive benefit out of the box. An example would be the Champion's Easy to Pilot quirk, which is a fixed gyro that gives the Champion extra movement speed. Quirks as a concept feature in most large mods for HBS BT, BattleTech Extended, BTA, and RogueTech all have quirk systems, each with differences. We'll take a brief look at how BEX and RT do it, and then we'll look at how BTA does it and why they're different.


In BEX, quirks are handled programmatically, using a dll system named MechQuirks. Quirks are defined using a merged chassisdef file that says "mech has X quirk" and then the dll handles the effect. Quirks are not gear, they are effects. This is an important distinction, since in BTA/RT, quirks are gear. This approach has advantages: quirks don't take space on the mech, meaning that's more space for guns and heat sinks and ammo. It also has disadvantages: if you want to make a new quirk, you need to rebuild the dll with the code for the new quirk. It's not easily flexible but it can allow for things that gear can't do easily, such as maintenance times for mechs (which gear can't really replicate easily).


In RT, quirks are gear like they are in BTA, but they're handled differently. In RT, mechs have a quirk "slot" that the quirk sits in. This contrasts to BTA where quirks take up specific slots on mechs such as the cockpit or gyro. The advantages and disadvantages of the quirk being gear are the same in both RT and BTA but the slot usage is the defining difference.


As I assume most readers know, the quirks in BTA are pieces of gear that take fixed slots on the mech. Unlike BEX, we rely on gear, and unlike RT, we place the quirks in various places on the mech instead of a dedicated slot. Why does BTA do it this way? Several reasons. BTA doesn't use a dll system like BEX because I disliked the inflexibility of it. As we have it now, if I want a new kind of quirk, I can make it in 5 minutes by just defining a new status effect on a piece of gear, bam, done, easy. Using BEX's system of doing it with a dll, I'd have to have a team member code me the new effect, rebuild the dll for me, then I'd have to create a merge for the mech in question that applies the effect. This does mean that BTA is limited from certain effects such as cheaper/faster maintenance times/costs since gear can't replicate that, but I accepted this as a price for the speed and flexibility that a gear-based system allows. Note that this isn't a slur on BEX's system, it's quite powerful after all and permits some unique stuff that gear can't do, I just felt it wasn't what I wanted for BTA.


The larger question is: why doesn't BTA do it like RT, with a dedicated quirk slot? When I was implementing quirks for BTA the first time, I considered doing a quirk slot somehow (the method at the time was a little trickier than it would be now). However, I decided against it. The purpose of quirks is to differentiate chassis from each other, to make it so that a Champion and a Dragon felt different despite their surface similarities (both fast Inner Sphere 60 tonners). They differentiated by quirk. Under RT's system, all the core components of the Champion and Dragon could be swapped out, gyros and cockpits and engines and whatnot, all changeable. This means that, although the quirks are different, you could make them virtually identical beyond hardpoints. This seemed insufficiently distinguished to me. With BTA's system, because the Champion's quirk takes the gyro and the Dragon's takes a life support slot, you can't make the two mechs the same: you can't change the Champion's gyro but you can change the Dragon's. I like this, it means that chassis are slightly more distinct. One of the downsides of using MechEngineer for a fully customizable mechbay is that ME allows a dedicated player to make similar mechs (say, two 60 tonners) to look extremely similar except for hardpoints and their model. I like mechs being meaningfully distinct and fixed gear is a great way of creating that feeling, so BTA's quirks serve that purpose (same with structure being fixed on all chassis in BTA).


Is BTA's model a perfect system? No, not really. Having quirks take up highly desirable slots such as the gyro or cockpit has led to some complaints historically. However, I believe it is the best option for the end goal I want BTA's mechs to have: distinction between each other. Next time that you get a mech with a quirk in an awkward place, maybe remember this conversation and consider the upsides: that mech is unique, even if it's not perfectly optimized, and uniqueness brings replayability. That's the goal all along: making the game more playable time and again.