WarLight turns five!

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

WarLight has come a long ways in five years! Over 2.5 million multi-player games have been played and it’s showing no signs of slowing down.

Here you can see a graph of relative traffic to WarLight.net from the last few years:

In the early days, traffic was pretty flat. March of 2010 is when WarLight swapped from Silverlight to Flash and the traffic started steadily growing. The first spike you see in June 2010 is the big Poland spike, when lots of Polish people found the game (mostly through Polish site joemonster.org). The big increase in traffic in October 2011 was due to the release of the stand-alone client that was distributed to Flash gaming sites such as Kongregate and Armor Games. You can also see big dips in traffic every December as people are away for the holidays.

2013 is going to be an important year for WarLight. Stay tuned to the blog for announcements!

Site and mobile update 1.15.9

WarLight has just been updated to version 1.15.9! This is primarily an update to the mobile client, but it also includes some small bug fixes and improvements to the website. This blog post contains a summary of what’s changed.

The Help Forum

There’s a new forum called the Help Forum. This is a place for players of all experience levels to ask questions about how WarLight works. If you’ve ever wondered how something works, feel free to drop by and ask! If you’re an expert on WarLight, feel free to drop in and impart your wisdom on others.

Other Website Changes

– Real-time games no longer send e-mails when you surrender, win, are eliminated, or vote to end. They were unnecessary since, unlike in multi-day games, the player was likely already present in the game when these actions took place.
– When chatting, you can sometimes see messages that came in from a turn greater than the one you’re looking at. The client now notices this and automatically refreshes to get the latest turn.
– When creating a multi-day tournament with the word “lobby” in the title, the game now suggests that you should probably use real-time for real-time tournament lobbies.
– Tweaked the refresh times a bit. It’s now faster in real-time games. It’s slower in multi-day games unless they advanced in the last 10-20 minutes so that they can still be played real-time.
– The clock shown for real-time games no longer shows 0 hours since it’s always 0.

Mobile Client Changes

This update to the mobile client adds a lot, so be sure to update to it if you’re one of the beta testers! Android beta-testers can install this via the usual method. Please try out these features and let me know how well they work for you.

– In the settings menu, you can now enable push notifications. When enabled, WarLight will notify you whenever it’s your turn or invited to a multi-day game.
– Added the Open Games page.
– Added the clock for real-time games.
– Added the analyze button for checking kill percentages.
– Added the ability to preview maps. This can be done from a game’s settings, a game’s lobby, or when creating a game.
– Added the ability to view custom scenarios when looking at a game’s settings.
– Added auto-refresh. Pressing the refresh button isn’t as necessary anymore. If you’re concerned about data usage, you can turn it off in the settings.
– Overhauled the look of the settings screen
– When long tapping the map, there’s now a circle that collapses around your finger to help you realize that it’s working. Information was also added to explain what this is, and the tip from the main menu was removed.
– iOS: Added retina iPad icon.

Site and mobile update 1.15.8

WarLight has just been updated to version 1.15.8! This update brings the mobile client closer to party with the Flash version. As is often the case, some improvements to the website snuck into this update too. This blog post contains a summary of what’s changed.

Change Player’s Color

It is now possible to change the color that you or an opponent appears as on your own screen. To try it out, open a game, click on someone’s name in the lower-right, and select the new “Change Color” button.

Changing a player’s color only affects your own computer; everyone else will still see them as their true color. This is useful for a few situations:

  1. If you’re looking at a game where multiple players have very similar colors, you may wish to change one of them to make it easier to tell them apart.
  2. If you’re colorblind and the colors chosen aren’t ideal, you can change players to colors that you can see more clearly.
  3. If you aren’t playing as the color you wanted to play as due to someone else taking it, and are too stubborn to adapt, you can change yourself back to your desired color.
  4. If you’re playing a complex team game, you can change colors on a team to similar shades to help in visualizing what each team owns. If you want, you can even change entire teams to the same color, as WarLight does not prevent you from setting multiple players to the same color.

Changes in color are temporary. If you refresh your browser, all players will revert back to their standard colors.

Other Website Changes

– Re-arranged the player popup a bit when making room for the Change Color button. It’s now easier to read the info box when it has long lines.
– The seasonal ladder now requires 7 games to be completed before getting a rank instead of 5. This will cause the ratings to be less chaotic in the early days of a season.
– Fixed a bug that caused an error if you typed a non-number into the reinforcement card’s progressive multiplier box.

Mobile Client Changes

This update finishes out the ability to create multi-player games from the mobile client! All customization options are now available when creating games. Since this added a lot of UI to the app, it would be great if beta testers can try it out and e-mail if they find any problems.

Android beta-testers can install this via the usual method. If you’re a WarLight member and want to beta-test the iOS version of the game, there’s now a sign-up page located here.

Here’s the full change log for this update:

– Added the ability to customize game settings when creating games.
– Added checkboxes on multi-select screens.
– Template owners are no longer shown when you’re only looking at your own templates since they were redundant.
– Cleaned up the some of the card UI.
– Fixed a bug that occurred if you rotated your device while a game was loading.
– Fixed a bug when creating a game with custom scenarios that caused new players added to a game to not get assigned a slot by default.
– Android: Added space to the bottom of the menu so it looks a bit nicer.
– Android: The software keyboard no longer pops up by default on the game creation screen.
– Android: Fixed a bug that caused the fog texture to not appear after locking and unlocking your device.
– IOS: Retina devices now render the map in full resolution
– IOS: Fixed a bug that made some main menu buttons unclickable on some devices
– IOS: The app works under iOS 5 now. 6 is no longer required.

Site and mobile update 1.15.7

WarLight has just been updated to version 1.15.7! The mobile client creeps ever closer towards completion, and as usual, the website gained a few minor updates too. This blog post contains a summary of what’s changed.

Real-time tournament invite e-mails

You can now control whether or not you receive tournament e-mail invite emails separately for multi-day tournaments and real-time tournaments. Under Settings -> E-mail notifications, you’ll find two check-boxes: one for multi-day tournaments, and another for real-time tournaments.

Multi-day tournament e-mails default on, but real-time tournament e-mails default off. This means that if you want to receive e-mails when you’re invited to a real-time tournament, you must turn it on in the settings.

This reflects how most people use e-mail. Most people don’t get instant notifications when they receive an e-mail, so they typically won’t see the invite to a real-time tournament in time to join it. This leads to lots of disappointment when they check their e-mail only to find invites to tournaments that it’s too late to join.

If you’re going to create a “lobby tournament” for a real-time tournament, please make sure your lobby is set to real-time as well. This prevents people from getting e-mails that don’t want them.

CLOT can override bonus values

The CreateGame API can now be used to specify overridden bonus values. This allows custom ladders/tournaments to control the bonus values for each game independently, which opens up some new options. For example, you can make a ladder or tournament where the bonus values are randomized in each game.

See CreateGame on the wiki for information on how to use this.

Bug fixes

Two bugs were also fixed in this update:

– Fixed a bug in the game creator that made custom scenarios not appear if you closed and re-opened the scenario builder right away.
– Fixed a bug that caused an error if you clicked “map page” on an under-development map

Mobile Client

If you’re playing WarLight on Android, you can install it via the usual method. I highly recommend upgrading to this version since it has a few key bug fixes.

The biggest feature added in this release is the ability to create multi-player games from templates! You can’t customize template settings yet, but if you have a template you want to use as-is you can use it.

This also adds the ability for game creators to add or remove players to a game from the lobby.

Further changes:

– Overhauled the look and feel of the player details screen.
– Fixed a bug that made territory picks unviewable during the first turn.
– Android: Fixed a bug that caused deployment issues on some phones.
– Android: Fixed a bug that made screen title’s become off-center when rotating your device.
– Android: Fixed a bug that caused order re-arranging to not work.
– Android: Fixed a bug that made the map not appear after sleeping and waking your device.

Site and mobile update 1.15.6

WarLight has just been updated to version 1.15.6! This is primarily an update to the mobile client, but a few features snuck into the website as well.

Website Changes

– Added a link on the Forum page to view posts from all forums together.
– Added a tournament filter “Active tournaments I didn’t decline”
– Optimized up the “My Tournaments” page.
– [code] blocks on the forum no longer become double-spaced
– Added DeleteLobbyGame API that allows CLOT to delete games if they don’t start.
– The GameFeed API can now be used by CLOT to retrieve limited player data about games that haven’t finished yet.
– Improved the error dialog with options to report the bug.
– Fixed a bug that was causing some maps to use more data points than they needed to, slowing down the map rendering.
– Fixed a bug in the analyze graphs that could occur when the offensive kill rate was significantly modified from its standard 60%.
– Fixed a bug that could cause an error in some cases when loading a saved game.

Mobile Client Changes

EDIT: For members who are upgrading from the previous Android client, please un-install the existing client before installing this new version. This is necessary since the package name changed to support Facebook authentication, so Android views it as a different app. If you don’t un-install first, you’ll end up with two copies of the WarLight app. If you’re already in this state, just un-install both and then install the correct one again.

– You can now sign in with Facebook, just as you can on the website.
– The look and feel of the lobby has been overhauled.
– When you receive a private message, it now appears as an item on the game’s menu.
– Added space below the map for the deployment slider so that the slider will never overlap a territory you’re trying to deploy to.
– Fixed a bug that made scrolling choppy on large-screen devices or in landscape orientation on small screen devices.
– Fixed a bug that caused an error if you changed your password on the website while you had the mobile version open.
– Fixed a bug that caused skinny horizontal rectangles to appear on the map (this fix may not appear right away since the affected maps need to be re-processed)
– When playing an Airlift card, the back button now works properly.
– The history menu option is no longer visible on games still distributing territories or on the first turn.
– Upgraded the app from OpenGL 1.1 to OpenGL 2.0
– Improved the error handler so it won’t trap you in an infinite loop of errors.
– Fixed memory leaks.
– Fixed a bug that could cause an error if the back button was pressed too rapidly.
– The deployment slider is now centered.

Season VII

Congratulations to unknownsoldier for winning Season VI! Season VI came right down to the wire — unknownsolider snatched victory at the last minute!

Season VII will take place on the Heavy Earth map. This is a bigger map than Medium Earth. Combined with smaller neutrals, this allows for a lot more expanding than what we’ve seen before.

The three territories that you start with all begin with just 1 army instead of the normal 4. This makes cluster-picking less effective, so spread out those picks!

The luck percentage is still 16%, but this time on straight round. This makes it so the attacks against neutrals are guaranteed, but when you’re fighting opponents you’ll have a small amount of variation. Also, the order priority and order delay cards are missing this time to change it up a bit.

Check out the exact settings with this template: multi-player, single-player.

We’ll kick things off on January 2nd and it will end on March 3rd. Good luck!

Website outage

The WarLight.net website is experiencing an outage (EDIT: It’s back up!). I’m working on getting it back up as fast as possible. More details will be posted soon. Sorry for the inconvenience.

UPDATE 10pm GMT-8: The main WarLight database has suffered a hardware failure. Rackspace engineers are currently working to recover the data onto a new server. As a backup plan, I am also restoring the latest database backup onto a fresh server, just in case Rackspace is unable to restore the old server. The latest backup I have was taken about 4 hours before the outage, so I’m hoping it does not need to be used.

UPDATE 5am GMT-8: I’m really mad at Rackspace. For the last ten hours all they’ve given me is “We can’t give you an ETA” over and over. Finally, they tell me it’s 95% done being restored and will be up within 2 hours.

UPDATE 6:49am GMT-8: The website is now functional again. Unfortunately, there was a few hours rollback in the database. Hopefully players who happened to commit turns within that period will be respectful and try to commit the same orders they played the first time. I’m going to be taking steps to ensure this can’t happen again.

Additionally, for the next several hours, booting in all games will be disabled (you’ll get an error message if you try to boot.) This will allow players who couldn’t take their turn before the boot timer to get it in before getting booted.

WarLight’s database has had hardware failures before, however Rackspace typically will automatically move your server to a fresh machine with only a few minutes of downtime. This has happened several times, actually, and it’s never been a problem before now. This time it didn’t work for some reason, and to make matters worse, their support personnel were very unhelpful. I had gotten complacent on relying on Rackspace’s automated failover. Unfortunately, when the failover finally did happen after several hours, the database was corrupt beyond repair and I had to go with my own backup anyway.

To ensure this can’t happen again, I am going to set up a continuously streaming backup system that will backup the database several times per minute. This way, if there’s another failure, I don’t have to rely on waiting for Rackspace’s failover and I can restore from my own backup without significant data loss. Previously, the backup was only made every few hours, so this is a significant jump in reliability.

I realize the problems that outages cause, and I’m probably more disappointed by this than any of you. I take this very seriously as it’s my full-time job and I am going to take several steps to ensure this can’t happen again.

UPDATE: As mentioned above, booting is temporarily not allowed in any games. This gives a chance for players who are over the boot time in their games and couldn’t play due to the outage to take their turns. I realize this makes it difficult to play new real-time games, but please bear with me as we get everything back to working normally.

UPDATE: Booting is now re-enabled.

Announcing Custom Ladders/Tournaments framework (CLOT)

I’m pleased to announce the availability of the CLOT framework! CLOT stands for Custom Ladder Or Tournament. This is a way that players can create their own automated ladders or tournaments that far exceed the capabilities of WarLight’s built-in ladders and tournaments.

How it works

Each CLOT is hosted as its own website, separate from WarLight.net. This website manages the ladder/tournament — it has full control over how games are created, the game’s map and settings, how players are ranked, how the ranks are presented, etc. Players who want to join can go to this website to sign up with their WarLight account.

CLOT is an open-source framework that contains everything needed to create a CLOT website. The player creating a CLOT must be a WarLight member, but there are no restrictions on who can join and play in it.

It’s expected that the player creating a CLOT should know how to code, as the framework provided is just a skeleton example to get you started. Players who want to create a CLOT website will extend the framework to meet their needs. The framework is written in Python, but it could be ported to any language if you want to work in something else. It works by communicating to WarLight through the public APIs to create games and get updates on them.

Examples

Since the CLOT framework is an open-source programming tool, it can be used to create all sorts of different types of ladders and tournaments. It’s only limited by your imagination! Here are some examples of things you can create with it:

  • Clan battles: WarLight gives you access to the name and tagline of players joining, so you can parse out what clan they’re in by looking for clan tags. Then you could make a system that invites players to battles based on their clan, and show rankings of how well each clan is doing.
  • Promotion/relegation league: These leagues that have been popular on the forums can now be completely automated.
  • Vote-who-will-win tournament: You could make a single-elimination tournament where, before it starts, players can view the tournament bracket and cast votes for who they think will win. You can even allow players who aren’t participating in the tournament cast votes. Then when it ends, you can not only display the winner, but also who voted most accurately.
  • Real-time ladders: You could make a scheduling system that allows ladders made up of real-time games to take place. For example, players could tell your website when they’re on-line and ready to receive games, or you could work out a scheduling system where players input what times of the day they’re available.
  • Anonymous tournaments: You could make tournaments that don’t reveal who’s participating until the tournament ends.
  • Best-of tournaments: Like a single-elimination tournament, except each match is a best-of-3 or best-of-5.
  • World domination: Using custom scenarios, you could make a tournament where each round moves up to a bigger region of the world until the championship is on a world map. For example, say you get the first round as an FFA on a Italy map. If you win on Italy, then you go onto the second round, which is on the Europe map and you start with Italy. If you win on Europe, then you go up to the championship which is on the world map and you start with Europe.
  • Seasonal ladder followed by playoffs.
  • Ladders with rotating settings or maps.
  • Ladders with your own rating algorithms or settings, such as a 3v3 ladder or FFA ladder.
  • Choose-your-team tournaments: There’s nothing stopping you from creating pages on your CLOT website that input extra information for each game. For example, say you’re making a 5v5 tournament. You could pick 10 random players for each game, and elect a captain for each team who alternate choosing players for their team.

Getting Started

Check out the Getting Started guide on the wiki for instructions on how to get started using CLOT here. If you get stuck, there’s a new forum section for CLOT development, so feel free to ask questions!

Site update 1.15.5: Small update

WarLight was just upgraded to version 1.15.4! This is a just small update to fix a few bugs, but real-time tournaments also snuck in.

Real-time tournaments

It’s now possible to make tournaments real-time, which will allow the same boot times that real-time games do.

If a real-time tournament doesn’t start (i.e. fill up with players) within one hour, it will be automatically deleted. This is done as a safety mechanism to ensure that slow-filling tournaments don’t end up starting long after the majority of the players have already left who will then just have to be booted.

The primary intent of real-time tournaments are for players who organize their tournaments outside of the game (such as by announcing them ahead of time on the forums). Just creating a real-time tournament and expecting it to full up on its own is unlikely to work out well.

Teammate Card Fix

There’s a change in this update that should fix a problem that sometimes came up in real-time team games that involved lots of cards.

If a team has two copies of the same type of card (say, two order priority cards), it can sometimes be difficult to split the two cards between two teammates in real-time games. If teammate A tries to play the first card, and teammate B tries to play the second card, and they take their turns at the same time, there’s a chance that they might both try to play the same card which will cause the second committer to get a message telling them that they’re playing a card their teammate played.

This didn’t typically happen in multi-day games since WarLight is smart enough to see what cards your teammate has played, and pick the one in the stack that your teammate didn’t play. However, this can’t happen when both teammates play simultaneously since the game doesn’t know what your teammate has played yet.

In this update, there’s a much better fix to this issue. Now, when the second teammate commits their orders, the server will silently change their orders to use the available card instead of the one their teammate used. Essentially, it will “just work” without either teammate even knowing there was a conflict.

Misc Changes

– Fixed a bug when creating a game from a template that caused the boot drop-downs to not default to the value stored in the template.
– Fixed a bug that caused an error if you clicked Play Card on a surveillance card, opened the (more info) link on a territory, and then clicked a bonus worth 0 armies per turn.
– Fixed a timing bug that occurred if someone declined a tournament at the exact moment that tournament was starting.
– The attack-teammate and diplomacy confirmation dialogs now close when changing phases.
– Fixed a bug that caused the check-boxes on the Statistics->Graphs page to not enable after a game ended.
– Fixed a bug that sometimes caused Facebook signups to fail.

Season VI

Congratulations to [WM] dead piggy for winning Season V with a very impressive 17-3 record! It seems that 17-3 is more often than not the metric that defines a champion, as all of the seasonal winners so far have posted 17-3 records except Rubik87.

Season VI is going to be a bit of a departure from the low-luck settings of Season IV and V. Season VI will use automatic distribution instead of manual distribution. This means that you don’t pick which territories you start with, and instead are randomly assigned territories.

Now, I know what you’re thinking. “But Fizzer, won’t automatic distribution mean that games are determined by luck?” It’s true that luck plays a role, but here’s the way to look at it:

  • Everyone will lose 15% of their games due to getting worse starting positions than their opponent.
  • Everyone will win 15% of their games due to getting better starting positions than their opponent.
  • It’s what you do with the other 70% of your games that determine your ladder rank.

Personally, I’m excited for it – I think it’s going to be my favorite season! This season will be great for those who are weak at the territory selection part of the game but strong at the expansion/army movement part.

The settings are the same as Strategic 1v1, except with automatic distribution, no wastelands to make bonuses more equal, and an extra blockade card is also thrown in so you can make your own wasteland. You can practice the settings with this template: multi-player single-player.

The season begins at midnight GMT on Monday! (This will be Sunday night for those in negative timezones, such as North America). If you’re a member and not already in the seasonal ladder, you can join here. Have fun!

(* 15% is an estimate, the actual number could be higher or lower. The point is that the odds of getting good territories is the same as the odds of getting bad ones and it will factor out over the course of many games.)