The latest release is 1.2.3 (5 months ago).
- Download the installer
- Download the example player
- View the installation/software documentation (in a new window).
- View the game specs (in a new window).
- View the javadocs (in a new window). The javadocs are also included with the Battlecode software.
- View the source code for the engine and client (in a new window)
- Download the Scala libraries and example player (only needed if you want to write your player in Scala)
- Download the map editor.
- Add a forgotten map. Release compiled version of referenceplayer.
- Post-final release. Release all maps.
- Training field turn cost increased from 100 to 200.
- Soldier turn cost increased from 16 to 20.
- These are likely the final gameplay changes.
- Post-Seeding release. New maps. Additional client toggle options. Gameplay changes.
- Important: not all games will have a 2000 turn round limit. This round limit will now vary depending on the map but will always be in the range [2000, 3000]. For a given map, you can query the round limit by using getRoundLimit(). Generally, only larger maps will have larger round limits. We have released a few maps with changed round limits (marked by "extended" in the map name).
- Balance changes:
- Launchers were clearly the most powerful non-commander force in the Seeding Tournament (though thankfully, this was not as clear as drones during the Sprint tournament). We want to make both launchers and missiles a bit more vulnerable to destruction and slightly decrease the massive damage that launchers can output from their long range.
- HP decreased from 300 to 200
- Missile damage decreased from 20 to 18 (or 9 if destroyed by attacks)
- Turns to generate a missile increased from 6 to 8 (16 if unsupplied)
- Commanders performed extremely well during the Seeding tournament, but in an unintended niche. While it's certainly fun to watch hero commanders flashing around racking up 100 miner kills, it's a bit too powerful and hard to deal with. Hopefully these changes somewhat address this, and hopefully commanders still see some use (now that teams have already spent the effort needed to write commander code).
- Attack damage decreased from 10 to 6
- Supply upkeep increased from 5 to 15
- Turn cost increased from 80 to 200 (this seems like a large increase; note that since units are spawned FIRST, then the spawn cooldown goes into effect, teams whose commanders survive for 200 turns will be completely unaffected by this change - i.e. almost all teams)
- Flash cooldown increased from 10 to 20
- Tanks took a backseat to launchers, but we feel that they are still extremely strong and deserve a (very) slight nerf.
- HP decreased from 160 to 144
- In the interest of making the soldier even less "boring", here are a couple changes.
- Range increased from 5 to 8
- Turn cost increased from 15 to 16 (!)
- Handwash station
- The handwash station is not powerful enough, as evidenced by the fact that there were teams that did not build any.
- Attack damage increased by 9001% from previous value
- Quick fix for zombie missiles bug introduced in 1.1.2.
- Clarify that changes in core and weapon delay happen immediately even though the corresponding actions are queued for the end of a turn.
- Clarifications for Heavy Hands.
- Bug fix: COMMANDERs can Flash a distance of 10 (units^2) now.
- Bug fix: MISSILEs destroyed by other MISSILEs (either team) will properly explode now with half damage.
- Clarify in specs that heavy hands does not affect TOWER, HQ, and COMMANDER. COMMANDER regen rate is 1.
- Post-Sprint release. New maps. Engine bug fixes. Gameplay changes. Client improvements. Slightly backwards incompatible (some GameConstants changed from being ints to doubles).
- MapLocation.getAllMapLocationsWithinRadiusSq can no longer be called with a radiusSquared argument greater than 100. The engine is open source so you are free to implement the method yourself (https://github.com/battlecode/battlecode-server/blob/master/src/main/battlecode/common/MapLocation.java).
- Slightly change how core and weapon delay count down when a structure is built.
- Missiles correctly explode after their 5th turn alive (instead of 6th).
- Added isBuildingSomething() to RobotController.
- Commander FLASH spell is fixed.
- Post-sprint tournament balance changes
- While drones have subpar primary combat stats, the Sprint Tournament made it clear that their speed and ability to out-micro (combat) virtually all other unit types made them far too powerful. This was evidenced by the many 'drone contain' bots that made it to the top positions of the tournament. These changes attempt to reduce the effectiveness of this strategy, specifically by lowering the speed at which a drone rush can be performed and by removing the effective invulnerability that a drone could gain by having optimal micro. In addition, drone supply upkeep was clearly too low, making it so that ridiculously huge drone armies could easily be kept supplied.
- Drones now incur double the normal movement and loading delays if they move onto a VOID square.
- Drone cooldown and loading delays increased from 0 to 1
- Drone range decreased from 10 to 5
- Drone supply upkeep increased from 5 to 10
- Helipad turn cost increased from 50 to 100
- Launchers also showed in the Sprint Tournament that they were a little too strong as units with high-range aoe damage along with extremely high HP.
- Bugfix: Missiles can no longer move for 6 rounds, and will now properly blow up after 5 rounds (including the round in which they were spawned).
- Launcher max missiles decreased from 6 to 5
- Launcher HP decreased from 400 to 300
- Missiles now deal half damage (10) if they are killed
- The Commander was rarely seen in the Sprint Tournament, only partially because drones crowded out everything else. We're sticking to our original vision for the supportive role of the Commander but making it more durable and more supportive.
- Commander HP increased from 120 to 200
- Commander 'Flash' range increased to 10
- Flash is now initially available (no xp requirement)
- Commander 'Leadership' range increased to 24
- At 2000 xp, 'Leadership' improves to grant 2 extra damage to all affected units.
- At 1500 xp, the Commander gains a new passive skill, 'Heavy Hands'. This causes the Commander's attacks to set its target's weapon and core delays to 3.
- The Basher is slightly underwhelming, partially due to the fact that larger-than-expected swarms force it to take more shots as it's running up into melee range. We're making it a bit more durable.
- Basher HP increased from 50 to 64
- Soldiers don't really have their own niche. You decide if this changes anything.
- Soldier attack delay decreased from 2 to 1
- Soldier attack power decreased from 8 to 4
- We're making the rampant spawning of gigantic Miner swarms a bit less appealing.
- Miner ore cost increased from 50 to 60
- Miner maximum ore mined per mine() call decreased from 3 to 2.5
- Computers need some love.
- Computer supply upkeep decreased from 5 to 2
- Computer max bytecodes increased to 20000
- Finally, we're making supply depots take a bit longer to construct and reducing the benefit of building lots of depots.
- Supply depot turn cost increased from 20 to 40
- Supply generated per turn decreased from 100*(2+depots^0.7) to 100*(2+depots^0.6)
- HashSet, TreeSet, and other java.util classes work properly now on Java 7.
- Disable missile broadcasts to be consistent with specs.
- Added methods canSenseRobot and senseRobot to help get information about a robot given just its ID.
- Robot IDs range from 1 to 32000.
- In any round, HQs always execute before other units.
- Clarify that broadcasts happen immediately, unlike in past years.
- Warning: Backwards incompatible.
- HashSet, TreeSet, and other java.util classes work properly now.
- A few additional methods now have a fixed Bytecode cost (in Math, StrictMath, String, StringBuffer, and StringBuilder).
- The amount of ore mined per turn used to be lower-bounded by the MINIMUM_MINING_AMOUNT game constant, which was not in the specs. We have decided to keep this functionality, but the MINIMUM_MINING_AMOUNT has been reduced from 1 to 0.2. The specs have been changed to reflect this.
- LAUNCHERs now gain new missiles at approximately half the original rate (once every 12 turns rather than once every 6 turns) when they have no supply. In addition, the LAUNCHER's weapon delay now tracks the amount of time it will need to generate the next MISSILE. Note that launching a missile is independent of this weapon delay, and that building a MISSILE happens automatically. This is explained in the specs.
- Warning: examplefuncsplayer will be overwritten.
- BACKWARDS INCOMPATIBLE.
- RobotInfo now tells you information about whether a robot is building something or being built.
- senseOre(), senseTerrainTile(), and disintegrate() work properly on round 0.
- Fix bug with sensor radius checking, and fixed sensing off the map.
- More meaningful game over messages.
- Changes to some of the maps (notably, onetower only has one tower now).
- You can no longer steal supply from other units.
- Initial specs released