Update 0.1.6

BokoBoko Strike · published · build 26273226

This update adds Co-op Defence: Crown Rock (Alpha), a defence map where you and CPU allies hold the gates against a horde that pours down three valleys while its builders break in where you are not looking, in place of Faultline Refuge, adds Streamer Mode, lets a spectator join a running match from where it stands, keeps a match going when players leave it, makes Prism Temple's CPU players play for the score, and makes maps with many objects run much faster.

Co-op Defence: Crown Rock (Alpha)

  • Crown Rock is an Alpha in early testing: it may be unstable, and it may change a lot in coming updates
  • New Scenario, the first Co-op Defence map: hold the Heartstone at the oasis on top of a desert rock through eight waves of a horde pouring down three valleys. It replaces Faultline Refuge, which leaves the game
  • Each valley walks up to its own gate: the west climbs terraces up a cliff, the centre crosses a natural rock bridge over a deep gap, and the east a rock bridge over a ravine. Blow up a bridge to cut that route
  • Some waves bring a surprise: a Bricklayer and its escort climb a breach in the hill's flank, stacking brick steps where you are not looking. The status row counts them as they come. Shoot the Bricklayer first and the squad stalls, and blast the steps it leaves, or the horde follows over them
  • Dig, wall off and blast the ground to steer the horde, but a sealed route only buys time: monsters that cannot get through come down another valley
  • From the lookout over the north gate all three valleys show at once, and the status row counts the horde in each
  • Kills and dug ore fill the team's ore. Spend it at seven stalls on caltrops, mines, a bazooka, grenades, seedshot, armour or mending the Heartstone
  • The eighth wave brings Stoneback, a boss that breaks through thick walls
  • Set the difficulty and the horde size in the lobby
  • CPU allies defend beside you: they spread over the gates, more of them where the horde presses hardest, and fight from their spot instead of running down into the valleys. Once a breach's builders are announced, the nearest hurry to its lip, and while the horde is inside the gates they fall back round the Heartstone
  • Between waves, CPU allies buy the bazooka, grenades and seedshot from the team's ore. Caltrops and mines stay yours to place
  • Each seat a CPU fills brings more of the horde than a player's seat: CPU allies help, but holding the Heartstone takes players
  • One to twelve defenders play, CPU players filling at most eight seats. Fill Empty Slots with CPU stops at that limit and says why the other seats stay open
  • A fallen monster's body now fades away after ten seconds, as a fallen player's does, instead of lying there for the rest of the match
  • A monster's claw slash now shows clearly at every distance you fight it from
  • Large hordes run far smoother


Prism Temple

  • CPU players now play for the score: they paint over the leading team's colour and hunt its painters, guard the colour their own team is losing, and fight when hit or when an opponent stands on their colour, instead of chasing whoever they see
  • CPU players paint on the move, throwing the Paint Bomb farther and toward the ground their colour has not claimed
  • Hard CPU players now out-paint a player who only roams throwing Paint Bombs
  • Easy and Normal CPU players paint at a slower pace than Hard, so each difficulty plays apart


Official Scenarios

  • In a Scenario that respawns players in an area, such as Crown Rock's camp, a player whose respawn area was dug away now lands on the ground that is left instead of waiting dead
  • Boko Cup's end walls now slope from each corner toward the goal, so a ball rolling along them is turned into the goal and no longer sticks in a corner. The ball slides along the slopes instead of stopping dead, and one lofted onto them rolls back onto the pitch


Weapons

  • After switching weapons, let go of Fire before the new one fires. Holding Fire through a switch no longer fires what you switched to
  • The mouse wheel skips empty quick slots, and pulling the trigger with nothing in hand gives a dry click
  • Drilling straight down while you stand on half-height ground now digs into it
  • A Bouncy Mine lying on the ground no longer buzzes with bounce sounds, and one that lands low settles instead of hopping in place. Its higher bounces sound as before
  • In the Practice Range, a weapon left lying after it is dropped vanishes harmlessly after 30 seconds, so the Range never fills with weapons and no blast reaches the pads
  • Homing shots no longer turn toward the bodies of the fallen


Streaming and recording

  • New Streamer Mode, in Settings under General, keeps account names off the screen. You read as You, other players as Player 1, Player 2 and so on by seat, spectators as Spectator 1 and onward, and CPU players keep their names. The room browser shows no host, and every room reads as its mode's room, such as "Deathmatch Room"
  • Turning Streamer Mode on or off changes every name on screen at once, the kill feed and chat included
  • File paths the game shows, in the console, in error messages and in the editor's dialogs, now start from the game's own folders, so your Windows user name stays off the screen
  • On Windows, the display no longer turns off while you are in a room or a match, or watching a replay


Spectating

  • A spectator joining a running match now starts from where the match stands, instead of catching up from its start, so joining a long match is quick. The download shows on the loading bar
  • A spectator who lacks a running match's map now goes back to the room told why, and the map downloads there once the match is over
  • A spectator who falls far behind no longer keeps the other spectators from catching up


Online play

  • Players who leave a match on their own no longer end it for the others. Those who stay keep playing however many leave, even one player alone with CPU players
  • A match that ends over lost connections now reads "Lost Connection to Too Many Players — Match Voided"
  • In matches of five or more players, a player who missed the last moves of someone who left no longer drops out after a stall
  • A player whose computer falls behind in bursts can no longer slow the whole match down. One that keeps falling behind is removed as unable to keep up, while a single hitch is forgiven
  • In an online match continued from a saved game, a respawning player no longer slides from their body to the spawn point, and bodies react to later blasts again
  • A tampered saved game, including one another player sends, is now refused with its reason instead of freezing or stopping the game
  • Two players who lost contact with each other on the Results screen now reconnect once the connection returns


Saved games and replays

  • A continued saved game now keeps the rules its room chose, such as Magazine Exhaustion, Crate Contents Icon, Friendly Fire, Starting Loadout, Starting Weapon Pool, Item Spawning and Reload Speed
  • A replay of a continued match now reaches Results, its timeline starts where the recording does, and its clock shows the match's time


CPU players

  • CPU players now hit a target standing still, where most of their shots used to go wide, at range above all
  • CPU players no longer fire straight shots into a rail or ledge in front of a target whose head shows over it
  • A CPU player shot from far away now turns to its shooter and goes after it
  • A CPU player left in a crater now climbs out instead of standing still
  • CPU players judge a weapon by the damage a whole magazine deals over its firing and reload, so a weapon with one big shot no longer outranks a steady gun
  • CPU players leave a weapon crate alone when its trap could finish them
  • CPU players no longer walk onto thin rock crust over lava
  • CPU players no longer walk, dig or build through the Practice Range's levers, buttons and targets
  • CPU players no longer try to dig through walls that cannot be dug, such as Prism Temple's


Menus

  • Text the game fills in or clears, such as a room's name, its player count or your player name, can now be erased and edited right away. Backspace could do nothing there before
  • Picking a map or a Game Mode now also sets that mode's own Friendly Fire and Reload Speed, so Boko Cup's room opens with Friendly Fire off, as its rules intend


Match screen

  • Outlined text, such as the cause of death, announcements, the result banner, the reload indicator, chat and the system log, now fits its space at every resolution. Chat and the system log sit slightly lower
  • In the kill feed, a player a monster kills now reads "was taken down" instead of "self-destructed"


Generated maps

  • Village houses and the village hall now stand under gabled roofs, in place of stepped caps that looked like small pyramids
  • The Ember Vent no longer appears in Volcanic Wasteland or in the Practice Range


Performance

  • Maps with many objects, such as balls, moving platforms, devices and units, now run much faster
  • Matches with CPU players have fewer brief hitches, among them one in Survival shortly before the shrinking play area reaches the ground, and those at the start of a continued or watched match
  • The Practice Range loads faster
  • In a long online match, players no longer keep the whole match in memory for spectators
  • Online matches use much less memory, the more so the more CPU players they hold, and catching up after a network delay costs less
  • Playing many matches in a row no longer piles up graphics memory: each match's character skins are released when it ends


Console and Command-line Access

  • Console: match.step_weapon steps to the next or previous quick slot, and match.turn_placement turns a held placement, as the mouse wheel and Reload do
  • An argument whose name is also a console word, such as room.host's map, can now be given by name
  • With Streamer Mode on, room.available lists rooms as Room 1, Room 2 and so on, room.join takes that label, and friends are listed as Friend 1, Friend 2 and so on
  • A console reply that holds the end-of-transmission character no longer shifts every later reply by one, and a successful reply that begins like an error now starts with ok


Map making

  • Weapons are still taken on touch and fill the weapon slots alone, as in 0.1.5. A map's items are its own feature: they lie in the world as their own bodies, drop at death when the item says so, and are taken with Interact. An item's Drop On Death, Grants Weapon, Dropped Pickup, Use Fires Weapon and Spent Per Use fields are replaced by On Death, Lies In The World As and Use
  • New Power-up data type: something in the world that acts on touch and is never carried, with its effect, range and filters. Scripts set one out with powerups.spawn, and the health crates are power-ups
  • The gameplay entry's Quick Slots sets one to nine weapon slots and replaces Weapons Carried. Each game mode sets its Inventory Slots; standard modes have none, so a map that wants an item inventory sets its own
  • Scripts can put, take, move, swap, split, drop and use the items any holder keeps in its inventory and worn slots, and choose which weapon slot a player holds with players.select and players.cycle. Items never enter the weapon slots, and weapons never leave them for the inventory
  • A map's UI can show a holder's weapon slots, inventory and worn slots slot by slot, and drag items between the inventory and the worn slots. The inventory window template is a compact window that opens with B and holds carried items alone: click an item to use it, drag it onto a slot to move or swap it, or out of the window to drop it
  • New Container Layout data type: plain slots, typed slots that accept items by their Tags, a grid where an item's Size sets its footprint and may turn, a free canvas or a list. containers.set_layout installs one on a holder's inventory or worn slots, refused when what it holds does not fit, and slots.move_to places an item at a chosen spot
  • An item's When Worn modifiers now apply while it is worn, to damage, movement and maximum health, and a team can wear items as a team upgrade. A damage modifier can name one weapon or a tag from a weapon's new tags. The Base's new Machine Gun Upgrade raises the Machine Gun's damage by a fifth, for a map to hand out
  • An item whose Use places a unit now starts a placement preview: Fire places it, Reload turns it, and using the item again, a weapon key or the mouse wheel cancels. slots.cancel ends one from a script
  • Placed devices now follow one rule in the game and in the editor: each stands on a floor, a wall or a ceiling by its unit's Surface, turns a quarter turn with Reload, and never overlaps another device or prop. A unit's Deploy part's pack_up moves to the placing effect, which can give one charge back to the weapon that placed it, or the exact item stack an item's use spent
  • A placed unit that is not a character, such as a turret, now fights with its own weapons and brain, seeing and firing within its sensor's arc, whether a player placed it or the map did. A placed unit faces the way its placer faces. One whose brain would move it, or that could never be armed, such as a device given a drill, is refused at load
  • New Transaction Template data type: what a trade takes and gives in items, tags and amounts, plus one weapon among what it gives. transactions.run carries one out whole or refuses it with its reason: short, no_room, refused or sold_out. The shop template's shop.sell and ai.offer_purchase now take a template, the shop shows what a row takes as its price, and CPU players buy what they lack and can afford
  • New Loot Table data type: lines that always drop and weighted lines drawn a set number of times, each an item with a count range or a nested table. A unit's Drops rolls one where it dies, scripts roll one with containers.roll or pickups.place_loot, and the treasure chest template fills a chest with treasure_chest.loot(place, table). A table naming something undefined, looping back on itself, nesting past four tables or able to make over 256 stacks is refused at load
  • A brain's new Pathfinding setting, crowd, moves every unit of a kind as a horde along one shared path field, and waves.set_hunt sends a wave's members hunting from the moment they appear
  • A crowd brain's Break Cost lets its horde strike down a breakable unit that blocks the way and walk on once it falls. Its Build Cost and a unit's new Builder part, naming the material it lays and how fast, let builders stack steps up a wall four to six cells high and bridge a gap of up to twelve for the horde to follow, and ai.set_building turns building off and on for the whole map
  • Units larger than a player now find paths that fit their whole body, by the physics entry's new Large Body Sizes
  • A game mode's new Max CPU Seats caps how many seats CPU players can fill
  • A bouncing projectile's new min_hop_seconds settles a rebound too low to last that long, so a body lying on the ground stops hopping. The Bouncy Mine uses 0.3 seconds
  • A data value outside its field's range is now refused when the map loads, in any layer, a live change or a saved game's catalog, naming where it lies and the range the game runs. The Data editor refuses the same values as you enter them, nested fields such as a unit's movement or its collider's size included, and motion fields such as restitution, drag, turn rates and gravity scale now have ranges
  • Refused with its reason, instead of doing nothing or stopping the game: a dig or build too small to change the terrain, naming the size that works; a projectile that could come to rest with no lifetime or fuse to end it; a map layer that names something the base game removed; and a map that places the Ember Vent, when its match starts
  • The Problems list reports a map text with a blank in braces the game never fills in, such as {value}, since a value fills only {n}. A placement's yaw past 64 is refused where it is given, since a yaw is in radians
  • A map's properties, its title, description, author and tags in every language, now have twice the room
  • A rule script's catalog.modify that names an unknown type is now refused when the script is checked, and a state or params field named count now reads as a value
  • A script's damaged and entity_died events now name the weapon that fired, through its projectiles and their blasts too
  • The colour picker's typed and set colours now agree, and its palette shows the colour a click sets
  • A map's sounds now play only as Ogg Vorbis or PCM WAV. MP3 and FLAC sounds no longer play, and the editor's asset list no longer offers them as audio. A sound, image or model kept under another file extension now counts against the map's size limits
  • lanes.create and lanes.remove lay out a lane through regions, and units.follow_lane sends a CPU unit or a horde along it, checkpoint by checkpoint. A follower counts only while it stands on the ground at the lane. Past a stretch whose ground is gone, followers rejoin the lane, a horde sharing one way across; a lost mandatory checkpoint fails the order blocked, and single-file CPU followers wait for the one ahead
  • nav.ask files a route question that nav.answer reads as pending, ready with the route's length or cost, no_route or capacity_limit, and nav_answered fires once it is answered
  • terrain.can_paint answers false where a region's settings protect the terrain from paint; before, a rule script's call ignored those settings
  • A respawn region whose box holds no ground now lands the player on the ground left in its columns, or else the nearest ground, instead of keeping the respawn waiting
  • The Data window's New Entry now creates a Loot Table, Container Layout or Transaction Template from the smallest record it accepts
  • Test Play starts faster, and a script that builds or digs among many objects runs faster
  • A map that takes over one mouse wheel direction now leaves the other for switching weapons
  • A body flung faster than the game can follow, by a map's own knockback or rope settings, is slowed to that limit, so it no longer passes through thin walls
  • Corpse Lifetime moves from the VFX entry to the gameplay entry, and now also decides when a fallen unit leaves the match. Mines and shots a fallen unit left in the world keep fighting for its side until they end
  • A map package whose file list is forged, or that hides a file far larger than it declares, is now refused when it opens instead of taking more memory than it should. So is a map layer of more than 65,536 data files, which stopped the game before


Compatibility

  • Saved games and replays made in 0.1.5 cannot be opened in 0.1.6. They stay in their lists, marked "From another version."
  • A map made for 0.1.5 needs updating where it sets Weapons Carried, the VFX entry's Corpse Lifetime, an item's old fields or a Deploy part's pack_up, calls shop.sell, treasure_chest.loot or ai.offer_purchase in their old form, checks for the order failure not_available, now blocked, names the removed health_collect effect or target_below_full_health validator, holds a value outside its field's range, or places the Ember Vent
  • Players need the same version to play online together