WarLight turns four

It was four years ago today that I first started working on WarLight.

WarLight also surpassed a more impressive statistic this month than just its age. Over one million multi-player games of WarLight have now played through to completion. That’s a lot of games!

And every single one of these games is still in the WarLight database available to be viewed by its players at any time. This is one of my favorite features of WarLight. Not many games allow you to go back and watch yourself playing the game three years ago.

WarLight for Android alpha now available to all members

An alpha version of the WarLight client for Android is now available to all WarLight members!

Keep in mind that this is an alpha release. That means that it’s an unfinished product, and there are some features still missing or incomplete. However, it works well enough to take your turn in multi-player games. See mobile client on the wiki for a list of features not yet implemented.


Check out this wiki page for step-by-step instructions on how to install WarLight on your Android device: Installation Instructions


I’d like to hear how well it works on your device! If you run into problems I’d definitely like to know about it, but even if everything is working great I’d like to hear that too. Send me e-mail at fizzer@warlight.net.

If it works on your device, it would also be great if you’d add your device name to the list of known working devices if it’s not already there.

WarLight update: 1.11

WarLight has just been updated! This blog post contains a summary of what changed.

Tournament Stats on Profiles

Players can now choose tournaments that they want to display on their profile! You can do this right now! Just click here and pick which tournaments you’d like to display.

Your profile will show a link to the tournament, as well as what place (1st, 2nd, etc.) you received if you received a place. For round-robin tournaments, all players are given a place, but for single and double-elimination only 1st and 2nd show up.

Overridden Bonus Links

When a bonus’s value is changed by a game creator, the bonus link for that bonus now uses a white border instead of yellow. This makes it a bit easier to spot which are overridden.

Further, when an overridden bonus’s number is large, it now protrudes outside of the bonus link instead of just getting cut off.

Misc Changes

– As announced in the previous blog post, WarLight’s messaging protocol is now backwards compatible.
– This release also contains something Android-related, but this deserves its own blog post, which will be posted within the next day or two.
– The maximum number of favorite games has been upped from 10 to 15. The page to modify them has also been updated to be more user friendly.
– Tournament creators can now have 5 simultaneous open tournaments instead of 2.
– A message now pops up when players do an action that causes their vacation to end. This makes it much easier to tell what’s going on with your vacation.
– E-mails are now sent to players when they first establish a ladder rank.
– When previewing a forum reply, the subject line is now shown.
– When making a post to a forum thread that creates a new page, you’re now taken to the new page instead of the current one.
– Single-player no longer displays announcements.
– The page to change an account’s e-mail address has been updated to be more user friendly.
– Added a limit to the number of open games that any one player can create at once. This helps keep the Open Games page from getting cluttered with tons of duplicates. Non-members may have 3, members may have 10.
– Games with open seats that never started are now deleted after a while if it’s clear the owner has no interest in reviving them. Real-time games are deleted 24 hours after the open seats expire, and multi-day games are deleted 10 days after the open seats expire.
– Fixed a bug that caused the booted duration to show as 0 minutes when booted players were configured to turn into AIs, and the boot caused the turn to advance.
– Fixed a bug that caused the Settings tab show a cached value for the date your vacation ended, which may have been inaccurate if a player just did something that made their vacation end.
– Fixed a bug that made the Open Games tab not show boot times for games you were in.
– Fixed a bug that made no wastelands appear when the number of players invited matched the number of territories in the selected distribution.
– Fixed a bug that broke the Bayeselo logs when someone used a greater-than sign in their name.
– Fixed a bug that caused army numbers to show incorrectly in rare circumstances after clicking Skip To End while the map was panning.
– Fixed a bug in the map designer that could allow territories to connect or disconnect when not on the connection tool.
– Fixed a bug that occurred if you tried to change your name to a name that contained an ampersand.
– Fixed a bug that caused templates to say (deleted) when a game was created based on the settings of a game that didn’t use a template.
– Fixed a bug in the map designer that caused an error if you deleted the default distribution mode.

Backwards Compatible Protocol

Warning: This post is more technical than most. If you don’t care about how WarLight works behind the scenes, you can skip this one.

I’ve been working on some long-needed improvements to WarLight’s messaging protocol. This is what WarLight uses to talk between the Flash client or mobile client and the WarLight server.

The Problem

Today, the WarLight server can only communicate with clients that are running the latest version of WarLight. Any time the server updates, all of the clients must update at the same time to be able to play the game.

If the server gets a message from a client that didn’t update, it sends down a “client out of date” error. The Flash client deals with this error by displaying a message that says “WarLight has recently updated. Please refresh your browser.” Players who keep WarLight open 24/7 are likely familiar with this message, as they are forced to refresh every time I update the server.

Up until now, this message has only been a minor annoyance. Updating the version of a Flash app is fairly painless, as all players have to do is hit their browser’s refresh button. However, updating an iPhone or Android app takes a lot more work. There are app store approval processes to go through, and even once it’s approved it can take time for the update to be pushed out to everyone’s phones, and even then many phones require players to manually update the app. Having the WarLight app be unusable for all of this time every time the server updates isn’t an acceptable user experience.

Backwards Compatible WarLight Server

To fix this, I’ve modified the WarLight server to be backwards compatible. This means that it knows how to talk to clients of any version, not just the latest. Although the main driving force behind this is for the upcoming iPhone and Android versions, this is beneficial for Flash players too:

  1. Refreshing the browser won’t be required anymore when the server updates. It’s still a good idea to refresh at some point, as you won’t see any new features or get bug fixes without it. But the important thing is that it isn’t required, which means I can deploy server updates without interrupting players or real-time games. This eliminates a lot of work for me, as in the past I’ve had to announce updates in advance and put pop-up warnings in place to ensure players knew they were about to be interrupted.
  2. Since server updates are seamless, the time between deployments can be lower. When a bug is reported, I often have to simply say “this will be fixed in the next release” and sometimes it can take weeks for the next release to arrive. Now that updating the server doesn’t impact players, I can update as often as I want, which means that bugs can get fixed quicker. It also means I don’t need to schedule updates for the middle of the night, and instead and just update whenever it’s ready.
  3. This fixes a long-standing issue with single-player games not being recorded. If someone started a single-player level right before an update, and won after the update, the server would not know how to read their “I won” message from their out-of-date client and would instead just tell them to refresh their browser. To counter-act this, the single-player version of the game today checks the server once every 10 minutes to see if an update was coming, and tell the user to save their game for later. While this stopped players from being denied wins (as long as they don’t ignore the instruction), it still isn’t a great experience. With this new update, players won’t even know that the server updated. Everything will just work.
  4. In the past, these blog posts have always announced updates ahead of time. This was good to give an advance notice of an upcoming update, so players could make sure they didn’t start real-time games just before the update. Now that real-time games can play right through an update, I’m going to start posting about new features after they’re deployed. This is better for you, loyal blog reader, since it means that when you read about a new feature on the blog you can go check it out right away instead of having to wait.

It may not be an exciting update, but it’s a necessary prerequisite for WarLight moving forward onto other platforms.

Season II

Season II will be a 1v1 match like Season I, except this time each player will receive a diplomacy card that lasts for two turns. Since the diplomacy card stops all fighting between two players, and there are only two players in a 1v1 match, the card will essentially stop all fighting for two turns. However, neutrals are still attackable.

It is your job to figure out how this affects the your strategy. The diplomacy break could give you a chance to move defensive armies into position, give you time to travel towards to an opponent’s far-away bonus, or just allow you time to capture that bonus that you had almost completed.

Full settings:

– Each player gets exactly one diplomacy card and will never receive more. The diplomacy effect will last for two turns.
– Light Fog, just like Season I
– Cyclic move order instead of random, just like Season I
– In-distribution neutrals is back to the normal 4, unlike the 0 in Season I
– Number of cards you can hold without being forced to play one is increased from 4 to 5, to account for the diplomacy card.

You can use this template if you want to practice.

Joining Season II

If you already joined the seasonal ladder for Season I, you’re already joined to Season II and you don’t need to do anything. If you never joined Season I, or you left it, you must re-join the ladder to be in Season II here.

If you played in Season I and don’t want to play in season II, you must leave the ladder here.

Season I Results

Congrats to Rubik87 for winning Season I!

I wanted to talk a little about the final results. Some have noticed that the winner went 14-1, whereas the runner up, Yeon, went 15-0. Yeon was the only player to go undefeated in Season I.

In the ratings algorithm, how strong your opponents are is a big factor in determining the final rank. A player who plays really strong opponents is often rated higher than a player with a better record who played weaker opponents. The issue here isn’t with the ratings algorithm is behaving correctly, but rather the issue has to do with the fact that the seasonal ladder does not give you an option to choose who you play against. It’s tough to tell someone that they’re not #1 when they played flawlessly, especially when players above them didn’t.

To address this, a few changes are being made for Season II. The biggest change is that the ladder now tries a lot harder to give players games against players nearer to their skill level. This means that you have a lot more control over who your opponents are. Win your early games and you’ll be rewarded with stronger opponents. This will also help the matchups be more exciting.

Second, 20 games are going to be played instead of 15. In Season I, I was worried some of the less active players would find 20 games too overwhelming, but given that it’s easy to sit out a season, I think that it’s okay to be more aggressive for those who want to play more. Having more games helps the rating system get a better picture of your skill level.

I don’t think anyone will go undefeated this time – feel free to try and prove me wrong :)