Points from ladders

WarLight’s ladders are a great way to earn points! Up until now, the formulas that the ladders use to give out points have not been revealed. This blog post reveals it all.

All of the ladders award points to players who are rank 30 or better. However, they do it at different times — the 1v1 and 2v2 ladders award points every 24 hours, whereas the seasonal ladder awards points when the season ends. This reflects the goals of each ladder. In the seasonal ladder, your goal is to achieve the highest rank at the end of the season (mid-season ranks don’t matter.)

The number of points they award is based on this formula: (31 – rank) ^ 3 * 0.6 + 1000. This gives about 17k to the #1 rank and 1k to the #30 rank.

The seasonal ladder also multiplies this by the number of days in the season. This means that all three ladders award the same amount of points over time. (Although technically, the seasonal awards slightly fewer since we usually take a few days off between each season.)

2v2 ladder

The 2v2 ladder is especially ripe for giving out points! Since it awards points to all teams rank 30 or better, and the there are currently only has 26 ranked teams, you can earn points even if your 2v2 skills aren’t quite legendary yet. If you’re a member, now is a great time to grab a partner and improve your 2v2 skills on the ladder.

WarLight app now on iOS, and 2.0 is complete!

The WarLight app for iPhone, iPad and iPod touch is now live on the Apple app store! This also means that WarLight 2.0 is now fully deployed and playable on all platforms for free — the website, iOS, Android, and Kindle Fire!



In case you missed it, here’s links to what else is new in 2.0, and a video showing what WarLight is all about:

Initial 2.0 announcement
Points and levels
Achievements and Trophies
Map unlocking
CLOT Changes

Update 2.00.1

WarLight has just been updated to version 2.00.1! This is a small update to both the website and Android client that fixes a few issues. The website changes are live now, and the Android update will begin rolling out in the next few hours.

Changes

– Points given out from winning tournaments increased by 66%.
– Fixed a bug that prevented games with more than 24 players and open seats from starting.
– The “Win on X different maps” achievements now correctly only count wins, instead of just counting any completed game.
– Kindle Fires are now properly detected by the website.
– Ads can now trigger when joining a game at the lobby.
– Mochi ads were removed in favor of Google’s.
– Full-screen ads are now only shown when committing orders.
– When ad-blocker reduces points, the points page now shows this in a tooltip.
– Pressing the escape key during the tutorial no longer causes errors.

– Android/iOS: When clicking chat in a game with private messaging enabled, each player’s color is now shown next to their name.
– Android: Various fixes for specific devices.

AI Offload

This update also contains a change to the way that AIs take their turns in multi-player games. This is mostly a behind-the-scenes change (AIs still make the same moves), but it will have a couple minor things that will be noticeable.

Previously, AI players or humans that were turned into an AI would take their turns synchronously along with the last committing player. This means if you were the last player to commit your orders for a turn, the AI processing would happen while you watched a spinning “committing orders” wait dialog. And when the turn advanced, the AIs had already played their turn (no *’s appeared next to their names.)

Now, the server will let you commit without the AIs playing their turn, and fire off a background task to take the AI turns in the background.

This has a number of advantages. For one, it means the last committing player no longer has to wait as long, which means the game will respond faster.

Secondly, it fixes an issue that comes up sometimes in really big games with lots of AIs and on big maps. In these situations, it can take quite a while for AIs to calculate all of their moves. Sometimes, it takes so long that the server times out and rejects the request. This is a big problem since it basically means the game is stuck — the last player can’t commit or be booted.

Lastly, it also allows me to move the AI processing off of the overloaded web servers and onto cheaper servers. This helps reduce the cost of hosting WarLight. Further, since the CPU is cheaper here, this removes one of the barriers to writing an improved AI for WarLight that makes smarter moves. I don’t know yet when this will happen, but this update is a step towards it.

Because of this change, you may actually see AIs with *’s next to their name, indicating they haven’t moved yet. When everything is working correctly, they should move very quickly (within less than a second.) If you see an AI who hasn’t moved for more than a few minutes, please report it at http://warlight.net/ReportBug (be sure to include a link to the game.)

WarLight 2.0 is now live at WarLight.net!

It’s finally here! All of WarLight 2.0’s features are now live on the website at http://warlight.net!

Releases of the Android, Kindle Fire, and iOS versions will be coming soon, as per the previously announced schedule.

Players will now begin earning achievements and points when playing in multi-player games. Go crazy, and have fun!

Also, check out WarLight’s new promotional video! It’s mostly geared towards new players, but you may find it interesting anyway:

Members who don’t want to see advertisements can turn them off on the Settings tab. If you’re not a member and don’t like ads, you can purchase a membership to play ad-free for life!

In case you missed it, here’s links to the information that’s been announced previously:

Initial announcement
Points and levels
Achievements and Trophies
Map unlocking
CLOT Changes

WarLight 2.0 release date: Wednesday July 31st! (without iOS)

WarLight 2.0 is right around the corner!

Since Apple’s developer website is down, I’ve decided to go ahead and release WarLight 2.0 without the iOS clients. Here’s the planned time table of the release:

Morning of July 31st: 2.0 goes live on the website. Points, achievements, and all new features are all live for warlight.net players.
Later on July 31st: The Android app goes live on Google Play. Android phone or tablet users can download it from Google Play.
The next day, August 1st: The Kindle Fire app goes live on Amazon.com for Kindle Fire users.

The iOS app for iPhone, iPad and iPod Touch users is postponed. Even once Apple fixes their website, which has been down over a week, they still have to approve the app before it can go live. Under normal conditions, it usually takes Apple a week to approve apps, but since they’ll be coming off of downtime, I would not be surprised if review times take much longer than normal.

Other than the iOS delay, I hope you’re as excited for WarLight 2.0 as I am! It’s going to be awesome!

If you missed it, here’s links to the previous announcements that explain what 2.0 is all about:

Initial announcement
Points and levels
Achievements and Trophies
CLOT Changes

CLOT Update

Since I’ve been busy waiting for Apple’s website to come up, I’ve been working on an overhaul to the CLOT framework. For those who don’t know, CLOT stands for “Custom Ladder or Tournament” and it’s a way for software engineers to create their own WarLight ladders or tournaments. Ladders and tournaments created by CLOT are very flexible, and can do all sorts of things that the built-in ladders and tournaments cannot. See the original blog post for examples of what it can do.

This overhaul was aimed at making CLOTs easier to test via a test mode, making the code simpler and easier to understand, making the app use fewer resources, and implementing many of the commonly needed features, such as hosting multiple tournaments from a single website or handling vote-to-end gracefully.

You can check out the code at github.com/FizzerWL/CLOT.

Test Mode

If you look in api.py, there’s a line that says TestMode = False. By changing this to True, you’ll enable test mode which allows you to test your app offline using fake data.

In test mode, the app won’t hit warlight.net APIs at all, and instead when the code tries to call an API, it will return fake data. This is useful while building your app since you can easily simulate players signing up and see how games get created with them. You can do things like simulate 500 players signing up to your tournament, which would be very time consuming to do by hand.

When you’ve got everything working perfectly, all you have to do is set TestMode back to False and release!

Easier to Understand

The code has been simplified. First, the Django framework was completely removed. Django is a large framework with lots of features, and CLOT hardly used any of them. It was just overkill for our needs.

Instead, it simply uses the webapp2 framework, which is built-in to Google App Engine (GAE) and it’s the same framework that the GAE tutorial walks you through learning. It’s a lightweight framework that’s very simple. It’s much easier to understand than Django.

CLOT was using Django for forms (making it easy to get input from the user). To replace this, I introduced WTForms which is also pretty lightweight and easy to use. CLOT only uses forms in a couple places, such as first-time setup, so you probably won’t need to mess with it much.

The data storage system was upgraded to use “ndb” in place of “db”. This is Google’s upgraded storage system which has a cleaner API and uses automatic caching when getting entities by key. Also, the GamePlayer table was removed for simplicity, and players are now just stored as a list in the Game table.

Uses Fewer Resources

CLOT now uses a caching layer that causes it to use drastically fewer calls to the database. The goal of this is to run a moderately popular CLOT on Google App Engine and not exceed the free quota. I ran a real-time ladder for seven hours, and it used less than 10% of the daily free database quota.

Implements Commonly-Needed Features

The base CLOT code now does a lot more for you. For example, it allows you to run multiple ladders or tournaments from the same website, whereas before you would have had to build that feature yourself. This involved adding a LOT table (Ladder or Tournament) and mapping all of the games to it.

The app now uses authentication instead of requiring players to copy/paste in their invite token. This allows players to securely add or remove themselves from the ladder/tournament.

If players decline a game or fail to join it before a configurable time limit, the app will now automatically delete the game and count it as a loss for the player who didn’t join or declined.

If players vote to end a game, it no longer breaks the ladder.

CLOT in WarLight 2.0

I’ve mentioned a few times that there are going to be some upgrades to the WarLight APIs once WarLight 2.0 launches. I’ll detail here what’s changing.

The membership rule on the CreateGame API (that CLOT uses), is that you can only use features in games that every player you’re inviting can use. This differs from creating games via the UI, where only the game creator needs access to the feature. For example, if you want to use rounding mode or low luck levels, all players in the game need to be a member, since only members can use rounding mode or low luck levels.

In 2.0, it’s possible for non-members to get access to these features, such as low luck levels or rounding mode. Therefore, when inviting players to a game, as long as they have access to those features, you can use them when inviting them via the API.

Technically, this requirement isn’t changing, it just requires expanding your view from a member/non-member to a more granular permission system. If you want to create a 0% luck CLOT, you need to require that everyone joining the CLOT has access to use 0% luck — it doesn’t matter whether they earned that by leveling up or by purchasing a membership.

When someone is joining your CLOT, you call the ValidateInviteToken API. Today, it just tells you if they’re a member or not. In 2.0, it will tell you exactly what they have access to, such as whether they can use 0% luck or alternative rounding modes.

This means that it will be possible to create CLOTs with non-members using all of the features that WarLight offers to non-members, it just might require that players achieve a certain level before they can join your CLOT.

Also, there’s another related change to the CreateGame API. Today, if you try to use a feature that someone doesn’t have access to, it simply reverts back to the default. For example, if you try to make a 0% luck game and a player doesn’t have access to it, it simply creates the game with 75% luck. In 2.0, it won’t do this, and instead will give you an error message if you use something without access.

This is better if you want to ensure that your settings are being used. You won’t have to worry about some games in your tournament using different settings than others. However, this also means you need to be more careful about letting in someone that doesn’t have access to a feature you need to use, otherwise you won’t be able to make the game. For this reason, you need to be sure and check their permissions before letting them join your CLOT.

Check out CLOT’s getting started guide, and feel free to let me know if you have any questions at fizzer@warlight.net!

Coming soon: Achievements and trophies!

WarLight 2.0 is coming! This blog post gives a sneak peek into one of the new features.

Achievements

I’m sure most of you know what achievements are from other games — these are little rewards you get for doing something good or notable.

Once WarLight 2.0 goes live, players will start earning achievements for various things throughout the entire game. For example, there’s an achievement for winning an FFA game with at least 10 opponents, and another for eliminating three or more opponents and winning a game in a single turn.

Achievements are another way of earning points. Achievements award points based on their difficulty – the more difficult the achievement, the more points you’ll get for getting it. However, most of your points will still come from winning ranked games/tournaments/ladders. Achievement points are just a bonus.

In addition to rewarding accomplishments, achievements also serve as a way to encourage new players to try out all of the features and mechanics that the game has available. For example, there’s an achievement for using an order priority card to kill a stack of enemy units that were attacking an undefended territory of yours on their first move, and another for sanctioning a player with more than ten times your income.

No achievements will require a membership to earn.

Trophies

Achievements are considered things that any player could just go out and do. Trophies, on the other hand, are for tasks that are rare, very difficult, or special in some way. For example, there’s a trophy for achieving rank #1 on the 1v1 Ladder, and another for playing WarLight while it was beta. Trophies are intended to be rare, and most players will probably never get one.

Unlike achievements, trophies don’t actually award points themselves, but they’re displayed prominently on player’s profiles. (Ranking #1 on the 1v1 Ladder would award plenty of points from the ladder, just not from the trophy itself.)

Secret

Like the leveling rewards, I’m not going to reveal a big list of all achievements that are in the game. They should be considered a secret at first. There’s a bunch of really fun ones that I’m holding myself back from revealing here.

Once they’ve all been discovered, they’ll be detailed on the wiki for all to see. Until then, please don’t post any big lists of achievements on the forum. Having achievements pop up as you play the game normally is more fun than treating it as a task list and working on each one in turn. I’m trying to encourage players to treat it the more fun way.

Backfill

Some achievements may be something that you’ve done before 2.0 went live. For the most part, achievements are not backfilled — you will need to do them again to earn the achievement.

However, there are a few exceptions. Some things from the pre-2.0 days will contribute to achievements. In some cases, you will need to trigger the achievement that you’ve already completed. For example, there’s an achievement for getting a gold star on every single-player level. If you’ve already gotten a gold star on every level, you can easily earn the achievement just by re-getting any one of the gold stars (for example, just beat level 1 again). This will cause the game to notice that you’ve gotten all six and award the achievement.

Trophies are different — all trophies are automatically backfilled. If you did anything to earn a trophy before 2.0, it will automatically be awarded when 2.0 goes live.

Coming soon: Points and levels!

WarLight 2.0 is coming! This blog post gives a sneak peek into one of the new features.

Points and Levels

In WarLight 2.0, all players will start at level 1. Any time you win a ranked game, you will receive points. Earn enough points and you can advance to the next level.

The idea of leveling up is familiar to anyone who’s played an RPG. However, WarLight’s leveling system has an important distinction: In WarLight, levels don’t actually make you stronger. WarLight is fundamentally a competitive strategy game, and games will always be won or lost based on your strategy alone. Levels will not do anything that gives you an advantage in a game. It’s just as easy for a level 1 player to defeat a level 30 player as it is for a level 40 player.

Instead of making your stronger, levels will unlock additional features you can use. For example, players can unlock the ability to set the luck modifier when creating games, create tournaments, create games with more than six players, and many other things.

The number of points you get for winning a game is based on the level of opponents you defeated, so it’s advantageous to challenge higher level players. As you may suspect, there will also be other ways of earning points, such as tournaments, ladders, and more.

Having point awards for winning games enhances the WarLight experience since it gives more meaning to winning games than just a tally on profile pages. This makes WarLight games a lot more exciting!

It’s a secret to everybody

Every level has a reward of some kind, so there are a ton of things available to unlock by leveling up (including some for members.) But I’m not going to spill the beans here. The level rewards will remain secret at first so that players can discover them on their own as they level up.

Because of this, some of the new 2.0 features won’t even be announced on the blog right away. You’ll have to level up to discover them.

Eventually, the level rewards will all become common knowledge and they’ll all be listed on the wiki. However, until that happens, please don’t post any big lists of level rewards on the forum. This makes it more fun for players who are leveling up for the first time and want to discover them as they go. Discussing them one at time is fine, just don’t post any comprehensive lists for a while.

Grandfather clause

Some of the level rewards are things that players get by default today. For example, in 2.0, players have to unlock the ability to create games using multi-attack, but prior to 2.0 everyone was able to use multi-attack right away.

All accounts created before this announcement will be considered grandfathered. All grandfathered accounts will automatically have access to all of the features that used to be given by default. This is done so that nobody loses anything when 2.0 goes live.

Because of this, if your account is grandfathered and you unlock a level, you will sometimes see a message that says “You already have the reward for this level.”

I hope you’re excited as I am for WarLight 2.0!