The Maestros cover
The Maestros screenshot
Genre: Real Time Strategy (RTS), Strategy, Indie

The Maestros

Sunsetting The Maestros

Dear Maestros Players,

Thank you for all your support over the years since we began developing The Maestros (in 2013!) and right up through its release in 2018. This wonderful game has been a springboard for the careers of so many developers who worked on it as students and hobbyists. With all of us moving on to the next phase in our careers though, we no longer have the time or the money to support The Maestros anymore. It will be removed from the various stores in the coming days, and shortly thereafter, the servers will be taken down as we shut down Systence Games itself.

To celebrate all the hard work of the team and the support of the fans, we will host one more play session on Saturday, April 25th from 5-7pm Pacific Time. I hope to see you there!

I'm also very excited to note that we will open-source the game’s code & content. ALL of the game & server's original code, inc. over 50,000 lines of code, and content, inc. 21 fully rigged & animated characters as well as 50+ acres of environments, will become available under a very permissible open source license so that future indies, especially those working on multiplayer or RTS/MOBA games can learn from our experiences. Perhaps then somebody can get the platform running again on a spare server if they have time ;)

For now, you can see the source code from the core game package (abilities, fog of war, units, server communication, basically anything you can imagine), and the Chat Server - with implementations in Node.js (original) and the Rust programming language. Much more to come, including our lobby system, game allocation, load test, player account, inventory system, characters, environments, and more.

https://github.com/SystenceGames/TheMaestros-uScriptSource
https://github.com/SystenceGames/ChatServer
https://github.com/SystenceGames/tm_chat_server

Our team learned, grew, and had a lot of fun making The Maestros, and we hope you all had fun playing it too. Some of us have even continued working together under a new banner at Gamebreaking Studios. Feel free to keep tabs on the next generation of our work together at https://gamebreaking.com.

Cheers!

The Maestros Update 1 - Bots, Bots, Bots!



Goodies at long last!  Since our Early Access launch, the team has been hard at work trying to improve the game for all of you, and we’re excited to finally drop some new stuff for everybody to try out on Monday, December 17th.


Bots, Bots, & More Bots

The big thing we decided to work on was our AI system.  First and foremost, this meant adding the choice to play against Intermediate bots.



We also tuned down the beginner bots which were felt slightly too strong as you learn the game.  Expect the new intermediate bots to be stronger than the older beginner bots, and the new beginner bots to be weaker than the old beginner bots.  There’s a good chance we’ll need to buff the intermediate bots, but let us know how they feel to you.

We also noticed that most bot games felt pretty similar to one another. To make games feel more unique, we added a new and improved system for bots to make more varied decisions each game, and have a subtly different style each game too.

Bugs & Improvements

When using Skybreakers, we were getting pretty used to seeing a lot of this around the map.



You’ll notice we changed the feel of the Skybreaker ability, and thankfully, fixed this so it shouldn’t happen anymore.  Let us know if you’re plagued by immortal targeting reticles after the patch.  

Also, the times before unlocking the 3rd commander, and before unlocking the second faction were both feeling too long, so we reduced them a good bit.

We can’t dive into detail on all the little changes & fixes we did, but we’ve listed out the bullet points for you below.

Full Patch Notes

Features & Improvements

- Improved behavior for all bots

- Added Intermediate bot difficulty

- Leveling up & unlocking commanders is much quicker now

- Increased variance in bot behavior to make each bot game more unique

- Made Beginner bots slightly easier

Bugs Fixed

- Fixed issue where Skybreaker's targeting reticle would remain on the ground

- Fixed an issue where transform points could become unusable under certain circumstances

- Updated bad name filter to remove overly broad terms

- Fixed bug where players incorrectly were pushed to main menu after a tutorial

- Small fixes to pathing on map Crater

- Fixed visual issues on Main Menu

Don't forget to join us this Wednesday, December 19 at 8:00pm PT / 11:00pm ET for our play with the devs session.

-- Stopthief, 1st Lt. of Letting You Know

Leaderboards, Soundtracks, and Updates, Oh My!




Original Soundtrack


The Maestros OST is now available as DLC on Steam! Grab a copy for $4.99 and get access to the tracks for every map as well as our theme and trailer music. Track list below.

1: Main Theme (5:29)
2: Sacred Arena (8:28)
3: Fissure (3:44)
4: Terra (3:07)
5: Crater (4:05)
6: Sunset Isle (3:07)
7: The Maestros - Trailer Theme (2:04)

Leaderboards



Leaderboards for week 1 have been posted on our website:

http://maestrosgame.com/leaderboards/

Congratulations to all the players who made it, and a special shout out to Savvy who earned the most XP, and Beyolar, who had both the highest win rate & the highest KDA for week 1!

Upcoming Updates



We've been having a blast playing The Maestros with you all, but we've got lots of work to do, so I wanted to let you know what's on the horizon for our first few updates.

Bug fixes

Like any game in beta, we've got plenty of bugs to bash. We're taking a special look at issues around windowed mode and unit abilities to start, as we've seen a lot of pain around that.

New Game Mode

We're also working on a totally new game mode option that will vastly change the gameplay. In it, you will capture towers that will grant you unit types instead of transform points. This won't be available for a few weeks at least, but we've been enjoying it and are looking forward to bringing it to you soon!

Leveling Curve

We want more people to enjoy Rambam Queen and the Alchemists earlier, so we're reducing the time it will take to hit level 6 and unlock your first Alchemist commander.

Look out for these updates and more in the coming weeks.

The Maestros Released!




https://store.steampowered.com/app/553560/The_Maestros/

Seriously, it’s about time.


After 5 long years in development and countless alpha/beta tests, The Maestros is finally available for your gaming pleasure as a Steam Early Access title.  There's certainly more we want to do, but it's time for the world to see The Maestros in all its robot-smashing, armored-sheep-mutating glory.




Details, Details


The game has been launched as Early Access, so look forward to some new content, and don’t forget to drop us a line with any bugs, feedback, or feels you have about the game.  Our Discord channel is a great way to get a hold of us for that.  We’ll also be available to chat during our Play with the Devs event at 8:00 pm PDT / 11:00 pm EDT .

The game will launch at $12.99 USD, and with a 25% launch discount that makes it available for the sweet, sweet price of just under 10 bucks (unless you’re Canadian, eh?).  As a reminder, here are our pricing details in a few key regions.

USD
Full - $12.99
Launch - $9.74

CDN
Full - $14.49
Launch - $10.87

GBP
Full - £10.29
Launch - £7.72




Thanks, Fam


We want to send a huge thank you to everybody who has sent your support, feedback, and for all the playtesting over the years.  It meant the world to the six of us, and kept us motivated week after week.  Now get out there and play this game!

Don't forget to leave us a review!

https://store.steampowered.com/app/553560/The_Maestros/

Last Day for The Maestros Open Beta!



Today is your last day to play The Maestros Open Beta free until 5:00pm PDT / 8:00pm EDT. Grab a beta key here and meet us in the Sacred Arena! Players who top our weekend leaderboards will get a free copy of the game when we hit Early Access this Wednesday, Oct. 3!

For everybody else, you can buy a copy for $9.74 as part of our launch discount for a limited time. Once in Early Access, you can keep leveling to unlock commanders from our second faction, The Alchemists of Regalis, and play on new maps as well.

Note: there is no NDA on The Maestros Open Beta, that means you can post and make content for platforms like Youtube & Twitch, but do make sure to give us your feedback and report bugs, so we can make this game awesome for you!

Maestros hits Steam Early Access Wed, Oct 3, Following Open Beta Weekend




The Maestros, our multiplayer action-strategy game inspired by Warcraft 3, Pikmin, and innumerable custom games from similar titles, will hit Steam Early Access next Wednesday, Oct. 3rd.  To give players a chance to test out the game, we will run an Open Beta Weekend starting Friday, Sept. 28th.

Steam Early Access Details


Release Date: Wednesday, Oct. 3rd
Platform: Windows
Language: English

Pricing

USD
Full - $12.99
Launch - $9.74

CDN
Full - $14.49
Launch - $10.87

GBP
Full - £10.29
Launch - £7.72

Open Beta Weekend Details


Start: Friday, Sept. 28th at 5:00 pm PDT / 8:00 pm EDT
End: Sunday, Sept. 30th at 5:00pm PDT / 8:00 pm EDT

Keys: grab keys here, while supplies last.  Keys received for previous closed betas will continue to work.

Available Content: Open Beta players will be able to play all commanders from our first faction*, and leveling will be capped at 5 for all players throughout the weekend.  Three maps will be made available: Sacred Arena, Sunset Isles, & Fissure

*note: players from closed betas will keep all commanders they previously unlocked

https://www.youtube.com/watch?v=EM05Z9ILvns&feature=youtu.be

Closed Beta Weekend Live Now!

A Deep Dive on Improving Group Pathfinding

The Maestros is running a Closed Beta Weekend 5/25-27, sign up to join us!

On and off for the last 5 years I’ve worked to improve grouped unit movement in The Maestros. As Dave Pottinger pointed out almost 20 years ago after his work on Age of Empires, the “pathfinding” part of movement gets all the attention, but making dozens of units follow a path intelligently is at least as important and quite difficult. I’d love to tell you about my... journey in this space.

What follows are by no means state of the art solutions. The industry’s had excellent minds on this problem for over two decades, and you and I have little hope of catching up over an afternoon coffee. So let’s focus on the nitty-gritty details of making basic pathfinding look and feel good for players under practical game constraints. A practical knowledge of 3D math is assumed, but a phD in AI is not recommended. I’d probably just upset you, honestly ;)

Goals


In RTS movement, some players want realistic, slow-rotating tanks and squads of infantry hustling together like Company of Heroes. Our game is about executing big plays in quick brawls so our priorities were “responsive over realistic,” and “direct-control over coordinated formations.” Think more Starcraft than Age of Empires.

Where We Started


UDK (Unreal Engine 3’s SDK) supports A* pathfinding in a navmesh-based space, and has pretty effective (if finicky) navmesh generation. However, pathfinding was implemented almost entirely in unreachable engine code which we could not modify in UDK. All in all, if I selected a single unit and right clicked a pathable location, I could expect it to get there eventually. I thought we were pretty well covered with that. Boy, was I wrong.

Problem #1 - Stopping the Group


The next step is moving a group. If I select a few of our Doughboy units and ask them to move to the exact same location, only one of them is going to actually make it there. At best, the others will be adjacent to that one who made it. So how do they know when they’re done moving? Two clicks and we’ve already hit our first issue!



What we came up with was a sort of message-passing system. The first guy who got there was set to have reached the destination, and anybody who touched him and was also trying to get to the same place would consider himself at his destination. Then those guys could pass that message on to anybody who bumped them. We called this “transitive bumping.” This felt pretty clever, and works well for clustered groups, but still has some silly degenerate cases (e.g. if units are in a line).


Problem #2 - Moving Through the Crowd


Another issue we ran into early on was one unit being blocked by another. While UDK’s pathfinding supported creating new obstacles in the navmesh, doing it for a couple hundred units who were constantly changing their location resulted in unplayable performance. Because of this, units were always trying to move through one another instead of around.



Our solve was to allow units to apply a force to one another under certain conditions. This also needed to propagate throughout the group like our stopping messages.



A more natural looking solution might be to tell the unit to move themself out of the way (a la Starcraft 2), and then to move themselves back. In either case, determining the exact states/conditions to “push” another unit was incredibly complex and error-prone. “You can push Allies but not enemies, idle units but not attacking units.” In our case, it took ~10 unique clauses with various levels of nesting to achieve. Yikes! I’d love to find a more generic solve here.

Problem #3 - Staying in Your Lane


After our first public demo of The Maestros at GDC in 2014, I received some feedback from a mentor of mine that the game felt “messy.” Plenty of things contributed to this at the time, but the problem that was most at fault was that even simple, straight-line movements had units jockeying for position along the same path. Nobody would expect a real-life crowd to do that, and certainly not a group of military-trained robots. All of our units were still acting completely independently. When they received a single, common destination from a player’s click and tried to get there on their own fastest route, they’d often choose the same route as the guy next to them. The result was about as graceful as all 8 lanes of the 405 freeway collapsing into one lane instantaneously.

The general solution to this isn’t terribly hard. Calculate a center point for the current group, take the difference of each unit’s position from that center point, and issue a bespoke move command for each unit with their offset from the destination.


For units A, B, & C, and a clicked location (red reticle), offset each destination

That worked great for the basic case of moving a unit cluster from one open area to another, but as you’ll begin to learn in this article - most of the “general” feeling solutions have conditions where they break down. The most obvious is if you try to move next to an obstacle. As you can see below, the center point is fine, but unit C would be inside a boulder (gray box).



Another issue was that if your units were spread out and you clicked near the center, you’d expect them to collapse inwards. Using a naive offset, however, they’d generally stay put. Offsetting the destination also fails to meet expectations if your units are too spread out. For example, you’ve all your units in one cluster, but your commander (unit A) was off solo farming 2 screens away. When you issue a move to a point near the center of the cluster, you’d expect all your units, including your commander, to end up generally underneath your cursor (red reticle). In fact, none of them end up under your cursor if you apply offsets naively.



Summarizing many issues in one sentence, “There are situations where some or all units should collapse together, not maintain their offset from the group’s center.” The idea of determining who is in a group or not can sound a bit daunting, and certainly there are some complex clustering algorithms that could be applied here. My solution to this problem ended up being much simpler and has been unexpectedly effective across a huge number of scenarios. Here’s the rundown:

Borrowing language from our code, I calculate a “SmartCenter” for the group

If the point we are trying to reach is within a standard deviation of the center point, I use naive independent movement. This guarantees that units will gather shoulder-to-shoulder in a tight cluster, and gives players the kind of direct control of the group shape we’re looking for in The Maestros.

If I don’t have a meaningful “Primary Cluster,” then my units are probably spread out all over the map. In this situation, I just want them to regroup as best they can. Another win for naive independent pathfinding. I detect this situation when the standard deviation for the group is larger than a particular maximum. Ideally, that maximum is relative to the area occupied by the group so I used the sum of all unit’s radii. That’s been reasonably effective.

If I have a “Primary Cluster,” but 1 or more units are more than 1 standard deviation from the group’s center, I collapse them in by giving them a destination in the direction (i.e. normal) of their offset, but only a standard deviation’s length (i.e. magnitude) away from the group’s central destination. This has the effect of “collapsing back in” and feels much more natural.

Problem #4 - Sticking Together


Overall applying relative offsets to each unit’s destination was a huge win for the “cleanliness” of movement within our game when moving in a straight line. Pathing around obstacles was still abysmal though. First, units will take their own shortest path around an obstacle, and don’t always stick together with their group. Second, our 8-lane to 1-lane traffic jam happens all over again at each intermediate point before we reach our destination (see figure b).


Not pathing together


Traffic jam on intermediate points

I sat on this problem for an embarrassingly long time without a good answer. On day one, I thought to pick 1 unit’s path, and apply the offsets to each intermediate point. This breaks down quickly when you consider that often the reason you’re pathfinding in the first place is that your going tightly around an obstacle. Applying the offsets will leave 50% of your units trying to path into a rock, and naive independent pathfinding will cause a permanent gridlock before you even get near your final destination.

My conceptual answer to this setback wasn’t terribly clever either (depicted below). I’d move the path away from the corner, about one radius width. Determining this mathematically on the other hand proved incredibly elusive to me. How do I determine whether my path is cornering close to an obstacle or far away? If I am close, is the obstacle on my left or my right? On what axis is my left or my right for a given point in my path?







At some point I was going to have to do a raycast to locate obstacle volumes. Perhaps I could try raycasting radially around each point (pictured below)? Unfortunately it was prone to missing the obstacle entirely. The accuracy of this solution scaled directly with the number of raycasts I did per point on the path, and that felt terribly inefficient.



What I really needed was the left-right axis for a given turn. The hypothesis is that the angle of the turn is telling you about where you obstacle likely is. Most of my obstacles where going to be directly inside the “elbow” of my vectors, and occasionally outside it. I hit a breakthrough when I found the axis through the following operations:

The vector P is the right/left axis for my turn! I check for obstacles on either side and shift my pathfinding point away from the obstacle by a little more than 1 standard deviation. The result goes from a path (green) directly on top of my obstacle, to one comfortably offset from it.


Before


After

Now, I can apply my offsets at the updated points along my path so my group can stick together as they path, and they won’t traffic jam. It doesn’t cover every situation, but in ~90% of cases we can get by without traffic-jamming. The improvement is enormous. Here’s a before & after of going around just one corner.


Before


After

Learnings


My biggest learning from doing this is that “generalized” pathfinding algorithms like A* are unlikely to be the whole movement story for your game, especially if you’re trying to coordinate a group’s movement. The second thing I learned is that complexity is truly the enemy here. Pathfinding isn’t hard because the pathfinding algorithms are complex. A tight A* implementation is easily less than a hundred lines of pretty readable code, and is perfectly serviceable for most games. Pathfinding is hard because moving multiple units in real-time and space with one another produces an incredibly large volume of scenarios, and humans have pretty specific expectations of what should happen in many of those scenarios.

The Maestros is running a Closed Beta Weekend from May 25-27. Sign up on our website to join in!

The Maestros Closed Beta Weekend 5/25-27

Sign up now! www.maestrosgame.com/signup





Starting on Friday, May 25 at 2pm PT / 5pm ET, The Maestros Closed Beta Weekend 2 will begin, and run until 6pm PT on Sunday, May 27th. That’s three days of all out multiplayer madness.

But Mr. Wonka, how can I get a golden ticket?



Fantastic question, Charlie. This time, we’ll be giving out beta keys through various sites around the web. The best way to keep tabs on that and guarantee yourself a spot is to sign up on our website https://maestrosgame.com/signup where we’ll send out the news. If you already received a key to the previous beta, it will still work so you’re good to go! Keys will probably start rolling out the week beforehand, so keep your eyes peeled.

What’s new?



Ongoing Pathfinding Improvements
We heard pathfinding was seriously cramping your style last beta. It’s a difficult problem, and honestly, it’ll never be perfect, but we’re working hard to make sure it gets out of your way.

Old (Ouch)


Work in Progress (I’ll get that little guy sorted out)


Minimap Clarity
Which dots are the camps again?


New Cursors
Where is my cursor?


Unit Selection
Bugs = Bashed. I smell Conductor meta coming back.

Before (dotted circle = will select)


After (dotted circle = will select)


In-Game Settings
Seriously, that DoughBoy just beep-booped at me at 200 decibels. Make it stop.


Sobel Edge “Inking”
We heard in-battle clarity was an issue. Our units just blended with the environment too much. We came up with some sick cartoon-style inking to go with our robot and monster caricatures.


We are incredibly excited to play this new iteration of The Maestros with you all. Who knows, I might even make the leaderboard this time ;) In the meantime, feel free to post any questions in our Discord or the Community Hub, and don't forget to sign up!

https://maestrosgame.com/signup



-- Stopthief