Armello is a grim fairy-tale board game come to life, with every match combining deep, tactical card play, rich tabletop strategy and RPG elements. Leverage subterfuge, spells and careful strategy to wrangle control of the game's chaotic odds as you quest for the throne.
Recent Reviews:
Mixed (56) - 69% of the 56 user reviews in the last 30 days are positive.
All Reviews:
Very Positive (5,424) - 81% of the 5,424 user reviews for this game are positive.
Release Date:
Sep 1, 2015
Developer:
Publisher:

Sign in to add this item to your wishlist, follow it, or mark it as not interested

 

Recent updates View all (234)

October 29

The History of Multiplayer in Armello



Howdy folks!

We have something really special here today. We've mentioned previously that we'd like to share more information about how our multiplayer systems work, and here we have it.

Here's a history and retrospective of the Multiplayer systems in Armello, written by our lead developer, Karl Burdack.


The History of Multiplayer in Armello


How did it take 3 years for Armello to transition from ‘Peer to Peer’, to ‘Cloud Hosted Dedicated Servers’?

The short answer is we were always busy, fixing issues, adding features for monthly updates, or porting to new platforms. We were also a very small team, of four permanent coders.

The rest of this article is the long answer!

It’s been a winding path for Armello Multiplayer. As a studio, we have learnt much in three years about how to deliver updates to a live game. However we recognise there are still many improvements to be made.

NMA’s

The biggest issue for Armello Multiplayer has been deadlocks in the gameplay event queue. The event queue is a list of actions, or rules, the game takes to move the game forward. They are executed one by one.

If an event does not complete, the next event cannot begin. These are seen as freezes in gameplay, that we refer to as ‘NMA’ which is short for ‘No More Actions’. These freezes mostly affect multiplayer, since they occur when one peer’s version of events go out of sync with another, or a bug in our code fails to complete an event.

An analogy, would be if you played a physical board game. Where one of the four players, on their turn, could draw cards then take 3 actions. If that player sat at the table and refused to finish drawing their cards (NMA), all the other players would wait forever for their turn, and get very annoyed!

September 2015: Version 1.0: Photon Matchmaking

As a beginning, let’s start with the first full public release of Armello, Version 1.0.

The first Armello multiplayer architecture operated by relying on Photon Relay servers. The Relay Server receives messages from players in a match, and then sends those messages in a consistent order to all players. We also had an optimization for when the local player was having a turn, that they would immediately execute their actions, eliminating latency.



Remaining Issues:

  • Players would timeout and be disconnected after only approx 10 seconds of lost connection. This was a limitation where Photon could not be configured to behave differently.
  • It did not support future improvements to Matchmaking we had planned, such as ranked matchmaking, in a way compatible with how we wanted to implement it.
  • This system had no way to block cheaters, issue bans, or prevent pirate copies of the game from playing.


January 2016: Version 1.2: Steam Matchmaking and Peer to Peer

We evaluated the Steam Matchmaking and Peer to Peer (P2P) Networking, and decided it was more flexible and suited our future needs.

After implementation we immediately saw improvements in latency and connection timeout tolerance. Steam matchmaking also automatically blocked banned, or pirated copies joining multiplayer.

Changing to Steam P2P networking, transitioned Armello to a pure Peer to Peer network architecture.

In order to support reliably ordered messages across all the peers, we had to continue to use a Relay for messages. So instead of using Photon Relay Servers, we now hosted the relay on one of the peers. This peer would be picked at the start of the match, and would remain the Relay host for the remainder of the match



Remaining Issues
The biggest issue with this change, was that dealing with disconnects became much harder. If the current Relay host (Amber) were to disconnect, a new peer needs to be consistently chosen, and all messages that were outgoing from the previous host at the time of disconnection, need to be reconciled in case any were lost to some players. It’s likely that Amber disconnecting while Thane takes an action, might let Thane execute his own action (red arrow) but for the message to never arrive at Sana or Mercurio (black arrows).

This lead to difficult issues for us down the road.

June 2016: Version 1.4: Optimized networking

For 6 months, part of the Armello team were focused on porting to the Xbox One. Unfortunately, at that time Photon was not available for Xbox One. So in order to support that platform, we had to port the multiplayer to support a third solution: Unity Networking.

Unity Networking on Xbox One at the time, had much stricter message size limits. So we had to get serious about optimizing Armello’s sloppy network message sizes. It’s something we had on our list of things to do, and now it had become a priority.

In many cases, these optimizations reduced the amount of data sent and received by a factor of 100.



What? How could a simple Move action in a turn based game, consume 2500 bytes. Easily:



These optimizations were easy to bring over to the Steam release of 1.4. It would also be an important optimization down the road for Mobile platforms. These optimizations have benefited players on connections with poor bandwidth, as well as reducing CPU overhead on below minimum spec machines.

Unknown to us at the time, would be that the initial Unity Networking port to the Xbox One, would also be useful when starting out implementing dedicated servers!

Jan 2017: Version 1.6: Multiplayer Stability Update

Poor disconnect handling had now been plaguing our multiplayer community for 6 months, and we began work on an improved model for the Peer to Peer Relay Host

An example of how disconnect could cause stability issues:



In this situation, the system must be designed to recover the message Thane had sent, and re-send it to Sana. If the message is not recovered correctly, it can lead to an NMA situation.

To address these inconsistencies with disconnections, we implemented improvements to how disconnections were handled. We implemented a better message tagging and reliable message recovery protocol. A simplified example of how lost messages are recovered is shown below:



Remaining Issues:

While this was promoted as a Multiplayer Stability Update. Many players complained that it made their experience worse. We reflected on two areas of weakness where we must improve:
  • Measurement: We must be able to better measure build stability during development (testing), and in live builds (analytics)
  • Automated testing: We must automate the testing process of multiplayer, so that an enormous volume of games can be played, testing all possible combinations of actions.
  • ‘Double disconnect’: There were many cases where if two peers disconnected rapidly, our implementation would not handle it well. We would need to add automated tests for this case.
  • Undetected by us at the time, was that the optimization of immediately executing the local players action (indicated with red arrow in previous images), was also the cause of much of the disconnect instability, due to ordering issues when switching hosts.


May 2017: Version 1.7: Automated Testing

After the disappointing results of 1.6, we worked for around 6 months to implement an automated testing system for Armello. We added support for multiplayer Bots which would play fully through games many times a day.

Immediately we found an enormous volume of NMA bugs. We were now able to more easily address these, with full logging from all our test agents. During this period, we released several patches, usually once a week, as we found and fixed the issues.


Automated test PC's. These nifty HP micro PC's have a low power usage, but enough CPU power to run several tests of Armello in parallel, usually without graphics.



Remaining Issues:
  • After this round of patching, disconnections remained the major cause of instability, and we determined to look at this next.
  • Analytics were still lacking enough detail for us to track live build stability.

August 2017: Version 1.9: Improved Disconnect Stability

We hooked up our automated tests to live analytics, so that we could analyze thousands of test games per day. We increased our test coverage to include disconnection. We also began to receive our first live Analytics for live build stability, and were able to track live issues, and our progress at reducing instability.

What we discovered was that the most common stability issues arose when players disconnected during the end of their turn. In many cases, the issue was related to the ordering of remote messages, compared to the locally executed message (indicated in red in previous images)

The fix was for players to take turns being the relay Host. The player who was having their turn would have the active Relay host, which would dispatch messages to all other hosts. When players end their turn, the active host moves to the next player.

This way, the active player, would continue to always immediately execute actions on their turn, such as movement.



Problems:
  • Multiple players disconnecting at the same time were still causing stability issues, which were difficult to address easily with our existing peer to peer architecture and certain game events.

November 2017: Internal Prototype of Dedicated Servers.

We were faced with a choice, continue to improve the peer to peer model, while fixing issues in very complex Armello game code. Or look at all the issues as a whole, and decide on the best outcome going forward.

We decided to prototype Armello running with a Client/Server networking architecture. We would begin to look into the costs of hosting dedicated servers.

Fortunately, Armello was already well suited to Client/Server architecture, because it already broke up actions into discrete events which execute one after the other in a deterministic way on all clients. Deterministic means: The results of the action executing is exactly the same on all clients.



Initial prototyping was promising, but some additional problems would need to be overcome:
  • A hosting service for the servers would need to be found
  • Server hosting costs would need to be evaluated. As every hour of a dedicated server costs money. We didn’t want to dramatically burden our indie game with an unsustainable cost for running multiplayer.
  • The server version of the game would need to be heavily optimized for CPU usage, Memory Usage, and build size. So that it could be more cheaply hosted.
  • Latency for the active player would be unacceptable for some players. Additional work would need to be done to hide the latency by allowing the player to move, and revert that action if the server decided differently.

February 2018: Version 1.10, iOS Port

When porting to iOS, we needed a new, non-steam inventory and online account management service. We decided to integrate a service named ‘PlayFab’.

This work turned out to have a fortuitous benefit; because PlayFab would later become our cloud hosting service for Dedicated Servers on the PC platform. We now had the final piece of technology required to make this happen.

Planning for Version 2.0

For our planning for 2.0, we surveyed our community, what changes they would suggest for Armello 2.0. When we looked at the top 5 multiplayer related requests:



The number one requested feature, was Multiplayer Reconnect. This is a feature that would allow players to rejoin a game that had already begun, after they were disconnected for some reason. Also note resolving NMA’s as 4th on the list.

We also keep an eye on our monthly negative reviews, here is an example from April 2018:



This month is fairly typical for reviews. 25% of negative reviews are attributable to NMAs. Also, 8% of players gave us a negative review for lack of a Reconnect feature.

Many of the complaints are down to taste, such as Randomness (RNG). However NMAs and Reconnection are something we can improve, without fundamentally changing the game of Armello.

  • Reconnect: This is by far simpler with a Client/Server architecture. Where the Server has a complete copy of the game, which can be replicated to clients attempting to reconnect. If we are ever to support this feature, we would first need working dedicated servers.
  • Resolve NMAs: We knew that the ongoing difficulty with testing and preventing NMA’s would be much simpler in a client/server architecture. In particular, having a dedicated server does away with the problem of a ‘host’ disconnecting completely.

With solid information backing our instincts, we knew changing to Dedicated Servers might be the most important change to Armello we could make.


July 2018: Version 1.12: Dedicated Server Beta.

For the first 6 months of 2018, we worked on fully implementing Client/Server in Armello. This included:
  • Setting up the backend technology to let us easily upload new builds of the server into the cloud. (PlayFab)
  • Developing optimizing builds of Armello to be hosted in the cloud as a server.
  • Improving disconnect to take advantage of the stable dedicated server.
  • Repurposing our automated testing, to be testing hundreds of cloud hosted games a day, and to pressure test the cloud hosting service.
  • Improving client side movement actions to hide latency
  • Fixing a whole bunch more NMA’s along the way.

August 2018: Version 1.12.1, Patch 4: Dedicated Servers switched on permanently

After about 4 weeks of beta testing the dedicated servers. We switched them on for all multiplayer games on 20th August.

The following chart tracks server load time over 30 days, which is a good measure of performance. In this chart, the lower the line, the faster servers are launching into games. In the first few weeks, we had to work hard to eliminate issues where servers would crash, or freeze. We also had to tune the load balancing of how many game servers were allocated per cloud machine.



By the first week of september, in Patch 7, we had resolved all known crash issues, and had load tested the server into a stable configuration. From Patch 7 onward, server load times, and availability have been rock solid.

One of our reasons to switch to dedicated servers, was increased match stability, by reducing NMA rates. Now that dedicated servers are fully operating, we can compare public multiplayer games completed against those that failed to complete because of an NMA. The following chart shows 30 days of games, with the transition from Peer to Peer to Dedicated Servers marked in red. Note the significant decrease in NMA’s as a percentage of games (in light blue):



We are very happy with these results. And we hope our players are too! More games are being completed than ever before, with stability issues such as NMA’s and disconnects at all time lows.

The future

While we aren’t promising anything (when do we ever do that?), having dedicated servers does open up some interesting future possibilities for Armello beyond adding reconnect capability. We will be announcing some of these in future. In the meantime, keep the suggestions coming!


- Karl & the LoG Team
25 comments Read more

October 25

The Gallows' Eve Dice Event Begins...



Are you a coward, or will you creep forth and collect these haunted dice?

During this holiday, you will have a small chance of receiving a Gallow's Eve Bone Dice after completing Public Multiplayer games. These are rare dice, so you’re not guaranteed a drop.

Remember, you can collect multiple of these so share them with your worthy allies.

PLATFORMS: Steam, iOS, Android & Switch (we wish we could cater to all of our platforms, but unfortunately for this one we cannot)

Start: NOW!

End: The Evening of Thursday, the 1st of November PT

Game mode: Public and Private Multiplayer
9 comments Read more

Reviews

“This is a digital board game that exists somewhere between the island of Catan and the land of Studio Ghibli.”
Polygon

“Armello is a digital board game, and it's very much the genuine article.”
Eurogamer

“It's like Game of Thrones, only with animals.”
Kotaku

Latest Major Update



armello.com/updates


The Road to 2.0 is underway and our fifth update on this path has landed. The June update is out and about!

Below is a summary of the major features but you can find the full announcement post here.



This update brings a long list of hugely important balance adjustments, including Heroes, signets, amulets and cards. These changes are a breeze of fresh air and refine the Armello you know and love.



Wolf Clan enthusiasts, it’s your time to rally. A whole new Novella has been added and can be picked up for free in the store.

He was the prince who would never be King. But the Rot cares little for destiny.



A subtle shimmering now indicates where the next precious Spirit Stone will appear in the coming night. If you're on the path to "cleanse" The King, keep a close eye out for the indicator and plan your moves wisely.

And a Whole Lot Under the Hood

On top of the major features mentioned above, over the course of every update we add numerous bug fixes and experience improvements, and will naturally continue to improve stability and quality of life via numerous small patches in the lead up to our next major update.

An Ever-Growing Adventure



Armello officially launched in 2015 and since then our primary goal here at League of Geeks has been to continue developing new and interesting features to progress and refine Armello's world and its intricate mechanics. By purchasing Armello now, you are purchasing years of love and care, with the knowledge that we will continue to devote our hearts and brains to improvements moving forward.

RNG Disclaimer

The best tabletop adventures are also wondrous story generators, creating those shared memories of epic adventures with friends and loved ones. In remaining true to this core inspiration, and to provide the twists and turns of any great adventure, Armello features numerous elements of chance; including drawing cards from shared decks, physics-based dice rolls, skill tests in quests, procedural map generation, dungeon auto-exploration, and random story events.

The strategy and immense depth within Armello lies in exerting your mastery of its systems in such a way that you slide the odds as far in your favour as possible - and are prepared to pivot on your strategy at any given turn.

We feel Armello has something to offer all kinds of players, however, considering the above...

  • If your blood boils at the very mention of "RNG"... Armello may not be your cup of tea.
  • If you are a player that embraces the storytelling potential of RNG or revels in exerting your mastery over its chaos, Armello is very likely to be right up your alley!

Feature List

  • Easy to Play but Hard to Master - Armello is an intuitive game, easy to pick up and experience but with deep and emergent strategy.
  • Fast & Thoughtful - Adventuring in Armello is fast-paced fun but filled with deadly tactical and politically complex decisions requiring careful forethought and planning.
  • Multiple Playable Heroes - Includes 8 playable Heroes. Each unique Hero possess a special power, stat line and Ai personality. Also heroes can be customised with Amulet and Signet Ring load-outs to match your play style or counter an opponent's strategy.
  • Dynamic Sandbox - Armello features a gorgeous dynamic world which procedurally generates a new board each and every game, complete with a dynamic quest system ensuring no two games of Armello are ever the same.
  • Turn-Based Day & Night Cycle - Armello features a fuzzy turn-based system, cycling between Day and Night phases. The fuzzy turns allow you to still play cards and do certain actions when its not your turn, and when it is you use Action Points to move around the hex board.
  • World Class Music & Audio - By Michael Allen, internationally acclaimed artist Lisa Gerrard, Stephan Schutze, Jacek Tuschewski and Kpow Audio.
  • Animated Cards - Armello features over 150 beautifully animated in-game Cards, from artists all over the world.
  • True Tabletop Feel - We've cherry-picked the best parts of the tabletop experience, like the hex-based board and our custom physics-based dice!

About This Game

Armello is a grand swashbuckling adventure that combines three styles of play; The deep tactics of card games with the rich strategy of table top board games, combined with a character role-playing system.

As a hero from one of the clans of Armello, you'll quest, scheme, hire agents, explore, vanquish monsters, cast spells and face off against other players, with one ultimate end goal in mind — storming the palace and becoming King or Queen of Armello. The Kingdom of Armello is as dangerous as it is beautiful, perils, banes and bandits hide around every corner and a spreading corruption known as the rot is leaving no creature untouched.

Armello is League of Geeks’ attempt to revolutionise digital board and card games, whilst providing players a rich world within which they can craft their own stories of epic adventure. The aim was to create a rich game full of backstabbing, close shaves, shattered alliances, ruses and empty promises - a perfect game to play online with your friends.

System Requirements

Windows
Mac OS X
SteamOS + Linux
    Minimum:
    • OS: Windows 7 (64-Bit)
    • Processor: Dual-core 2.0 GHz (SSE2)
    • Memory: 2 GB RAM
    • Graphics: DirectX 10 SM4.0 capable GPU with 1GB VRAM
    • DirectX: Version 10
    • Storage: 4 GB available space
    Recommended:
    • OS: Windows 7 or later (64-bit)
    • Processor: Quad-core 2.5GHz (SSE2)
    • Memory: 4 GB RAM
    • Graphics: DirectX 11 SM4.0 capable GPU with 2GB VRAM
    • DirectX: Version 11
    • Storage: 4 GB available space
    Minimum:
    • OS: OSX 10.9 (64-Bit)
    • Processor: Dual-core 2.0 GHz (SSE2)
    • Memory: 2 GB RAM
    • Graphics: OpenGL SM4.0 capable GPU with 1GB VRAM
    • Storage: 4 GB available space
    Recommended:
    • OS: OSX 10.9 (64-Bit) or later
    • Processor: Quad-core 2.5GHz (SSE2)
    • Memory: 4 GB RAM
    • Graphics: OpenGL SM4.0 capable GPU with 2GB VRAM
    • Storage: 4 GB available space
    Minimum:
    • OS: Ubuntu 12.04 LTS (64-Bit)
    • Processor: Dual-core 2.0 GHz (SSE2)
    • Memory: 2 GB RAM
    • Graphics: OpenGL SM3.0 capable GPU with 1GB VRAM. Graphics card that has vendor-made drivers installed.
    • Storage: 4 GB available space
    Recommended:
    • OS: Ubuntu 12.04 LTS (64-Bit) or later
    • Processor: Quad-core 2.5GHz (SSE2)
    • Memory: 4 GB RAM
    • Graphics: OpenGL SM3.0 capable GPU with 2GB VRAM. Graphics card that has vendor-made drivers installed.
    • Storage: 4 GB available space

What Curators Say

171 Curators have reviewed this product. Click here to see them.
Customer reviews
High Volume of Reviews Detected:
Exclude  or  View Only
Review Type


Purchase Type


Language


Date Range
To view reviews within a date range, please click and drag a selection on a graph above or click on a specific bar.

Show graph



Display As:
Review Beta NEW!
When enabled, will sort reviews by new Helpfulness score. Read more about it in the blog post.
Show graph
 
Hide graph
 
Filters
Review Helpfulness Beta Enabled
There are no more reviews that match the filters set above
Adjust the filters above to see other reviews
Loading reviews...