Skip to content

Skylords PvP AI programming event - The Next Chapter

Featured Replies

amii_paladin_small.pngcommunity_splitter.png

The Skylords Reborn PvP AI Programming Contest - The Next Chapter

Hello fellow Skyladies, Skylords, and other Sky-beings!

As some of you might remember, around two years ago we held a contest about who can program the strongest PvP bot using the then newly added bot programming API. If you want to read up on what we did back then, check out the forum posts for phases one, two and three of that event.

While that event gained a lot of attention and some people were desperate for a followup, not many players competed. A reason for that was that the given task was very much to ask for: Work on your own, get used to a newly released API, figure out how to write a bot, and make it as good in PvP as possible.

In order to make the followup a bit less intimidating, we will start a new event and change up the format.

What will be happening now?

The goal of this event is twofold.

First, we want to reduce the technical entry barrier and make the API a bit less scary for non-experts. To do that, I will be doing development streams over the course of the coming few days, starting today. I will keep posting in this thread and on Discord to notify you of my streams. In these streams, I will show you live how to start with bot programming and maybe develop a small bot together with people on stream.

Second, we want to break down the big task of "make a good PvP bot" into much smaller individual bots. These "single-strategy" bots are short self-contained tasks, that should be much easier to handle. I will post some examples further down in this post. These single-strategy bots can also serve as training tools for players later on.

Lastly, this event is not about competition, but about collaboration. If you want to team up with a friend, or need help in setting up the development environment, or just want to do a smaller contribution, you are free to do so! There will not be a tournament at the end of this, but instead we want the community to work together to get some useful PvP bots.

Examples for single-strategy bots

Tier one "rock-paper-scissors" counter bot

T1 counter unit bot

The purpose of this bot is to simulate a T1-only fight where the bot responds to the player's units by playing appropriate counters.

The bot is supposed to take the same number of power wells as the player, with a maximum of two power wells.

General strategy description

The scenario against this bot is supposed to focus on unit counters. The bot is supposed to answer the player's units with appropriate counters and attack the enemy army. The following points give a quick rundown on the things the bot is supposed to do during a fight.

- The bot is supposed to only play T1.

- The bot is supposed to take the exact same amount of power wells as the player.

- The maximum number of power wells for either player is two.

- The first unit played by the bot is up to the developer.

- Afterwards, the bot is supposed to always answer enemy units with an appropriate counter. For example:

- Thugs counter Sunstriders.

- Scavenger counters Thugs.

- Sunstriders counter Scavenger.

- The developer may also choose other matchups than fire vs. fire to program the bot for.

- The bot is supposed to attack the enemy army.

- Ideally, each unit should be ordered to attack the unit it counters.

- The game is supposed to continue until one player has no units left.

- The bot is supposed to resign if it has no more units left.

- If the bot defeats all opponent units, it can stop playing.

- Further strategic decisions, such as unit spacing and spawn placement, are up to the developer.

Tier one spacing champion

T1 Spacing champion

The purpose of this bot is to play only one kind of ranged T1 unit while making use of very good unit spacing.

The goal is to space units far enough apart so that the player cannot land cost-efficient direct damage spells such as Eruption.

General strategy description

The bot is supposed to focus on keeping its ranged units sufficiently spread out to prevent the player from efficiently damaging multiple units with direct damage spells.

The following points give a quick rundown on the things the bot is supposed to do during a fight.

- The bot is supposed to take the same amount of power wells as the player.

- The maximum number of power wells is two.

- During the fight, the bot is supposed to only play T1 archers.

- The bot may use Sunstriders, Forsaken, Master Archers or Windweavers.

- The bot is supposed to space its units in a line, arch or circle around the enemy units.

- The bot is supposed to leave just enough space between its units so that ideally:

- Never more than one unit can be hit by an Eruption.

- Never more than two units can be hit by a Nasty Surprise.

- The game is supposed to continue until one player has no units left.

- The developer can decide which units the bot should focus on first.

Shaman "Ball of Death" bot

Shaman "Ball of Death" bot

The purpose of this bot is to spam Nature units, especially Shamans, in the hopes of creating an unstoppable "Ball of Death".

General strategy description

The bot is supposed to build up a group of Shamans that stays relatively close together, allowing the units to continuously heal each other while attacking the opponent.

The following points give a quick rundown on the things the bot is supposed to do during a fight.

- The bot may mirror the amount of power wells taken by the opponent.

- The bot may start with a Dryad (b) to reduce incoming damage.

- Afterwards, the bot is supposed to spam Shamans as its only type of unit.

- If the Dryad faints, the bot may replace it.

- The bot may use spells to support its Shamans.

- Hurricane can be used to punish players trying to counter the Shamans with S-units.

- Ensnaring Roots can be used to counter melee spam.

- Surge of Light can be used to save units in close calls.

- The Shamans, and the optional Dryad, should stay relatively close together so they can heal each other.

- The bot should make use of the Shaman's heal and attack cycles.

- The bot might choose not to engage in fights too early.

Strategy tips

While I am not an expert in PvP and the developers are free to choose the strategies of their bots freely, here are some suggestions on possible strategies.

- With good micro, Shaman heal and attack cycles can be interwoven to get the full healing and damage potential of the Shaman.

- Consider prioritizing low-health units for healing.

- Choose attack targets wisely.

- Consider delaying engagements, as the damage reduction of the Dryad, the healing of the Shamans and the efficiency of Nature spells scale nicely into high power levels.

Tier one extra well defender

Tier one extra well defender (Frost)

The purpose of this bot is to simulate a situation, where the bot immediately takes a power well outside their base and the player is supposed to attack that position in the hopes to destroy the extra well.

The player is supposed to only attack with T1 and without any extra power wells.

For this specific example, the bot is supposed to use frost as their Tier 1.

General strategy description

The scenario against this bot is supposed to be like a minigame, where the player tries to kick the well, while the bot defends.

Once the well is destroyed, the player wins.

If the bot defends the power well for long enough to have paid off, the bot wins.

The following points give a quick rundown on the things the bot is supposed to do during a fight.

- The bot is supposed to start with a T1 frost unit at their starting base.

- The bot is supposed to walk that unit towards one of the power wells that are closest to the bot's starting base.

- The developer of the bot may choose a different power well for defense if they feel it is better fit for the task, e.g. due to the map's layout/topography.

- The developer may choose to hard-code the bot to work on only one specific map of their choice. This choice must be communicated to users of the bot in some way (e.g. in a README file).

- The bot is supposed to take one of the power wells at that location upon reaching it.

- The bot is supposed to try and defend this extra power well for as long as possible with only T1 available to it.

- The bot may use any Frost T1 card regularly available on the live server.

- The bot may use any tactics the developer seems fitting for the purpose, including usage of spells or abilities.

- The bot is supposed to keep defending the well for at least 200 seconds (3 minutes and 20 seconds).

- The bot is supposed to resign once the extra power well has been destroyed.

It is also worth mentioning, that certain things do not have to be implemented in the scope of this task.

The developer may choose to implement them if desired, but they are not required.

- The bot does not have to counter push against the player.

- The bot does not have to be able to defend attacks against their main base.

- The bot does not have to be able to rebuild the extra power well.

- The bot does not have to be able to take additional orbs.

Strategy tips

While I am not an expert in PvP and the developers are free to choose the strategies of their bots freely, here are some suggestions on possible strategies while defending.

Note, that none of these are necessarily required for a bot, they are just some ideas that I came up with.

Some of them might be more, others might be less difficult to actually implement.

- Use the defenders advantage wisely, i.e. make sure the bot spawns its units undazed, unless it has a good reason not to.

- The bot may wait with spawning its starting unit to spawn a specific counter to the player's starting unit (e.g. Lightblade vs. Sunderer).

- In general, it is recommended to use the right counters/unit sizes against specific enemies.

- Ice Guardians can be very strong defenders with their ice shields, but make sure they do not stay out of building range for too long, so the shield does not melt away.

- The building range can be enlarged with Ice Barriers.

- You can make use of Glacier Shell to protect the well from damage and also try to repair it, if the situation seems fit.

- You can formulate a criterion to have point, at which it is worth it to buff units with Home Soil. For a bot, it should be easy to calculate when this criterion is or isn't met.

- If the map's layout allows for it, trying to micro your units to be less susceptible to spells like Hurricane or Eruption might help a lot.

- You can even consider different micro strategies depending on the player's T1 colour.

- You can try to find a good balance between focus fire and distributed damage (e.g. focus fire on key targets, such as Mortar Tower or Sunderer, vs. distributed damage in fights with multiple different unit types).

Tier one extra well attacker

Tier one extra well attacker

The purpose of this bot is to act as the offensive pendant to the "T1 Extra Well Defender" bot.

The bot's purpose is to walk a unit towards a central position of the map and wait for the player to take an extra power well. Once the player has taken a power well, the bot is supposed to try its best to destroy the well before it has paid off (200 seconds).

If the bot does not succeed in kicking the well within that time, it is supposed to resign the game.

General strategy description

The scenario against this bot is supposed to be focused on the player taking an extra power well and the bot attempting to destroy it before the well has paid off.

The following points give a quick rundown on the things the bot is supposed to do during a fight.

- The bot is supposed to walk a unit towards a central position of the map.

- The bot is supposed to wait for the player to take an extra power well.

- Once the player has taken an extra power well, the bot is supposed to try its best to destroy the well before it has paid off (200 seconds).

- If the bot does not succeed in kicking the well within 200 seconds, it is supposed to resign the game.

- The bot may choose any starting colour.

- The bot may opt to go for T2.

- The bot may switch targets and attack the main base to try and kick a well there, e.g. when the player fortifies the extra well with towers.

- The developer may choose to restrict the player colour to only one specific colour in order to reduce programming complexity.

- If the bot kicks a power well, the game is won for the bot and the bot must not play any further.

- The developer may choose to restrict the bot to only work on a single well position, e.g. one of the four central wells on Elyon.

Strategy tips

While I am not an expert in PvP and the developers are free to choose the strategies of their bots freely, here are some suggestions on possible strategies.

Note, that none of these are necessarily required for a bot, they are just some ideas that might be useful when implementing the bot.

- Once the player takes the extra well, they are temporarily down 100 power. The bot should use that extra power wisely.

- The extra power income from the additional well is rather slow. For instance, it takes 100 seconds to refund 50 power.

- The bot therefore does not need to instantly rush and can build a few undazed units first.

How can I start working on a bot?

You are free to just download the bot API and start right away! Ideally, you can also join the Skylords-PvP-Bot Discord server to get in touch with others and to get further instructions. You will find all relevant links there, as well as in this forum post.
If you want to team up with others, you can either do so here in the forum, over on Discord, or during the coding streams.
Even if you don't want to work on a bot yourself, you are still welcome to make suggestions for further single-strategy bots, that others can work on.

Streams

Later today, I will be hosting an introduction development stream, where we go over the example bots I described above, potentially collect ideas for further single-strategy bots, go over the setup of the bot API and maybe even start coding a little.
My goal is to have daily streams over the next couple of days to get the ball rolling and get the community involved into this project.
The streams will be held on twitch: https://www.twitch.tv/metagross31

Rewards

Since this is not a competitive tournament, there will not be traditional rewards for 1st-Xth place. We still want to give a small reward to players participating in the event, so every player, who participates in writing/designing a bot (either solo or as part of a team) will receive one General Booster as participation reward.

Can we use AI coding agents/LLMs/chatbots to help programming?

Some players have already asked, if they can use AI tools to help code a bot. If you manage to teach a chatbot/agend to use the bot API in your preferred programming language, then yes, you may use such tools to generate code for your bot. Please make sure though, especially when working in a team with others, to check the code the tools produces, if it makes sense, test if it works and manually adjust it if you find it to either not work or be bad coding.

Special Thanks

Big thanks to @Kubik for providing the technical stuff necessary to make this happen!
Another big thank you to everyone, who joined the Discord server and provided constructive feedback to make the API better.
And finally, a big thank you to everyone who wants to participate yet again.

Questions?
Reply in this thread if you have questions. We will answer them as soon as possible.

Best regards,
The Skylords Reborn Team

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.