Community Outreach – Dropping The Hammer On MegaMek

With the rising popularity of tabletop RPGs like Dungeons & Dragons and the desperation for players to continue their tabletop experience during years of COVID lockdowns, “virtual tabletop” is now a well-known term amongst most gamers. But before Roll20, Tabletop Simulator, and Foundry, a group of BattleTech fans began work on a project that would ensure their ability to play Classic BattleTech regardless of distance.

More than 20 years later, MegaMek continues to provide BattleTech fans with a free avenue to scratching their Classic BattleTech itch. Over the years, MegaMek has continued to grow with the BattleTech universe, adding units, technology, and features. MegaMek‘s importance to BattleTech as both an iterative tool and an easily accessible method for players to meet players cannot be overstated. That’s why this week, Sarna sits down with Hammer of the MegaMek development team to talk about the virtual tabletop. Enjoy.


Sean (Sarna): Welcome Hammer and thank you for agreeing to be interviewed by Sarna for your work with MegaMek, what I’m going to call a virtual tabletop, but you might call it something slightly different. 

MegaMek Icon

Hammer (MegaMek): No, you’re accurate. We’re not a game. We’re more like a virtual tabletop and it’s an important distinction to make.

Sean: Fair! Well, before we get into why it needs to be described as a virtual tabletop, how about you give us a brief introduction of yourself and your BattleTech bonafides. So, who are you? Briefly introduce yourself. 

Hammer: I go by Hammer online. My real name’s Dave.

I actually started playing BattleTech in 1985. I had a good friend of mine who invited me over to his house, really excited because he had just been given a game called Battledroids, and I’ll always remember that the first game was me in a Phoenix Hawk and him in a Wolverine. It involved just a lot of chaos as we figured the rules out, but ultimately I ended up beating the Wolverine, and from that point, I was hooked. 

So it’s funny, I begged and begged my folks that I wanted a copy of Battledroids. I’d been a big D&D player up until that point in time, so BattleTech was my first move away from Dungeons and Dragons. And oh my god, I must have pestered my mom and dad forever. Then on my birthday the next year, they arrived with the BattleTech box set, and I was really confused because my first impression was that I’d been given a different game. And it wasn’t until I opened it and started reading the rules that I was like, oh, wait a minute. This is the same game. I had no clue at that time why the name had changed, of course, and I’ve been hooked ever since. 

I’ve played every version of BattleTech, tabletop and digital. I love the universe. I will say as I’ve gotten older, I’ve come to appreciate the universe and the lore of the universe in a lot of ways more than the game, if you know what I mean.

Like I said, I love the game, but the universe is what really amazes me,  the history and the lore, and that’s what’s kept me interested.

“I love the game, but the universe is what really amazes me,  the history and the lore, and that’s what’s kept me interested.”

Sean: Alright, let’s get to the all-important question: what’s your favorite ‘Mech?

Hammer: You know, it’s funny. Even though my first kill was in the Phoenix Hawk, I would actually say that my go-to ‘Mech… It’s a tie, and I know this isn’t a popular choice, but I’m a big fan of the Enforcer. I don’t know, there’s just something about the AC/10 Large Laser combo and its mobility that just fits my playstyle. 

But what was interesting was when I read the lore and heard that Kerensky had an Orion, I took one for a test drive because I always felt it was kind of like a boring ‘Mech.

Sean: I always thought of the Orion as an oversized Centurion.

Hammer: Exactly, but the more I started playing it, the more I kind of realized, hey, this is actually a pretty good chassis. So, those are probably my two favorites if somebody comes to me and says, “What do you want to play?” Those are the first two that pop into my head more than any others. 

MegaMek Deployment Screen

Sean: Alright, very good. Well, let’s get on to the MegaMek questions. So, you described MegaMek as a virtual tabletop. Why is it important to describe MegaMek as a virtual tabletop? Especially when you’re describing it to someone who doesn’t know much about it.

Hammer: I think while there’s a lot of automation in MegaMek and people can perceive it as a game, it’s more like a virtual tabletop in that you have units that you’re moving around in a tabletop environment. It’s just we’ve automated the combat, we’ve automated a lot of the stuff. When HBS dropped BATTLETECH, there were a lot of comparisons with MegaMek, but at its heart, it has a closer feel to a virtual tabletop.

An interesting side note, just before the Kickstarter went live with HBS, Jordan Weisman was at Gen Con. I actually went up to meet him and I mentioned I was one of the MegaMek devs and he said, “Oh, we know you guys!” So that was a bit of a thrill. Plus hearing us mentioned a few times in their live streams was awesome. 

But the truth is, we’re closer to a tabletop than a game. Especially when you look into tools like MegaMekLab being a separate program and MekHQ being a campaign management tool. That’s kind of the better way to think of us.

“In the world of software development, I think MegaMek is probably the longest publically available download still technically in its alpha stage. We’re totally committed to releasing version 1.0 of MegMek sometime in January 2300.”

Sean: How long has MegaMek been in development, as well as its other components, MekHQ and MegaMekLab

Hammer: MegaMek actually got started in 2002. Okay, technically code started in 2001, but the code didn’t appear on SourceForge until 2002. Ben Mazur had been chatting with a lot of old gaming buddies, but they couldn’t get together, and they wanted a way to play BattleTech. Therefore, MegaMek was created. It always started as a desire to be a faithful recreation of the tabletop experience but on a computer, and then they automated the mechanics and complex rules and stuff for faster play.

We had our 20th anniversary a couple of years ago and we’re pushing 22 years now. In the world of software development, I think MegaMek is probably the longest publically available download still technically in its alpha stage. We’re totally committed to releasing version 1.0 of MegMek sometime in January 2300. I don’t know if I’ll be around to see that, but it’ll be quite the sight. 

Sean: I think it’ll be on schedule for the Kearny-Fuchida Drive

MegaMekLab Icon

Hammer: That’s the plan, yeah. If we follow the timeline, right? 

MegaMekLab hit the ground in June of 2008. It started primarily as a way for people to make units that could be played inside MegaMek, and over the years it’s evolved from originally just being able to do ‘Mechs to right now, we’re probably one of the most functional builders out there. We can build almost every unit and print record sheets or Alpha Strike cards for almost everything. Except for some of the more obscure units like large naval craft, some of the big support vehicles, mobile structures, that’s the type of stuff that we don’t have. If you can play it in MegaMek, we can generally build it and print a record sheet in MegaMekLab

A lot of people complain about its UI, which truthfully is a problem with all the programs. But we’re constantly tweaking and innovating it and trying to improve it, trying to make it more usable.

Our big claim to fame that we’re very, very proud of is that (at this time) the official record sheets that you see in the books are produced by MegaMekLab.

That then leads us to Mek Headquarters or MekHQ. That went public in July of 2011. That got started when players started to say, “Hey, we’d love an automated tool where we can play campaigns with MegaMek.” In the last few years, it’s become the driving program of the three. People come into MekHQ because they want that build-a-mercenary-unit experience, that campaign experience, that they had in HBS’ BATTLETECH.

And then MegaMek affords the ability to play it, MegaMekLab allows them to create that custom ‘Mech’ that everybody just loves about BattleTech; that tinkering ability. 

Sean: Everybody’s gotta have their own ‘Mech. 

MekHQ Icon

Hammer: So what’s kind of interesting about the three programs is, of course, they’re designed to interact and work with each other.

MegaMek and MegaMekLab are designed to be very, very faithful to the tabletop rules. We do not like to implement custom rules we did in the past. We are very focused on those canon construction rules and canon tabletop play rules.

MekHQ is our playground. We borrow heavily from the old Merc Handbook rules and Campaign Operations, of course, but we’ve introduced a ton of our own stuff there in MekHQ, which players have absolutely loved the last couple of years.

It’s been jokingly referred to as MekSims because, for example, you can get married, have kids and even randomly die from a horrible disease or old age. Your kids can grow up and take over the unit. We’ve had players who’ve had babies that have been born with natural aptitude, gunnery, and oblique attacker. That’s an interesting one if you think of a baby with an oblique attacker.

And the campaign stories that we’ve had out of MekHQ are unbelievable. I created a battalion at the fall of the Star League. They started playing as mercs in 2784. I played that campaign in MekHQ to 3004 with that unit. At its peak, it was two regiments. At its lowest point, it was a company. 

I was poking around and I found that I had a mechanic that was over 200 years old, going back to the original unit that I forgot to kill of old age. But the fun thing about that was it was like the great, great-granddaughter of the infantry platoon commander of the original unit who was running the unit in 3004. So you can see why that has a huge appeal for BattleTech players they can recreate their own version of the GDL. 

Sean: That sounds a lot like Crusader Kings if you’ve heard of that game. A lot of management of inheritance and keeping track of specific character traits.

Hammer: Yeah, very familiar with CK

Sean: How big is MegaMek? As in, how many downloads have you had? And do you have an idea of active player counts? And if there are any kind of organized player tournaments in MegaMek

Hammer: So we don’t actually have software that tracks active players in the programs. I’ll put that right out there, ‘cause I know people are going to be nervous about the whole, “Oh, am I being spied on thing?” We don’t, but I can tell you that since October 2020 MegaMek has had 44,000 independent downloads. MekLab has had 23,000 independent downloads. And here’s the whopper, because MekHQ has all three programs under one, in one download; we’ve had 126,000 MekHQ individual downloads.

Sean: That’s a lot! 

“I will say that the pandemic led to a huge explosion in our player base.”

Hammer: Now those are individual downloads. So it means that since October 2020, the programs have been downloaded close to 193,000 times individually. Now that could be people downloading the same program over and over, it could be bots downloading it. 

If we use our Discord, we have roughly 3,500 members on our Discord. We are one of the bigger Discords for the BattleTech community that’s out there. We have members from all over the world in Discord, but predominantly the US, Canada, UK, and Germany are where we see most of our players. And that matches up, with the history of BattleTech quite nicely.

On average, we see 3,000 new downloads over the course of the first two weeks of a new release. So, based on all of that, I would probably say we probably got a few thousand players or users of the programs in various capacities over there.

MegaMek used to be optimized for player versus player over the internet. That’s how it got its start. The rise of Attack the Bot and Stratcon has kind of moved the programs more into the solo-player world. 

There are regular tournaments around. There are a few Discords that are out there that run tournaments. MRC Hub comes to mind. We have a find-a-game channel that regularly has players asking, “Hey, can we get connected to just blow crap up between each other?” 

I will say that the pandemic led to a huge explosion in our player base. For example, in 2020 a lot of the Commandos were starting to say as part of the organized play, “You can do your organized play through MegaMek.” 

So that kind of gives us a sense of our player base. We’re not at an HBS level, but we’re pretty proud of what we’ve accomplished as an all-volunteer project.

Sean: You mentioned previously that the official record sheets are actually using MegaMekLab. Has MegaMek been officially recognized by any of BattleTech’s license holders, like Catalyst or Microsoft? And I suppose the answer to that will lead to my next question because I did notice in the game that you refer to ‘Mechs with a different spelling.

MegaMek DropShips

Hammer: The answer is no; we are an unofficial product. MegaMek sits in a very weird licensing place. Being digital, we actually fall under Microsoft, but because we’re using the tabletop stuff, that puts us also with one foot in the Catalyst/Topps world as well.

Topps, Catalyst, and Microsoft are very aware of our existence, but because we are completely free, and we go to great lengths to avoid any IP infringement, they’re content to let us be. We made it crystal clear to all the parties that we will never intentionally do something to infringe on the IP or damage the IP.

And our relationships are such that if they were to come to us and say, “Hey, you guys are close to the line,” we would instantly fix and correct whatever needed to happen. I think the best way to describe our relationships is—especially with us producing the record sheets—we’re no different than Microsoft Word or Adobe. We’re a tool. We are incredibly proud to be a tool that’s used to help grow and support the BattleTech universe and player base.

“Topps, Catalyst, and Microsoft are very aware of our existence, but because we are completely free, and we go to great lengths to avoid any IP infringement, they’re content to let us be.”

So to your ‘Mech question: that’s absolutely right. ‘Mech is trademarked. We do our best to avoid ‘Mech, but the truth of the matter is we do use it more than we probably should.

Sean: I understand that both Hammer and MegaMek are tools that like to be used.

Hammer: Haha, yeah something like that. 

Sean: Moving on, I originally gave it a try sometime in the 2010s, before HBS’s BATTLETECH. At the time, it was a very rudimentary kind of virtual tabletop, as you said, not really a video game, so I put it down and didn’t think much of it. I reacquainted myself with MegaMek before this interview and things seem to have come a fairly long way. So the next questions will be dealing with MegaMek as a program. 

Hammer: Sounds good.

Sean: So, right now, it seems that MegaMek has some rudimentary audio notifications to let you know when things are kind of happening on the battlefield. Have you ever thought about expanding that into including things along the lines of virtual tabletops for D&D where there are spell explosions and arrow thwips? What about firing PPCs and laser blasts and big explosions or the sounds of ‘Mechs crashing into each other during physical combat? 

MegaMek Artillery Turrets

Hammer: It’s a two-parter to this one. I’m just gonna say the MegaMek ping is a legendary sound. It’ll either drive people to insanity or bring a smile to their faces. The funny thing was we had years of people saying, get rid of the ping. So we got rid of the ping, and the next thing we know, we have endless people going, “Where’s the ping?” And we brought it back and then set up a whole bunch of options around it.

The bad news is the nature of how MegaMek runs, the phases, and how it presents the data. ‘Cause if you think about it, it’s just a page you read with the results. We don’t have a good way to do sound effects in there because basically what happens is we do the phase, and you get the results in that written format. Imagine simultaneously playing audio effects for every single one of those resolutions.

Sean: Hmm, yeah.  

Hammer: We’d also looked into if there would be a way to do simple animations years ago. But what it really comes down to is the design of how you do a phase, you read the results, you do a phase, you read the results, really prohibits and eliminates us from bringing in sound effects and animations. This is another reason I say we’re more like a virtual tabletop than a true game because a true game would actually present all of that stuff sequentially.

That’s kind of the quick answer to it. Personally, I’d love to see some animations and some sound effects, but I’ve been told by multiple coders over the years It’s just not going to be a practical thing to do. In fact, we’ve had a request with a sample for years, but again not something easy to implement

Sean: I can see where it’d be difficult to entirely change the structure of how information is presented just so you could insert animations and sound effects, but also how it’s sort of nice for all that information to be presented all at once so it’s more efficient.

What I did find impressive was that when I was making each side for this little fight I had in MegaMek, every single ‘Mech had a lore-accurate token showing the unit in a top-down view. That includes both very new designs and some very, very old ones.

MegaMek BV Reporting

Hammer: I wanna do a shout-out for our sprites. We have 6,894 unique sprites. All the battle armor, all the ‘Mechs, all the ProtoMechs, all the vehicles have been made by Deadborder. His attention to detail is unbelievable, and in many cases, he’s remade some of these sprites eight or nine times just to get them perfect.

The thing that’s amazing about Deadborder’s work is, If you go to an Atlas in the unit selector and just start tapping down, the sprite changes as you go to the different variants. Some of those sprites are literally only changed by one or two pixels. 

The other fun thing about the sprites is the units are done on 84 by 72 pixels—that’s how small the sprite images are that he works in. He’s created a uniform look that matches all the official TRO art. And the second Catalyst releases a new anything with art, within literally a couple of weeks, we have updated sprites available from that new art or new variants. That said, we’d love an artist who wanted to do the same attention to detail for the AeroSpace stuff because we really don’t have the same variety on the AeroSpace side. 

As for the units, if it has a record sheet, it’s probably in MegaMek. So if you were to go through them all, and if you see a record sheet, and it’s a unit that we can make, it’ll be in there.

“If it has a record sheet, it’s probably in MegaMek.”

I haven’t looked at it in a while, but we probably have about 90 percent of the units that are available for play. We don’t have some of that stuff, such as large watercraft, but we do have all the ‘Mechs, ProtoMechs, and all the battle armor in four, five, and six-squad configurations. You want to play the Bounty Hunter and his Nighthawk armor? We have a solo one for that. Basically, we’ve made a huge effort in the last few years to align things with the MUL. We’ve added the MUL ID to all our units and with a click in the unit selector, you can go to the unit’s MUL page.

What’s kind of fun with battle armor, you can go in and actually configure their individual infantry weapons. You want to take an Elemental and have them walking around with a Mauser IIC? You could do that. 

But yeah, we basically have pretty much everything. The one thing that I will say, though, is we have a very strict moratorium. To be honest, I do a lot of the record sheets for Catalyst so in theory we could put them into MegaMek right away, but then people stop buying books and that doesn’t support the game or the universe. So we have a 60-day moratorium from the date of publication to when it will be in MegaMek. That roughly coincides with our release cycles, which works out kind of nicely.

Sean: Sarna has the same 60-day moratorium for new content before people can start making or changing any existing articles on the site based on new material. We know how that goes.

Hammer: We use Sarna extensively for our fluff text in the units, and we also—because I’m lazy—often use your guys’ calendars to determine when moratoriums are up.

MekHQ 3

Sean: Well, we keep good track of the moratorium, because of course nobody wants to step on Catalyst’s toes, and everybody wants to make sure the game stays healthy.

Alright, let’s move on to some of the other things that you have: MegaMekLab, the place where you can make your custom ‘Mechs, and MekHQ, where you can make your own custom campaigns, characters, and even go on multi-generational stories using the characters that you create.

How complex is it to integrate these three separate apps, and has modularity become more important in MegaMek‘s development as new features come up? 

Hammer: The thing about Java is its object-oriented programming. The programs really try to take advantage of Java’s write-once-run-anywhere capacities. For example, when MegaMekLab was made, It actually used a huge amount of the information and underlying code in MegaMek. So the nice thing is the programs and their modularity just kind of exist naturally because of Java.

Now it does take some planning and thought because MegaMek and MegaMekLab are very much attached at the hip. The rules are based strictly on what’s written. If we wanna implement a weapon in MegaMek, the construction rules are naturally gonna transfer into MegaMekLab as we implement it. But this is also the reason we can’t add custom equipment easily to the programs. We are looking into modernizing aspects of the code that could open the door to tweak existing stats or eventually add custom equipment. But that is a plan and still a ways off. 

MekHQ is a bit of a different beast. It pulls the data in from the other programs. That’s where our equipment and units come from. That in turn drives our unit markets, parts, and all things equipment. Anything equipment pulls from those programs. But again, that modularity is built-in. But MekHQ has its own huge database, systems, factions, academies, etc that runs separately from MegaMek and MegaMekLab. But the nature of Java and our data can go back and forth between the programs.

I will give you an example. We did a pilot portrait pack years ago and then created the ability to randomize pilot portraits in MekHQ. It was huge. Everybody loved it. And then all of a sudden, we had a chorus of people coming, “Oh, wait a minute. Why is it that in MekHQ I can randomly generate a pilot image, but I can’t do that in MegaMek?” There’s stuff that we’ve got to remember to backport sometimes, but it’s more MekHQ hitting MegaMek is the problem than MegaMek hitting the others, and MegaMekLab is the good kid. It just kind of hangs out and behaves and does what MegaMek tells it.

MegaMek Dark Mode

Our modularity has always been there. But we’ve learned you can’t do one thing; you gotta think about how that impacts MegaMekLab or how it impacts MekHQ. We have had some fun bugs over the years where we’ve inadvertently done something and created something bizarre down the road or in the other programs.

But it is complex, and because we’re a volunteer group of devs, devs come and go, and they contribute how they want to. We’re the caretakers of the code. We’re caretakers of the past and the protectors of the future.

We want to make sure what we put in doesn’t break what’s in there, but at the same time, it lays the groundwork to build on for the future. Where we often get problems—because it’s open source—people can fork the code. We have had a lot of people who will come in and suddenly say, “Hey, I’m going to refactor your server class, and then what I’m going to do is I’m going to implement mobile structures for you guys.” And we will look at them and say, “No, you’re not going to do that. If you submit that code to us. We’re not going to accept it.”

“We’re the caretakers of the code. We’re caretakers of the past and the protectors of the future.”

Part of it is you’ve got to earn a little bit of street cred by proving that you understand a 20-year-old code base. Because this code base takes some delicate handling. It’s kind of like handling the quirks of a 680-year-old Icarus. You’ve got to learn the code not only be able to code.

But all that said, we welcome people who want to jump in and help contribute to the code, expand it, and develop it.

One final note I will put in. We’re trying to modernize a lot of this old code. Something I will also add is we have the 20-year-old code base that’s been run by volunteers of varying skill sets over the years. Decisions that were made five or ten years ago within the limits of their skills, and what Java could do impact us hugely today. 

A lot of times we’ll get a player, for example, come to us and say, “Hey I want to add a custom rotary ERPPC with a plasma burst mode.” Now, we’re going to tell them that we will never implement that because that’s not canon. But we’ll also say you’re welcome to code that yourself because we don’t have a good way to just add custom equipment. Decisions around how equipment was coded in the beginning create issues for us today. 

MegaMek Unit Selector

We’re trying to modernize the code base, get better stability, and take advantage of some of Java’s new features and improvements. It’s a process. We have a phenomenal team of contributors and developers. The amount of code, quality of code, and what they’re doing with the code blows me away given how long I’ve been with the projects. We have a really great (but small) group of Test Pilots (QA) who are invaluable in catching and finding issues before something gets released. 

Sean: That’s just occurred to me; Java is fairly old. I mean, it’s still being updated, but it’s still a very old programming language. Has it become a problem that new people want to contribute but just don’t understand enough Java to help?

Hammer: We actually have a lot of people that’ll come in and they say, “Oh you know, I learned C or C#  or C++ ” or any of the other languages, “and I can’t code in Java.” And we say to them, “Well, actually, if you can code in those, you can probably code in Java.” We had one of the new MekHQ developers—he really had no coding background—come in and implement two of the most complex pieces of code I’ve ever seen put into MekHQ. That was somebody who didn’t have a huge code background but had a good head for coding. 

“We have a phenomenal team of contributors and developers. The amount of code, quality of code, and what they’re doing with the code blows me away given how long I’ve been with the projects.”

Java has a bit of a stigma, and I don’t think it’s a fair stigma.

I did a podcast interview a couple of years ago, and they asked me, “If you could change something with MegaMek from the past, what would you do?” And we said we probably would have—had it been around—coded it in Unity. Which if you think about it, would mean the programs would effectively look a lot like HBS’s BATTLETECH

Sean: Yeah. We don’t want to step on any copyright toes. 

The next question you might find amusing. I set up a single-player quick match between myself and the built-in AI called Princess, and I gave myself a 50-ton, 1500-point-value, advantage, and I don’t think I got a single kill. She just completely tore me apart. Why is Princess so mean? And what should I have done to make her less mean? There were a few sliders to adjust her AI, but I didn’t know what any of them really did so I just left them in the default position, which was apparently enough to kick my ass.

Hammer: Okay, so I gotta give you some back history. Princess is… well, we actually think of her as our famous little sociopath. 

Sean: What.

Princess At Work Meme

Hammer: Because she is. She’s a complete sociopath. When we describe Princess to people—are you familiar with the fire girl meme?

Sean: You mean the meme with the little girl who’s smiling at the camera while a house fire burns in the background, implying she’s the one who lit the fire?

Hammer: That’s what we describe Princess as. We use the fire girl meme.

Prior to Princess, we used to have what was known as Testbot. And Testbot, I would describe him as a distinguished old gentleman. He was very methodical, very slow, really very easy to beat. And then one day, a student working on a university project came to us and said, “I’ve coded a new bot that plays faster than Testbot.” At the time we wanted to replace Testbot, so we grabbed that code and Princess was born. In a matter of a year, everybody was using her over Testbot just because she was infinitely faster and, in a lot of ways, better. On September 4th, 2023 Testbot was officially retired and was last seen grumbling about damn kids. 

“Princess is… well, we actually think of her as our famous little sociopath.”

To answer your question about how to beat Princess; because she’s a little sociopath, she only thinks about the turn she’s in. She’s an expert at analyzing where the optimum positions are for the best modifiers. So she knows how to get herself into the best possible position to move and hit. And if she gets initiative, she will generally school you nine times out of ten. Once you learn that her pattern is always to maximize her ability to hit and minimize her ability to take hits, you can quickly start to predict where she will end up and where she will go, and then you can slowly turn the tables on it.

Something that we have done with Princess and on the forums and in social media—Is create a bit of persona for her she’s developed a bit of a reputation. We’re always talking about how we send her to the Blackjack School Of Conflict to learn things. So, over the years, she’s learned to fly AeroSpace fighters, she’s learned to use artillery, she’s learned to counter-battery, she’s always learning. In fact, we’ve recently taught her to use double-blind, called shots, and optimize her ammo loadout and use them. We’ve also got some big improvements to her pathfinding, all this coming in 0.50.0.

When we taught her to bomb, I put up a spectacular image where I put a Supernova of Smoke Jaguar ‘Mechs on the map. I gave her one AeroSpace fighter and loaded it up with fuel-air explosives, and she was smart enough to fly across the map and time the release to drop something like eight small fuel-air explosive bombs in a way that optimized the hit on that Supernova and basically wiped it out. And the whole time she’s doing that, you have that deranged fire girl meme image in your head as she heads off. 

MegaMek Firing

So that kind of is the key thing to remember about how Princess works. What’s kind of interesting is we’ve talked about the fact that we need to teach her to think turn over turn, but the nature of how Princess is coded, she would effectively need to have a commander bot that would run that. And that is something we’ve nicknamed Duchess. One day we’ll get around to coding Duchess, and Duchess will then run multiple Princesses. 

Sean: Okay, so it would just be like one Princess per ‘Mech sort of thing? 

Hammer: You can do that. But to your point about what those sliders do when you set up Princess’s configuration, you can program her with things.

So for example in a sniper role, she’ll try and stay a little further away. If you set her to one of the new roles, which is berserker, she’s like an alien. Her goal is to close to one hex where she will either beat you to death, or she dies. That catches a lot of new players off guard.

What’s really been interesting about Princess is people started playing Against the Bot, and they’d beat her even if out-numbered four to one. As we’ve made Princess more efficient, smarter, and more capable, people are now starting to find that being outnumbered or out-Battle-Valued by her is a dangerous proposition if they don’t know her patterns.

The other thing you can do for Princess is add more Princesses and subdivide the force.. Let’s say you have a company that’s predominantly LRM-equipped ‘Mechs put all the LRM units to one Princess and set her to be a LRM Missile Boat. Also If you were to give all three lances their own Princess, that’ll play faster, but the three Lances don’t know how to talk to each other or coordinate with each other. Different Princesses with different roles can really change things up. But remember the Princesses don’t talk to each other. Lots of people complain she can be slow but if she’s got 12 Locusts or fast VTOLs that’s a lot of move calculations and she’ll slow down. But boosting memory to MegaMek really can help her. 

Eventually, that’ll evolve to create Duchess. But it’s the screenshots and the fun stories that come out of our little sociopath that are truly amazing. We are proud of our girl and we’ve got some nasty stuff planned for her as she works on her Doctorate at Blackjack. 

MegaMek Alpha Strike Support Card

Sean: I may have made things a little more difficult for myself by using the 3150 tech base. Obviously, that uses all the available technology in the ilClan era. What would you recommend for newcomers to MegaMek to make things easier as they get familiar with the virtual tabletop without having to worry about advanced rules for things like ECM and C3? 

Hammer: So there’s a couple of different parts to this answer. Part number one that we need to stress is due to the copyright, we can’t include the rules of BattleTech in MegaMek. Everybody comes into MegaMek and complains that we’re not explaining what’s happening, and then we have to say we can’t explain what’s happening. But if you go to the Catalyst web store, you can buy a box set or download the quick start rules. So the first piece of the answer is, you really have to know the rules or have access to them.

“A YouTuber recently did a review on MegaMek, and he described the programs as mutated corporate stock management software from the early 2000s, which I think describes our look beautifully.”

A YouTuber recently did a review on MegaMek, and he described the programs as mutated corporate stock management software from the early 2000s, which I think describes our look beautifully. They’re dead on with our look, which means that the learning curve is… very steep and we’re not intuitive. We don’t have a pretty interface and we will never have a pretty interface. Thank you, Java. 

Sean: I mean, I was still able to understand what was going on, so it’s not entirely obtuse. 

Hammer: We have a lot of players come in and go from HBS to MegaMek to tabletop. We’ve even had MechWarrior to MegaMek to tabletop, which I find a very interesting approach. 

We have so many options. If you go into the game options, you can turn various rules on, you can turn rules off. So what I always say to new players when they’re getting in is, if you’ve got the Quickstart rules, only turn on the things that are in the Quickstart rule set. If you’ve got A Game of Armored Combat, only turn on the rules that are in A Game of Armored Combat. Then we often recommend players move to the BattleMech Manual just because that book is brilliantly laid out for learners. I’ll also add that we have a Client Settings that can customize a lot of the look and feel in MegaMek and MegaMekLab. But MekHQ has a long way to go for customization for looks. 

MegaMek In-game Tooltips

We have a shocking number of players who do this, but they will come in new to the program, they go to the game options, and they think to themselves, “I’m playing Call of Duty, so I’m going to put this on hard difficulty,” and then they tick off every rule not knowing what they do. Then the next thing they know, they are in a world of hurt.

Let’s be honest, MegaMek‘s big advantage is the ability to play with every rule on or customize the rules you want to use. But on tabletop you will almost never find anybody who is going to play double-blind in a snowstorm at night on a low-G planet. And MegaMek looks at that and goes, which edge do you want to start on? When you layer all of that stuff together, and if you know the rules, and you can figure out our cryptic UI, you’re set. 

The example I always use is, we get people in all the time and say, “I have a tank with two turrets and I can’t figure out how to rotate the turrets.” And then we say to them, did you look at the right-click menus? And they’re like, “You guys have right-click menus?” Yeah, click on the unit and right-click.

MegaMek Tooltip Image

We’ve had a group of developers come in over the last few years who have made a staggering amount of improvements to how we present information via tooltips. That’s starting to become really popular with players.

One of the things I will say is, we suck at documentation because we’re all volunteers and most of us don’t want to write how we do a feature. What’s been amazing in the last few years is we have some Twitch streamers out there like Casual_Joker who runs a stream up until recently on a very regular basis and you can watch his stream and learn pretty much everything.

He’s done some fantastic tutorials. StrategosLevel3 has done a huge set of YouTube tutorials around the programs. If you just Google MegaMek or MekHQ on Twitch or YouTube, you can find a huge amount of videos. And on the official forums, in the MegaMek subforum, we actually have a pinned post that lists all the tutorials that we’ve found for new players to come in and watch.

Just this morning somebody said, “I can’t figure out AeroSpace,” and I sent him a link to the video tutorial, and an hour later he came back and said, “Oh, now I get it. These rules are complex.”

Sean: Yes, yes, they are. Let’s move on to the next thing, which was your move to the milestone system. Previously, you had what I thought was pretty standard: a stable release version, which you would say, here’s the one you should probably be downloading, and the development version, which you said, this is what we’re working on and it could be full of bugs. And even though I reported on this a couple of months ago, I still don’t really get the difference between a milestone and a stable release.

Is this just kind of an admission that milestones might also still be slightly buggy but still more stable than the development side? Maybe dumb it down for someone who’s not a programmer.

“When we had Stable and Development, it sort of worked, but—and here’s the big but—we found that there were a few things that continuously caused problems for us.”

Hammer: When we had Stable and Development, it sort of worked, but—and here’s the big but—we found that there were a few things that continuously caused problems for us. 

We put out our 0.46.0 Stable, but ironically, our 0.46.0 Stable actually had some wicked bugs in it. Like really, really wicked bugs, but we had a huge player base that moved to 0.46.0 Stable. It was bad enough that we had to create a 0.46.1 Stable to deal with them. We then proceeded with development releases of 0.47.x, and what happened was we realized after 18 months we hadn’t made a Stable release. What happens is everybody would have to stop what they were doing and switch to bug-fix mode, and then we’d start putting out releases that were heavily focused on bug fixes and not much new.

As a general comment Developers like doing new stuff. They’ll fix bugs on stuff they’ve implemented, but they don’t want to fix other people’s bugs. What happened was any of the momentum for development would start to slow as we prepare to go into a Stable. Because everybody dreaded hearing about Stable, it would take six months to get a stable out from when we decided, and then things would stagnate. We realized we needed to change and that led to the Milestone system. It allows us to continuously develop. 

MegaMek Range Brackets

The biggest difference—and this is a key difference—with a Stable release, we would go to the community and say, “It’s Stable.” Here is an example of how Stable and Development causes issues, we release something, and a couple of weeks later, if we don’t get any major bugs off that release then that one could have been a Stable and we realize we missed the chance to have a new Stable. Our 0.49.7-Dev is an example of this, we did it for the 20th anniversary. That should have been a Stable. We had a few things that weren’t quite ready, so we kept that as a Development release. Then after it was released, in hindsight, we kicked ourselves for not calling it a Stable. 

By moving to the  Milestone system, we’re able to get new Milestones out faster. It also allows the community to identify what are good releases to leapfrog to. And it allows us as developers to keep developing rather than stopping doing months of only bug fixes.

Sean: Is that going to perhaps extend the difference between the development and the milestone versions if some of those developers get really far ahead on something? 

“By moving to the  Milestone system, we’re able to get new Milestones out faster. It also allows the community to identify what are good releases to leapfrog to.”

Hammer: That could happen in theory. But because we’re taking that community feedback in, we could call a Milestone at any time, which gives us that ability to go back and declare it a Milestone.

For the record, we do have milestones in mind. Like, we knew when we dropped 0.49.20 that has the most code we’ve ever pushed in a release. We knew that there was no chance anywhere in the Inner Sphere that was going to be a Milestone release. We know when 0.50 drops, there is no way it can be a Milestone release with the move to Java 17. But we have a couple of numbers in mind in the 50s where we want to make sure that we get those closer to milestones. 

Part of it is that Stable term really hurt us. We would get players coming in and saying, “I watched the video and why can’t I have a dark mode?” Or, “I need that overlay that shows the firing ranges.” And we would say to them, you need to move to the Development releases. “Oh, I don’t want to do that. I’m scared to run experimental software on my computer.”

And no matter how much you try to explain to them that Development releases just mean it’s more likely to have bugs doesn’t mean that it’s experimental software that’s gonna break everything… Somebody once said to me that they thought Development releases were like being in the development path for Microsoft Windows, where you’d download a Windows build, and all of a sudden your video card wouldn’t work. We’d be like, yeah, no, we’re nothing like that. These are the reasons we decided to move to the Milestone system. 

MegaMek Night Battle

Sean: MegaMek doesn’t quite go that far. 

Hammer: True! The real goal behind that Milestone idea is to let the community say, “This is a good release.” And then we can confirm and say, yeah, that’s a good, stable release. So if you’re on 49.15, it’s safe for you to move your game to .49.19, and then hypothetically, 0.50.03.

We actually have a surprising number of players now who actually just stay in the Development chain and then wait a few releases, which was the other reason we moved to a milestone system; players were naturally doing it. In the Discord and forums, they’re saying things like, “You can’t go near 0.49.14, it’s garbage, but 0.49.15 is really good. Go to 0.49.15.” So we just said, well, if the players are telling other players where to go, why don’t we as developers come out and say that’s where you should be? 

Sean: I noticed that when I was downloading MegaMek, I needed to get Java 17, even though I had Java 11, and there’s already talk about moving to Java 21. What is up with these moves to these other Javas? Is it always because of end-of-life issues, or is it because there are new features? And is there a big advantage to updating Java with the version on which MegaMek actually runs?

Hammer: So every time there’s a new Java version, you’re looking for what they call their LTS version, which is their long-term support version. That’s the ones they anticipate being in place for years and that are getting the security patches and updates. Java 11 was end-of-life in September 2023, so there’s a chance there could be security issues or holes in it that can leave your computer vulnerable. 

Number two is stability and reliability. The big deal for us is performance improvements. The example I used is we can take long lines of code and cut it down now to a few lines of code. Every time we do that means that we can get more efficient code, which in theory makes things run faster. There are also sometimes new ways to code. I remember when we moved from eight to 11, some of the developers were super excited about some of the changes to how arrays worked. All this means that MegaMek runs faster, runs more efficiently. 

Java 17 will be end-of-life come September 2026, and when that comes we need to prepare for the next LTS of Java, which they’ve already announced will be Java 21. So anybody who upgrades to Java 17 today is good to play MegaMek for a while.

MegaMek Movement Helper

Sean: So many Javas! Is there any way of packaging the correct version with MegaMek so it’s all just one download?

Hammer: We have looked into that. We’re not going to say it’s impossible, part of the reason why we don’t is due to licensing and bundling. If we bundle Java version X with a release, that means that version of Java is always associated with that release. If you decide to go back to a version and we have Java bundled,  you’re going to get a prompt that you’re about to overwrite a newer version of Java with our older bundled version, and not everyone’s computer literate. We always want players to stay on a fairly current version of Java.

The other issue is building an installer. We all would love something like a wizard, but it isn’t in the cards yet. We’d like to do something like an installer for MegaMek, but you would still need to manage Java separately. And for a volunteer team where people come and go, it’s probably safer to keep things separate.

“My greatest wish playing MegaMek is to one day play a Star League-era campaign where you’re storming a Castle Brian, have Rattlers running around the field, orbital bombardment, and all that stuff.”

Sean: Fair enough. If you could wave a magic wand and just make anything happen in MegaMek that you haven’t been able to do, what would it be?

Hammer: Rattlers

Sean: Rattlers?

Hammer: Mobile structures. 

Sean: Okay.

Hammer: Okay. I’ll be serious. My greatest wish playing MegaMek is to one day play a Star League-era campaign where you’re storming a Castle Brian, have Rattlers running around the field, orbital bombardment, and all that stuff.

But truthfully, what I would really want a magic wand to do is to get all the MegaMek rules fully up to date with the current errata and all the rules we have unimplemented. For example, Ghost Targets is one that comes up all the time for us. We use the original implementation of Ghost Targets. The new version of Ghost Targets is tricky by the nature of how it’s written. We then create confusion for players by having old rules around. 

MekHQ Stratcon CC

And as an extension of that, I would love a magic wand that would write documentation for us, or write how-tos.  We’ve been having some conversations—behind the scenes—about whether there’s an opportunity to have AI write manuals, guides, or references. Now there’s AI that can read code, and in theory could do that. But we haven’t made any decisions plus we don’t want to give  Princess access to AI. She already has a Skynet ambition.

I guess what I’m saying here is it’s not so much a magic wand as we need a staff of power to do all the stuff. Mobile structures, orbital bombardments, replay the First Succession War, all of that.

Sean: Storming Terra could be pretty wild.

Hammer: We actually did have a developer play around with building space-to-surface interfaces, but the old code killed us on that one. We need to fix a bunch of stuff before we can do that. We actually got to the point where you could play on the space map, go all the way through, drop from space to the planet, and land on the map.

But the code was dead-ended because it just didn’t work properly. We need to modernize the code base to be able to do that.

Sean: What is in store for MegaMek in the future? What’s going to be happening in the near term, maybe later this year, and what can you tease players with for perhaps next year or the year after that?

Hammer: Probably the stuff that’s coming up right away is the Java 17 stuff. Players are going to need Java 17 in preparation for the August release (0.50.0), which definitely won’t be a Milestone but it’ll be a big release. Some of the stuff we’re looking at is boring code modernization that will help us get MegaMek playing better. We’re hoping that’ll get less bugs and crashes in certain situations 

I’m going to be starting to assemble that mini fluff pack I advertised. I would love to hear from any mini painters who read this article. We would love to see your minis if you wanted to include them in a pack to show off. 

Fluff Pack Sample UI

We launched the first Story Arc of our narrative campaign system in 0.49.20, which was ‘Young Wolves.’ We’re hoping by the end of the year to have an editor out so players can make their own story arcs. Once players start turning those in, we’d be more than happy to add the good ones to MegaMek releases. 

We have a MekHQ developer that has implemented Auto Medals, and an Education Module – send your Mechwarrior to BlackJack to get a degree and have dinner with Princess. Lots of interesting stuff planned for MekHQ to expand the MekSims experience.

I’ll say that Sarna was pretty invaluable for that education module. We searched pretty much every university that you guys had on Sarna to put in the game. Now it’s not only in the game, but it’s mapped with a curriculum too. 

We’re looking at creating a background module, so if you’re making a role-playing character, you’ll have a childhood that then links into the education module. In theory, you’d have a background, then a childhood, they get sent for education, and then they come back as a brat and take over the unit. 

“Princess has been spending a lot of time at Blackjack. And we’ve been teaching her about ammunition and how to switch ammunition.”

Princess has been spending a lot of time at Blackjack. And we’ve been teaching her about ammunition and how to switch ammunition. She’s got a much better understanding of double-blind, pathing around dangerous terrain, and we’ve taught her when to switch to AP Ammo and do a called shot. 

Sean: Okay, so she’s got armor-piercing ammo now?

Hammer: Yes, so if you have a ‘Mech, you could load her up with standard rounds and AP rounds. She will now know when to use AP rounds and when to use standard rounds. For an LBX, she’ll learn to optimize when to use cluster versus solid shot. And here’s a terrifying side note: the developer on that gave her the ability to randomly generate ammo.

Sean: That would keep you guessing. 

Hammer: And randomly generated. He opens the lobby and there’s an Arrow IV UrbanMech in there and he says, “Oh, I wonder what the ammo loadout is.” And she’d randomly rolled up Davy Crocketts for it. The thing about Princess and nuclear weapons, our coding means she’s just going to close the point-blank and fire it. We’ve recently added the ability to create custom ammo loadouts and Princess will know how to select and use all of that. 

MekHQ Interstellar Map

You know, we got a lot of stuff we’re talking about, but a big part of it is going to come back to where this code modernization works out. That code modernization will open the doors for large naval craft. Potentially it’ll open the door for things like improvements to our building code. It opens the door for all sorts of rules that we’ve just basically haven’t been able to implement the way the code base is currently written.

I would love to put a plug for players to join our Discord. It’s a good community. It’s a welcoming and open community. It’s very helpful and we’d love to see it grow and expand. As an extension of that, we hope people see and read the article and say, “I’d love to contribute to MegaMek, but I don’t know how.” And they can come and join us on Discord and chat. 

And if you’re not a coder, a simple way to help is with data management, because I’m the only data guy on the team currently. Another simple way to help if you love playing MegaMek, and have a good head for bugs, we have a group called the Test Pilots.

“The real heroes of MegaMek are the guys who contribute the code and figure out how to implement and make stuff. And I’m so unbelievably proud to be part of that team. The stuff they do is amazing.”

Sean: QA, right?

Hammer: QA testers, right,  and all they need to be able to do is come in, play the game, and report bugs. And then there are certain times we’ll ask them to specifically go test things for us. We’ve got a dedicated channel for those guys that we call the Yakima testing grounds.

But for me, the team, we just want MegaMek‘s legacy to continue. We want people to just come and play and use MegaMek to learn about the BattleTech universe and see how cool and amazing it is.

Sean: All right, very cool. Well, let’s wrap things up. Is there anyone you want to shout out or anything else you want to talk about? 

Hammer: You know what? I think the only shout-out I’d like to do is to the other members of the team who are the developers, the contributors, past and current. 

MekHQ Firing

You know, I’ve kind of become the social media face of the programs over the years, but I’m just the data guy who has the time to do this sort of thing. The real heroes of MegaMek are the guys who contribute the code and figure out how to implement and make stuff. And I’m so unbelievably proud to be part of that team. The stuff they do is amazing. In my 12 years with the program, the stuff I’ve seen people implement and bring in has been unbelievable. 

So my shout-out is to everybody who plays and everybody who’s ever contributed anything to MegaMek, just to say thank you to them, and I look forward to the future. 

Sean: Well, that wraps it up for me. Thank you so much for this interview and for taking the time to speak about MegaMek and its development. 

Hammer: Thank you for the invite and opportunity to discuss MegaMek and for letting me ramble on. 


Thanks again to Hammer for speaking with me. If you’d like to download MegaMek, head over to their official website here. For those seeking help with installation, how to play, or if you’re looking for other players, join the MegaMek Discord.

And as always, MechWarriors: Stay Syrupy.

stay syrupy

Share this:

This entry was posted in Community, Fan Projects, Interviews, Software on by .

About Sean

Hooked on BattleTech at an early age, Sean honestly can't remember whether it was the cartoon, the serial novels or the short-lived TCG that did him in. Whatever it was, his passion for giant shooty robots never died, so now he writes about the latest and greatest in 'Mech related news.

11 thoughts on “Community Outreach – Dropping The Hammer On MegaMek

  1. Skigress

    I recently started playing Megamek again. Since I have been teaching my step brother the tabletop game I decided I needed something to do without taking up tablespace when playing on my own. Having a blast trying out the aerospace battles as I have all the rule books but none of the minis for that. Princess has whipped my arse a fair few times on the ground, but in space princess seems a bit less capable, almost timid. Either way, I’m trying to figure out the campaign system and run one with a friend who lives in the states since I always wanted to when I was there but never had the time. I also love that it lets me test new ‘mechs out before I commit to them as part of my unit. I also didn’t know that I could use the program to print custom ‘mech sheets. Perfect for omnis.

    Reply
    1. Hammer-MegaMekTeam

      Check out the Casual Joker Twitch Stream (Also BigFluffy10000 and bayoudeputy) they run a Co-op Stratcon Campaign.

      Reply
  2. Corrigan

    Glad to hear custom equipment support for MegaMekLab is a thing the team wants to support in the long term. I remember seeing one of their milestone releases added support for custom content, but none of it was for the lab, which was disappointing.

    A lot of fanfics use MegaMekLab to stat out custom units, and it tends to get messy isle someone wants to do anything that doesn’t fit into the canon construction rules and equipment. It also tends to result in tons of date errors when someone uses the 3150 era to unlock all the tech, then forgot to/botched editing the date.

    Reply
  3. RKT

    I can’t thank the Megamek team enough for all their hard work. It’s helped me learn more of the game that I love, introduced me to more material and advanced rules and provided me an tool to come up with and test scenarios to run for my players for their IRL campaign every week.

    Reply
  4. Rosemberg

    Hello Dave (The Hammer),

    I would like to express my sincere gratitude for MegaMek. Thanks to it, I can get together with my friends from all over Brazil to enjoy incredible BattleTech matches.

    It was with MegaMek that I was able to create the BattleTech Stories Campaign, which is on the campbthist.club website. We all love playing using the platform, and it is thanks to your work and dedication that this is possible.

    Once again, thank you very much for everything you do for the community.

    Cheers,

    Reply
  5. Steel Shanks

    The Black Pants Legion did some MegaMeking not too long ago. Tex brought Two Chargers to the fight, hilarious battle antics ensued… Good times…

    I have played some, not a lot. I would like a long Campaign with a Mercenary outfit like described above. Spanning years, seeing the Kids inherit, etc. That sounds pretty great actually.

    Reply

Leave a Reply

Your email address will not be published.