Skip to content

Overmind 0.3: "Back to Base-ics"

Pre-release
Pre-release
Compare
Choose a tag to compare
@bencbartlett bencbartlett released this 09 May 21:51
· 374 commits to master since this release

This release adds a ton of new automation features to base planning, partially overhauling the old RoomPlanner. Once a room plan is set at RCL1, the RoomPlanner never needs to be reopened. Road networks are now continuously re-computed by the new RoadPlanner module, allowing you to dynamically add and remove outposts. UpgradeSites now determine their own optimal placements, and UpgradeSites and MiningSites now automatically build links when appropriate.

The terminal network has been improved as well, and now tracks transfers between locations within the network (Grafana support available in the updated dashboard.) Colonies now produce more upgraders while near full energy, and have a low-power mode that scales back transporters to save on CPU. Additional resource management assets, including directives for scavenging and for integrating with the logistics system, have been added but will be enabled in a future release.

Added

  • Lots of new content added to the Wiki!
  • TerminalNetwork stat collection, which accumulates all send() calls and transfer costs by resourceType between origin and destination
    • Added Grafana dashboard support for new stats (in /assets)
  • Lots of automation improvements to the room planner! Now once you create a room plan at RCL 1, you can dynamically add and remove outposts without needing to open/close the planner.
    • Road planning is now done with the RoadPlanner, which is instantiated from a room planner, and provides a much higher degree of automation:
      • Road network is continuously recalculated every 1000 ticks with a heuristic that encourages road merging at minimal expense to path length
      • Roads which become deprecated (no longer in the optimal road plan) are allowed to decay
      • Road routing hints (white/white flags) no longer have any effect. (The new routing algorithm uses a variant of this idea to merge roads more intelligently.)
    • UpgradeSites now automatically calculate input location and no longer need to be placed in room planner
    • MiningSites at outposts now automatically build container outputs without you needing to reboot room planner
    • Automatic link placement
      • MiningSites will replace their containers with links if above 10 path length from storage (prioritizing farthest)
      • UpgradeSites will add a link if above 10 path length from storage if miningSites already have links
        • UpgradeSites now have link and battery properties which request energy independently
  • Added some version migration code in sandbox.ts which will reboot the room planner for each colony one at a time to account for the new changes
  • Hauling directives and overlords for hauling large amounts of resources long distances (e.g. scavenging from abandoned storage)
  • Finished coding LogisticsRequestDirectives: these flags act as requestor or provider targets and have a store property
    • provider == false: requests energy to be dropped at a positiion
    • provider == true: resources dropped at position or in a tombstone to be collected
    • These directives are functional, but their automatic placement has been disabled until a future patch while I continue to improve the logistics system performance
  • Preliminary contract module for making deals between players
  • Energetics module, which will make high-level decisions based on energy distributions
    • Colonies now have a lowPowerMode operational state, which scales back production of miners and transporters at RCL8 with full storage/terminal
  • New version updater system alerts you when a new release of Overmind is available
    • Currently only available on shard2; shard1 and shard0 support coming soon

Changed

  • Transporters now use a single-sided greedy selection at RCL<4, since stable matching only works well when the transporter carry is a significant fraction of the logisticsRequest target's capacity
  • Workers and queens include tombstones in their recharge target list
  • Task.creep once again points to a Zerg object rather than a Creep object (Tasks are still hosted on creep prototypes, however)
  • TaskRepair will now attempt to move to within range 2 if repairing a road; this should fix the move-stop-repair-move-stop-repair behavior of workers repairing remote roads
  • TerminalNetwork now sends excess energy to room with least energy rather than non-full room with least send cost overhead
  • More upgraders spawn when room is at very high energy capacity
  • Changed how colony.dropoffLinks is computed
  • Disabled stack tracing for all logging except errors; removed some annoying alerts ("transporter chooses request with 0 amount!")

Removed

  • Deprecated TaskDeposit; use TaskTransfer instead
  • TaskWithdrawResource has replaced TaskWithdraw
  • Removed the source for Overmind.ts and replaced it with an obfuscated, pre-compiled Overmind_obfuscated.js
    • This is in preparation for implementing behavioral locks which will make Overmind more fair to new players
      • See the header in Overmind_obfuscated.js for more details

Fixed

  • Bugfixes with TaskDrop, TaskGoTo, TaskGoToRoom
  • Even more bugfixes with TaskDrop
  • Fixed bug (hopefully) with creeps not approaching to range 1 in TaskAttack and TaskHeal
  • Fixed bugs where claimers and reservers would get stuck trying to sign a room that was perma-signed by Screeps as a future newbie zone
  • Fixed a bug where upgradeSites could misidentify their input in some pathological room layouts