Difference between revisions of "Developer Blog"

From BTAWiki
Jump to navigation Jump to search
(Added Blog #3)
(Dev Blog 4 update)
Line 1: Line 1:
= BTA Developer Blog #3: Tanks For All The Fish =
+
= BTA Developer Blog #4: Abiding Quirkiness =
  
Welcome back to the BTA Developer Blog series, where I take a look at and explain various facets of BTA's design for your edification. Today I'm talking about tanks and why BTA's tanks are as they are. I'm covering a handful of topics here so strap in.
+
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.
  
One of the most common complaints we receive here at BTA Headquarters is about tanks: "they're overpowered, I hate them, why are they so broken?!" My response has been and remains that tanks aren't broken, they just take a little learning to figure out how to deal with. This has always been true. BTA's tanks are more durable than new players expect coming from vanilla and are programmed to be clever about what side faces the player so that they attempt to shield their damaged locations, giving a false sense of, forgive me, "tankiness". Add to this that BTA's tanks largely are more dangerous too, and you get the frequent complaint that tanks are overpowered. So the question is, why are our tanks like this? The reason is fairly basic: I wanted tanks to be more threatening. In vanilla HBS BT, tanks are essentially jokes. There's none with really serious armor and only a couple that are even vaguely threatening (the Demolisher and Schrek are about it, the Gallant Urban from Urban Warfare too). In the base game, tanks are jokes that might as well not be there for all the threat they pose. I don't like that, tanks have certain advantages in-setting that should be reflected in BTA. Tanks don't dedicate tonnage to cockpits or gyros or anything like that, they have more space for armor and guns. They can be a real threat if ignored, so BTA reflects this. I believe we've succeeded at making tanks dangerous but manageable with attention. Sometimes, that means you need to focus them over the mechs. Paradoxically, although tanks often have a lot of armor, they are sometimes squishier than might be expected. Because they have limited locations to take hits on, good focused fire can often crush a tank, even one with heavy armor, faster than an equivalent mech. Because mechs have more locations, they spread damage a lot more than tanks do.
 
  
 +
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.
  
There is one other quirkiness to address concerning playable tanks that's a little harder to explain: tanks getting stuck a lot. So, this is a little mechanical-focused, but essentially tanks getting stuck is a matter of their movement profile definitions. Tanks have movement profiles (wheeled, tracked, hover) that define how their movement interacts with terrain such as trees, rough terrain, or elevation changes. These values can change how they move around. Notably, mechs have these definitions as well. With tanks, to keep them semi-accurate to how these kinds of vehicles actually behave, the definitions are more restrictive than mech equivalents. This makes sense: a tracked vehicle is gonna have a harder time with water than a mech will since feet are better at moving through water than tracks are. The consequence of this being realistic is that sometimes, tanks get spawned somewhere they can't move off of (this is most common with hovercraft, which cannot move through trees at all and often get spawned inside of a forest). The biggest culprit is usually elevation issues, tanks can only manage certain steepness of slopes and if they're spawned on top of a hill that's too steep, they can't get down. There isn't a great fix to this: if we open up their movement profiles then they start behaving unusually (tracked tanks speeding through water like hovers, for instance, or going up and down sheer cliffs). We could try to set it so they can go over most stuff but not everything, but the math is tricky and there's not a good way to test anything. Some folks have suggested the 1-hex jump jet solution: just give everything 1 jet so they can hop and it'll be fixed. Problem is that giving tanks jets is impossible, tanks don't have the concept of jumping in the files so I couldn't give them a JJ if I wanted to. There just isn't a great way to fix this. We've already fiddled with the movement profiles some, though I'll keep an eye on it going forward.
 
  
 +
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).
  
However, tanks have a flip-side, the player side. See, in BTA we added the ability for tanks to be fieldable by the player, taking them from menace to menacing. Notably though, there's a few quirks. First, only some tanks can be used either by purchase or salvage. Second, *no* tanks can be modified, they come stock and that's what you get. Why are these two things true? A bunch of reasons. Let's start with tank modification. Having a mechbay for tanks isn't available in BTA for two reasons: it both can't be done and I don't want it to be done anyway. Tank modification currently is actively unable to be done by anyone (BTA, RT, anyone). Now, there's talk that that might be changing eventually, which brings us to the second, more salient, point: it is not my design that tank modification should be possible. Player tanks are intended to be support units, not primary units. They're available to players as a change of pace and as a fun option to mix up their drop decks. I don't really intend for tanks to be the stars of the ~~show~~mod. Further, allowing tank modification would require that tanks somehow have their canon building restrictions respected (example: non-ammo using energy weapons on tanks require enough standard heat sinks to be installed to totally neutralize the heat generated, that rule would need enforced somehow). How do we handle engines on tanks? Tanks don't work like mechs, where if you change the engine size the movement changes. Instead, tanks have their movement profiles hard-defined behind the scenes, you could just *remove* the engine and the tank would still be operational in-contract. That'd have to be enforced somehow. There's more, but I suspect the point has been made: enforcing tank build rules opens a really bad Pandora's Box that I'm not interested in opening for honestly minor gain. No thanks.
 
  
 +
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.
  
The second quirkiness of player tanks in BTA is that only some are available to the player. Why is this? Two-fold reasons. First, to make a tank playable in BTA requires a decent spot of work and I didn't want to do it for every tank for very minimal gain. Who's gonna actually want to field the Vedette Liao (2 Medium Lasers)? No one, that's who, why bother doing the work for something no one will use? There's a lot of tanks that, in all honesty, are fit for the OpFor but aren't interesting for players to command (Vedettes, Scorpions, J.Edgars, etc, these are just easy examples). It's fun to shoot Vedettes and watch them explode into flames. It's not as fun to drive the useless things and be a waste of 50 tons, so we just skipped the whole debate and saved people from wasting their time. This was a matter of smart use of effort and time. Second, like mentioned above, tanks are meant to be supporting units, not primary units. Tanks shouldn't be the stars of the show, but the supporting cast. They don't get prime billing in BTA and that's on purpose. To encourage this, the selection of tanks was largely centered on fire-support (direct and indirect alike) tanks or scouts, with only a small handful of main battle tanks such as the Manticore and Challenger. The majority of what's available are things like carriers or fast hovers, stuff meant to do a job, not be anchors of a combat line. Yeah tanks like the Devastator or Challenger are available but they're in the minority here as the goal was not to encourage 12 tank play but to encourage 8 mech/4 tank play. Moving artillery into tanks is sensible: it's what happens in-setting and that's for a reason. BTA reflects that by choice.
 
  
 +
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.
  
So there you go, BTA Tanks: a little quirky, a little weird, I think worth it and interesting. They can be difficult and frustrating but they're also fun to play with and change up the playstyle enough to be fun to work with. Give them a shot if you haven't already, just be aware of their weirdnesses.  
+
 
 +
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.
  
 
= Previous Developer Blogs =
 
= Previous Developer Blogs =
 +
 
[[BTA Developer Blog 1: BTA's Core Philosophy|BTA Developer Blog #1: BTA's Core Philosophy - 2021/5/18]]
 
[[BTA Developer Blog 1: BTA's Core Philosophy|BTA Developer Blog #1: BTA's Core Philosophy - 2021/5/18]]
  
Line 23: Line 28:
  
 
[[BTA Developer Blog 3: Tanks For All The Fish|BTA Developer Blog #3: Tanks For All The Fish - 2021/5/31]]
 
[[BTA Developer Blog 3: Tanks For All The Fish|BTA Developer Blog #3: Tanks For All The Fish - 2021/5/31]]
 +
 +
[[BTA Developers Blog 4: Abiding Quirkiness|BTA Developers Blog #4: Abiding Quirkiness - 2021/6/11]]
  
 
[[Category:Dev Blogs]]
 
[[Category:Dev Blogs]]

Revision as of 00:40, 12 June 2021

BTA Developer Blog #4: Abiding Quirkiness

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.

Previous Developer Blogs

BTA Developer Blog #1: BTA's Core Philosophy - 2021/5/18

BTA Developer Blog #2: BTA and the Clans - 2021/5/24

BTA Developer Blog #3: Tanks For All The Fish - 2021/5/31

BTA Developers Blog #4: Abiding Quirkiness - 2021/6/11