Sign up for the iPhone preview

As announced previously, I’m working on bringing WarLight to iPhone and Android. Very soon, a preview version of WarLight for iPhones, iPads and iPod Touches will be available to WarLight members for testing.

Unfortunately, the size of this preview will be limited to a very small audience due to Apple’s restrictions. I’d love to include all of WarLight’s players in this preview, but Apple forbids me from doing so. Fortunately, the Android version will not suffer this restriction. I hope to get an Android preview out soon.

WarLight members who own iPhones, iPads or iPod touches can use this link to sign up for the preview. EDIT: removed the link – the preview is full. Stay tuned to the blog – more players will be allowed in once we reach Alpha.

WarLight for iPhone and Android!

It’s time for a big announcement! I’ve been hard at work on making a mobile version of WarLight, which will first target iPhone and then later Android devices.

The mobile client will be a native app offered on the Apple App Store and the Android Market. This will be a full equivalent to the Flash client in that you can play the exact same multi-player games as you can on your computer, however the UI is completely re-worked to adapt to being played from a phone. This means it’s not a scaled-back version of WarLight — it supports all of the settings and all maps! Before you get too excited though, know that it’s not done yet — see below for a timeline.

WarLight is a perfect game for mobile devices due to its asynchronous nature. Unlike other multi-player games where you have to be online at the same time as your opponents, WarLight allows you to take your phone out of your pocket whenever you have a free moment, enter your orders, and put it right back. I believe the mobile platform will only get more important as time goes on, as fewer and fewer people own desktop PCs. And WarLight is a great fit for this environment. My goal is to put WarLight on as many devices as possible, so you can play no matter where you are.


I know many of you at this point are wondering if this mobile client will run on your iPad or Android Tablet. The short answer is yes – it will run as an iPad or Android Tablet app. However, it’s important to understand that the UI is designed to be used from a phone.

I do recognize that tablets are also a growing market, and I do believe that WarLight is a fabulous game for tablets as it lends itself very well to a touch interface. In the future I hope to build a UI that�s custom-tailored to fit the tablet form factor. However, this release is focused on phones. The fact that it happens to also run on tablets like the iPad is just a free bonus.

Preliminary Timeline

As stated above, the mobile client is still a work-in-progress. I’ve been working on it in secret for a long time, and I’m finally within reach of having a “preview” version that I can share with the purpose of getting feedback. This is the first mobile app I’ve ever made, so I expect it to be a learning process with many iterations. For this reason, the first previews will be member-only. If you’re a WarLight member, you don’t need to do anything extra to sign up for the betas – just keep an eye on the blog.

1.05: The first step is to get WarLight 1.05 out (hopefully this week). This will this contains all of the changes to the server code needed to support the mobile client. For example, the format that WarLight stores maps internally is changing a lot so that mobile devices can render them quickly.

Preview: After 1.05 is out, there’s at least a few weeks of work still left before the first mobile client release: the preview. The preview will have just enough features to play multi-player games and chat in them.

Alpha: After the preview, I’ll begin working on the alpha. The alpha will add single-player support, as well as a more complete multi-player experience including things like the ability to see history, game settings, the players window, nudge/boot window, etc.

Beta: The beta will allow creating games, as well as the lobby’s add/remove players feature. The beta period will focus on bug fixing, polish and enhancing usability.

Release: The mobile client is pushed to the Apple App Store and Android Market.

Post-release: Tournaments are a lower priority and won’t make it until after the initial release. Also, things on the website (such as reading and posting on forums, viewing and joining the ladders) are also a lower priority since they can already be accomplished through a device’s web browser. However, it’s nice to have them all eventually added to the app so it becomes a one-stop shop.

Technical Details

Currently, the mobile client supports the My Games page, the lobby page, sign in, sign out, sign up, forgot password and the ability to render any map with panning/scrolling/zooming. All that’s left to add for the preview is the ability to deploy armies, issue attacks, commit orders, pick territories, and play cards.

It will run on Android Devices 2.1 and up and all iPhones. As a benchmark, I’ve been testing the Big USA map on a first-generation iPhone. Since the Big USA map is so large, and the first-generation iPhone is so old, this is what I consider the worst case scenario. Anything else should run swimmingly performance-wise.

To accomplish this, the maps are rendered using OpenGL to get the maximum amount of performance out of each device. All of the UI that doesn’t involve interacting with the map is handled with the native UI controls on each platform. (buttons, switches, etc.) I really like this mixed approach since it simultaneously allows for fast rendering you get with OpenGL, but avoids having to re-implement all of the native UI controls like many fully-OpenGL apps do.

One of the biggest hurdles was maintaining a single code-base for all of the clients. Most games that are written on multiple platforms / mobile devices end up doing re-writes of their code. I’d be willing to do a one-time re-write of WarLight’s code if I had to, but what I can’t do is actively maintain many copies of the code. I simply don’t have the time to fix every bug multiple times and add every feature multiple times. Combine this with all of the features I plan to add to WarLight down the road, and it’s clear I need a cross-platform solution. I’ll talk more about this in future blog posts.

Another hurdle was automated testing. I’ve talked a little bit about this on the blog before – I’m a huge fan of automated testing and WarLight would simply not be possible for a single person to do with manual testing. The number of combinations of game settings and situations is mind-boggling, and trying to manually test each of these before every release would make releasing extremely expensive.

Every time I add a feature, I add a slew of automated tests that test the feature in every significant way I can think of. Similarly, anytime a bug is found, a test gets created that reproduces the bug before the bug is fixed. These tests live forever and they all get run before any WarLight release happens. This ensures that bugs don’t come back (regressions).

The mobile client is no exception. I’ve been writing automated tests for the mobile client from the very beginning as I develop each feature for it. These tests take work to create and maintain, but they really pay off in the long run as they allow for rapid releases.

Once the preview is out, I hope to return back to a regular release schedule of once every 2-3 weeks. This is how I prefer to operate — the last few updates have been much slower because I was splitting my time between the mobile client and traditional releases. These days will soon be behind us — I’m eagerly looking forward to being able to rapidly add new features to the WarLight!

Stay tuned to the blog for more updates.

Announcing WarLight 1.4

WarLight will be going down on Wednesday, May 25th at 11pm PDT (6am GMT) for up to 1 hour. Please plan accordingly for any fast games or single player games that may get interrupted during this 1 hour window.

During this time, WarLight will be upgraded to v1.04.0. This blog post contains a summary of what’s changing.

Ladder Graphs and Arrows

When viewing a player or team’s ladder information, WarLight now shows you a graph of their previous rank and rating:

Further, all of the ladder pages now show small arrows that indicate the movement over the past week:

Profile Additions

The little speed graphs on the left side of profile pages received a small addition. It’s now split between real-time games and multi-day games. Additionally, the multi-day game graph now has a new section for turns that took longer than a week.

The Gold Stars that you can earn by completing single player levels quickly are also now shown on your profile.

Percentage Attacks

When issuing an attack, you can issue them in raw army numbers or by percentage. A small change is being made to the way that percentage attacks work.

Previously, attacks by percentage were calculated based off of the number of armies on the source territory. Now, attacks by percentage are calculated based off the number of armies that are available to attack with.

Let’s look at an example. Say you have 21 armies on Brazil and 21 armies on Argentina. Say you transfer 20 armies from Argentina to Brazil, and then attack Nigeria from Brazil with 50%.

When the attack happens, Brazil has 41 armies, but only 20 of them can attack (the other 20 already moved since they came from Argentina). In the old behavior, WarLight would calculate 50% of 41 and attack with all 20 armies. In the new behavior, WarLight will take 50% of the armies that are available to attack, and attack with 10.

Round Robin Tournament Limits

When creating a round robin tournament, tournament creators now have the option to specify how many teams/players will be allowed to join the tournament. Of course, there’s still a “Start Tournament” button, so this number really specifies the maximum number of players. When the tournament is full, it will automatically start as well, which relieves the tournament creator from having to click the start button.

While this is only a minor convenience for non-team tournaments, this fixes a key problem that existed for team round robin tournaments. Since the tournament now has a maximum size, it can help guide players into forming even teams. Since the tournament can’t start with uneven teams, this makes it significantly easier to get team round robin tournaments up and running.

Ladder Matchmaking Tweaks

The ladder’s matchmaking algorithm has to walk a fine line. If it tries to be too selective in the matches it creates, some people will complain that they aren’t getting as many games as they’d like. Conversely, if it’s less selective, some people complain about who their opponents are. I’m trying to tweak it only in ways that logically make sense, and to make sure I’m not overcorrecting it one way or the other.

The ladder has eligibility requirements for two players or teams to be matched against each other. For example, they can’t currently be playing each other, have just finished a game with each other, or have had a match created against each other in the last 3 games.

The first change being made is that the ladder eligibility requirements now go both ways. Teams or players won’t be matched with someone, even if they meet the requirements, if that other person doesn’t meet the requirements back at them. This is a logical change that will help bring some stability to the matchmaking algorithm.

Since this will cause some people to receive fewer games than before, the ladder range is also being increased to counteract this. The range the ladder looks at has been increased from 25% to 30%.

Even with this increase, I expect some people will have stagnated games in the short-term due to this new requirement. However, as a few more games finish, this will pass and everything should return to the same quantity of games it was at before, but the quality of opponents should be much higher (i.e. fewer repeats and more diversity.)

Bug Fixes

– Fixed bugs around retired ladder games.
– Fixed a bug that caused the “A” hotkey, when used to skip watching the latest turn, to make the game think you hadn’t watched the latest turn and sometimes revert back to the watching state (such as when exiting history.)
– Fixed a bug that was causing the spy’s card “Can spy on Neutral” flag to not obey templates.
– Fixed a bug that was causing the team-size box to not obey templates.
– Sorting the My Games page by Game Name now does a case-insensitive sort.
– Fixed a bug that was causing stroke opacity to be inconsistent on some maps.
– Fixed a bug that caused the Send Feedback window text to not be selectable with the mouse.
– Fixed a bug that caused errors if you went too far back into the “All Forum Posts” archives.
– Fixed a bug that sometimes caused an error when a host changes the invited players from the lobby screen.

New 2 v 2 Ladder Settings

Players recently voted on new 2v2 ladder settings (where each player is given two territories instead of one to start) in this thread. The results are in!

– 80% approve of the new settings
– 10% rejected the new settings
– 10% don’t care

Overwhelmingly, most of you like the new settings. Therefore, these new settings will go live in the next WarLight release, which will be v1.3. As is policy, the new settings won’t take effect for at least a week from the date of this announcement, so players have time to practice with the new settings before they go into effect.

You can view the new settings (or create games with them) with these links: multi-player, single-player

The Impaller versus The World

I’m pleased to announce a special WarLight event called The Impaller versus The World! This is a public 1v1 WarLight game that anyone can participate in.

This game is a Strategic 1 v 1 game where one side of the game will be played by The Impaller, who’s one of WarLight’s best players, and the other side is played by you! Everyone in the WarLight community can vote on what move to make in the game, and the highest voted option will be carried out in the game.

This game’s primary purpose it to serve as a learning exercise — who wins isn’t important. The game will take two turns every week – one every Tuesday and another every Friday. Check the forum to follow along with the game, read strategies, share your strategy, and of course, vote!

The voting uses, which has a cool voting system that doesn’t require you to pick a single option. Rather, you can rate each option with a star rating between 0 and 5 stars. This means that if there are two options you can’t decide between (or that are very similar), you don’t need to decide between them – you can just put both of them at 5 stars.

Troll has agreed to moderate the game. Every Tuesday and Friday, he will create a forum post with instructions on how to vote. Troll will create several options to vote for, but feel free to suggest your own in the forum thread if what you really want to do is missing from the list.

Important: Be sure not to post your strategies or talk about the game anywhere except the official forum threads. The Impaller knows that he’s forbidden from reading the clearly marked threads, but if you talk about the game somewhere else he may accidentally come across it.

The game begins today! The first step is to do territory selection. Here’s the board we have to start with (click to enlarge):

Head over to this forum post to cast your votes!

Announcing WarLight 1.2

WarLight will be going down on Friday, April 1st at 1am PDT (8am GMT) for up to 2 hours. Please plan accordingly for any fast games or single player games that may get interrupted during this 2-hour window.

During this time, WarLight will be upgraded to v1.02.0. This blog post contains a summary of the new features going live.

Open Tournaments

Tournament creators can now mark their tournaments as “open”, which allows any WarLight player to join their tournament without having to be invited! This makes it much easier to set up public tournaments.

This is similar to the Open Seat system that exists for games, but for tournaments. Tournament creators can use the existing open seat prerequisite system to define prerequisites that players must meet in order to join the tournament. Blacklists are also honored, just like they are for open games, in that players that the tournament creator has blacklisted will not be allowed to join an open tournament without being invited.

Map Browser Improvements

The process of picking the map you wish to play on now has additional options to help you explore the maps easier. First off, the map browser now allows for searching, so you can type the partial name of a map, for example, “Earth”, to filter down to all of the maps that contain the word Earth.

Second, there’s new sorting options that allow you to sort the maps by their name, number of territories, or age.

Last, the WarLight maps have been divided into the following categories:
– Featured Maps: This replaces the current “built-in maps” drop-down that exists today.
– All Maps: A way to view all of the maps on a single page.
– Real World Maps: Maps of places that exist in real life.
– Fictional Maps: Maps that look like a real-world place, but don’t actually exist.
– Novelty Maps: Maps that don’t even try to resemble a place.
– Local Maps: Maps that appeal to small communities, such as a specific office building or school.
– Single Player Maps: This category exists just to separate out the Europe Challenge map, which isn’t really suitable for multi-player under some settings since it contains isolated territories.
– Testing Maps: For map creators, maps they’re testing are now placed in their own special place to make finding them easier.

Strategic 1 v 1 updates

As promised in the previous blog post, the Blockade card is being added to the Strategic 1 v 1 settings.

Timezone Improvements

Dates and times have been a bit inconsistent on WarLight. When within a Flash part of the site, any dates were shown in your local timezone. This is possible because Flash knows your timezone. However, the WarLight website always had to display timezones in GMT, since web browsers don’t share their timezone information with websites.

This is being fixed so that everyplace on WarLight will always show you dates in your local timezone. This is made possible by Flash. The first time you hit the Single or Multi-player tab, WarLight will store your timezone so that everyplace on the site can represent dates in your local timezone.

Ladder Improvements

Ladder matchmaking has been tweaked. Instead of matching players/teams with 20% of the ladder on either side, WarLight now matches either 10 places on either side or 25%, whichever is larger. This improves the situation that’s currently faced by the 2v2 ladder, which has a smaller potential pool of teams to play against.

Ladders will no longer invite you to a game with someone you just finished playing or someone you’re currently playing.

The ratings of players in their provisional period are no longer shown on the main ladder pages. You can still see their provisional rating by clicking on their name. The main ladder pages sort provisional players by the order in which they first joined the ladder. This helps to avoid placing more emphasis on provisional ratings than is due.

Players who have finished 30 or more ladder games now have the option of dropping to one game at a time.

The layout of the 2v2 ladder games has been updated so that it’s more readable. This makes the dashboard look a bit cleaner.

Misc Fixes and Improvements

– Profiles now say “1v1” instead of “2 player FFA”
– Changed the way that the Flash app is sized to fix scrollbar issues.
– Fixed a bug that sometimes caused the turn indicators in the chat window to be off by one.
– Fixed a bug that sometimes caused focus to get lost, making hotkeys not work until the next click.
– Fixed a bug that caused the 15-minute auto boot to really be 10-minute auto boot.
– Fixed a bug that caused a white box to appear over player names on the invite screen for players with an extremely large invite list.
– Fixed a bug when previewing a map from the website that caused the “Go back” button to be visible when it didn’t do anything.

EDIT: Forgot one:
– Tweaked the history hotkeys based on feedback. The Home and End keys are now used to go to the beginning and end of the game, and the left/right keys are strictly for moving one turn at a time.

The blockade card is coming to the 1v1 ladder!

As a result of voting over the last week, the blockade card is officially going to be added to the 1v1 ladder! This will make the game deeper and create for a lot of new and interesting strategies.

You can view the new settings with this template: Play in Multi-Player, Play in Single-Player.

Be sure to practice up! The change will go live at least one week from today (probably more), so you still have time to practice.

Thanks to everyone who voted. 16% of the voters picked the “I don’t care” option. Of those who cared, 72% voted in favor of the card and 28% voted against it. This is pretty definitive that far more people are in favor of the change than not.

Ladder players: Be sure to vote!

There are two polls going on right now that will affect players participating in either of the WarLight ladders. Please vote if you’re a WarLight member playing in or interested in the ladders. Vote even if you don’t care about the outcome (there’s a “I don’t care” option.) I want to ensure everyone has a voice!

Poll 1: Should the blockade card be added into the 1 v 1 ladder?
Poll 2: Should the ladders switch to a traditional ELO model?

Blockade Card

The first poll is about whether or not the blockade card should be added to the 1v1 ladder. This poll ends on March 23rd, so there’s not much time left. Vote now if you haven’t!

Note that, as a general rule, any changes to the ladder game settings will be announced on this blog at least one week before the changes take effect. This gives you time to practice with the new settings.

Ladder Rating System

The second poll deals with the ladder rating system. This one is a bit more involved – you can read all about it on the poll page. However, I do want to touch on one problem that some players have noticed.

A couple skilled ladder players have been able to exit the provisional period at a very high rank, such as #1 or near #1. This happens if they go 10-0 or 9-1 in their first ten games, since the Bayesian ELO system rates players based on their record / opponents and 10-0 or 9-1 is a very good win rate.

First, let me establish one fact. If a player goes 10-0 (ten wins, zero losses), that does not guarantee that they’ll be ranked in the top 10. This only guarantees that they’ll be placed above the ten players they defeated. If their ten opponents all have low ratings, they’re not going to be ranked very highly even though they’re undefeated. This is a good thing, as it ensures that players must earn high ranks by defeating tough players.

Now, some players figured out that the easiest way to get to #1 is to have 9 wins against low rated players and one win against a high-ranking player (such as the top 5). The 9 low-ranking wins are easy for a skilled player, and they just have to be good enough to defeat a single high-ranking player to claim the #1 spot.

This is a problem, as it rewards manipulating the ladder. However, what really made this strategy possible was the old matchmaking algorithm. The old matchmaking algorithm would prefer to match provisional players with other provisional players, while simultaneously allowing a match between any two players under the right conditions.

This old algorithm made it possible to achieve a #1 rank with only a few wins against very good players. The matchmaking algorithm that exists today works very differently, which makes rising to the #1 spot much more difficult (as it should be!)

In the new algorithm, you’re always matched with other players near your rating even when you’re in the provisional period. Further, you’re only matched with players within 20% of the ladder from you. This means that new players joining the ladder won’t get matched with players in the top 5 right away – they have to defeat some lower players first in order to earn the right to face the higher players. Simultaneously, skilled players won’t have a cakewalk during the provisional period anymore. Once they start winning, they’re going to get matched against tough players before exiting the provisional period.

The bottom line is that, today, it’s much more difficult to emerge from the provisional period at a high rank than it used to be.

Announcing WarLight 1.1: 2 v 2 Ladder

WarLight will be going down on Friday, March 11th at 1am PST (9am GMT) for up to 1 hour. Please plan accordingly for any fast games or single player games that may get interrupted during this 1-hour window.

During this time, WarLight will be upgraded to v1.01.0.

2 v 2 Ladder

WarLight 1.1 will bring us the 2 v 2 ladder! This ladder uses the “Strategic 2 v 2” settings, just like how the 1 v 1 ladder uses the “Strategic 1 v 1” settings.

Unlike the 1 v 1 ladder, however, you enter the 2 v 2 ladder along with a partner. The two of you will be placed together on the ladder and receive a single rating as a team.

Like the 1 v 1 ladder, all players joining the ladder must be WarLight members. Further, each player can only be on the ladder once. In other words, you can’t pick two partners and join the ladder on two different teams at the same time.

However, you’re not locked with your partner for all eternity. You may leave the 2 v 2 ladder and then re-join the ladder with a different partner. Doing this will create a new team whose rating will start over from scratch. Ratings cannot be transferred from old teams to new teams – so it’s not a decision to be made lightly! However, you can always change your mind and go back to the first partner, as re-joining the ladder with a partner you had previously played games with will assume your previous rating with that partner and place you back on the ladder as if you had never left. This is similar to how re-joining the 1 v 1 ladder works.

Move Order is now Team-Aware

Today, when WarLight sets out to determine who gets first pick during territory selection or who gets first move on each turn, it randomizes the list of every player in the game. This is perfectly fair in free-for-all games, however in team games it’s possible that multiple players on one team will get priority over others.

Let’s look at an example.

Assume we have a game with players 1 and 2 on team A, and players 3 and 4 on team B. Let’s say that all four players pick Mexico as their #1 pick and Norway as their #2 pick.

Prior to 1.1, WarLight would simply randomize the list of players (1, 2, 3 and 4) into any order. Let’s say the order comes out 3421. In this example, this would award both Mexico and Norway to team B. Team A would need to resort to their 3rd picks.

WarLight 1.1 makes this scenario more fair. After 1.1, WarLight ensures that the ordering switches between teams so that, in this example, one team would get Mexico and the other would get Norway – it’s impossible for one team to get both.

WarLight will switch between teams in the same way that it switches between players now – by reversing the order after each iteration. For example, teams will alternate ABC CBA ABC CBA.

Improved Ladder Matchmaking Algorithm

The algorithm that matches players up in the ladder will receive a bunch of improvements.

The biggest change is that it will only match you with players near you in the ladder, instead of before where it preferred near players but could have matched against anyone. The ladder will only create games with people who are within 20% of the ladder from you. For example, if there are 50 players participating in the ladder, it will only look at the 10 players above and 10 players below you.

The algorithm is also receiving improvements that makes it work better for players in the provisional period, as it now ignores rank and creates games solely based on rating. Previously, it preferred to match provisional players against other provisional players which made it too easy to get onto the ladder with a high win ratio (10-0 or 9-1, for example). Now, it will match you to people rated near your rating, regardless of whether you’re provisional or not.

The full algorithm will be documented on the Help tab once 1.1 is live.

Hotkeys for Navigating History

1.1 will allow you to use the arrow keys as hotkeys to navigate around history of a game. The left and right arrow keys go forward and backward one turn, while the up/down arrow keys go forward and backward one order.

Additionally, while not in history the left arrow key takes you to the first turn of a game. Combined with the existing escape hotkey, which closes all windows, this makes it easier to quickly refer to the distribution state of a a game by simply pressing left and then escape.

Misc Changes

– Players can now hold down Shift when clicking on a territory to insert the territoriy’s name into public chat, and hold Control when clicking on a territory to insert it’s name into team chat.
– Increased the invite limit for single-elim and double-elim tournaments. You can now invite up to three times the start size of the tournament.
– A player’s ladder games now sort by last turn instead of game age.
– A player’s ladder games now highlight based on win/loss. This makes it easier to tell how much a player has been winning.
– Fixed a bug in the “Cumulative Defensive Luck” and “Cumulative Luck” graph.
– Fixed a bug that prevented players from moving a template between single-player and multi-player.
– Fixed the appearance of the member icon on the lobby screen.
– Fixed a bug that was showing the “this player is in their provisional period” message on players who had left the ladder.
– Fixed a bug that caused an error if you clicked history buttons on a game where someone got booted during territory distribution.