This is the second development update concerning 6.0, the next major update for Mindustry. For the first part, see here.
Many significant issues and bugs have been fixed since the last post. The game is now stable enough to play normally in multiplayer without game-breaking crashes or bugs, and most non-campaign content has been implemented. An alpha build may be released to a separate Steam branch in the coming couple of weeks.
Current Progress
Campaign
Research & Resources
Instead of being stored in a vague centralized location, all resources collected are now local to their cores on the ground. Resources cannot be "launched" anywhere except other sectors. This means that storage is limited by the amount of sectors you have captured, and the types of cores those sectors have.
Nearly all content is now required for research: Items, liquids and units have to be researched before they can be produced. While the amount of resources needed for research is significantly increased, this should not increase grinding, as all sectors under your control can passively generate resources while you play.
Units
Walker Units
Starting with Crawlers, a new branch of insect-like multi-legged units has been created.
Beginning with the second tier, these units are able to walk over most solid blocks. They specialize in sapping and splash-damage attacks. Spiroct and Arkyid units are able to pull enemies closer and leech health from them.
Naval Units
3 tiers of naval units have been added. These are made in a special naval factory, place-able only on water.
Compared to other units of similar tiers, these units are much faster and stronger, to make up for their reduced coverage. T3 naval units possess long range artillery, which can be devastating to coastal structures.
T4+T5 naval combat units may be added as well. Support naval units are also a possibility for future updates.
Boss Units
The "boss"-class units from 5.0 have all been re-implemented, renamed and cleaned up. New ones have also been implemented. The following previews should speak for themselves.
(yes, these units can be built in normal gameplay)
Logic
The long-awaited logic system has been implemented. It is still missing some important features, but is currently very much usable.
This system is based around several tiers of processors, which execute instructions at different rates - similar to assembly language, in some respects, but vastly simplified.
Logic is "programmed" by putting together sequences of instructions that manipulate variables and read/write from blocks. No programming knowledge is required, although the "code" can be exported as text and edited in an external text editor.
Each processor can be "linked" to other blocks. The linked blocks become variables in the logic UI that can be controlled in various ways: for example, most blocks can be disabled to make them stop moving/functioning, and turrets can be manually set to fire at a specific position. Block state, such as item count or power balance can also be read by the processor.
In addition to processors, three new types of blocks have been added for logic-related purposes: displays, memory cells and switches.
Displays
These can be used to display basic vector graphics when connected to a processor. Users have already made use of them for power and item visualization. Other applications, like graphical games, are possible as well.
Raster (typical PNG) images can technically be displayed as well, but with vector displays, the process is very inefficient and not practical outside of sandbox. The image shown here is drawn pixel-by-pixel using code generated from a PNG with an external script.
Memory Cells
These act as additional, indexable storage for processors. Each cell holds a certain amount of numbers (currently, 64) which can be read and written to using numbers 0-63. If you've programmed before, this is like an array of numbers. Processors can link to the same memory cell, facilitating inter-processor communication.
Switches
These are simple blocks that do nothing on their own, but can be toggled by the player in order to do something with a processor. For example, a processor can read the "enabled" state of a switch and use it to toggle a conveyor on or off.
Shown above is a multiplayer pong game, with inputs handled by switches. (The design shown was made by Xusk).
Limitations
These processors are currently only able to control blocks. In the future, units will be controllable as well.
It is also worth noting that, to prevent various problems, processors can only read or write to blocks that are (manually) connected to them. Things such as self-replicating processor-powered bases are currently not possible, but may be in the future.
Release Time Frame
The new tentative release date for 6.0 is somewhere around December 2020. This may change if unexpected problems arise, but hopefully that should be enough time for me to finish everything planned for this release.
This is the first of several development updates I will be making concerning 6.0, the next major update for Mindustry. While the information below is not a comprehensive list, you'll see highlights of what I've been working on for the past few months.
Current Progress
Planets & The Campaign
Instead of taking place on a few preset areas, the campaign will now take place on sectors of planets. While most of these sectors will have procedurally generated terrain and bases, a few will consist of handmade maps - these will be edited versions of the old campaign maps.
The mechanics of sectors are currently under heavy development, but the basic idea is that each region can be conquered and used to generate resources. These resources can then be distributed to other sectors, for use in research or in building additional bases to attack the enemy from.
Units
Control
Instead of being ordered indirectly by command centers, units will be able to move under the direct command of players - either individually, or as a formation around a commander unit. "Mech pads" will no longer exist as a concept, since players can build and control units instead.
The player is able to take control of any unit or turret on their team. When not controlled by a player, a unit will revert to normal AI behavior, like moving toward and/or attacking nearby targets.
Certain units have the ability to command groups of other units in formation. All units in the formation will attempt to stay in the same position relative to the leader, and shoot at the same target. Currently, a player can command a formation by switching to specific unit type and pressing a "command" key.
Note that the formation system is still in its very early stages, and far from finished,
Production
In 6.0, individual unit types will no longer require dedicated blocks. Instead, unit factories are split into 2-3 blocks by type (air, ground, etc). These factories can produce several different "tier one" units, selectable by the player.
To produce higher tier units, factories must move their units into Reconstructors, which can upgrade units to higher tier types. For example, a Dagger unit made in a Ground factory can be put into a specific reconstructor to upgrade it to a Fortress unit.
Shown here is the chain of reconstructors required to upgrade a Wraith unit into a Reaper (boss-level) unit.
New Unit Mechanics
Some new unit types will be introduced. These include:
Carrier units, which can pick up and drop units (and perhaps even blocks);
Walker units, which posses multiple legs and can damage buildings by walking over them;
Note that the unit shown is just a prototype that uses the Eradicator body.
Naval units are being considered as well, but it's not clear if they'll be coming in this update yet.
Basic AI
When enabled in the rules, drones of the enemy team(s) will be able to build basic defenses in Attack mode. This AI works by utilizing a database of schematics and placing structures in locations that fit certain requirements.
It does not try to collect resources into the core like the player - while all its turrets and production blocks do need resources to function, it "cheats" by ignoring block build costs. This may be changed in the future, but for now, making a true AI that could play a competitive game with a player without cheating is simply too difficult to implement.
QoL Features
Transport blocks now display the flow rate of items/liquids passing through them.
A toggleable overlay displays the state of machines (operational, missing resources, or blocked).
Core colors now reflect their team color.
Schematics save message block and power node state.
New Content
Plastanium Conveyors
These conveyors transport items in stacks, resulting in very high throughput. Most of the code and sprites for Plastanium conveyors was contributed by Quezler on Github.
Point Defense Turrets
These turrets damage and destroy incoming projectiles. Energy weapons (such as lasers) are ignored.
Various Upgraded Blocks
Also coming in 6.0 are upgraded versions of the Overdrive Projector, Silicon Smelter and Separator.
Release Date?
While many of the features mentioned here are already usable, 6.0 is very far from being complete or playable. There is still much to implement, including a logic system, new research mechanics and a full implementation of the planet sector system.
There is no deadline set for release - with the amount of features to be added, final release of 6.0 may take up to a year.
Keep in mind that all of the features shown here are subject to significant change before final release.
This is most likely the biggest update that will be coming before the release of 6.0. Notable features in this release include:
Liquid voids, which can be used in sandbox to reduce spills without using a powered incinerator, as well as underflow gates, which are inverted equivalents of overflow gates.
A new tech tree layout. This design reduces wasted space and prevents overlapping blocks appearing when mods are installed.
Font icons of most blocks and items. These can be used in names, the chat, or message blocks. To copy a character for a block or item to your clipboard, shift-click in the placement menu or database.
Full changelog:
Added new icons w/ smooth scaling
Added liquid void (Contributed by @TsjipTsjip)
Added bridge opacity slider (Contributed by @Quezler)
Added "underflow" gate (opposite of overflow gate)
Added "emojis" for most blocks and items into the font
Added new tech tree layout w/ better mod support
Added game log file, stored in data folder
Added new separator sprite/animation
Added list of affinity tiles to stats of certain blocks
Added mod name to description of content, when applicable
Added player limit slider
Added visual indication of input mass drivers when configuring
Added property for mod ores to be added to default generation
Made chat no longer clear after /sync
Increased cost for higher tier tech tree blocks
Slightly increased build time of basic transport blocks to prevent spam
This update comes with a new minimap view and some control improvements. You are now able to pan around the map with WASD while paused or dead, as well as move around the map view (M) with your mouse.
Full changelog:
Added new map view w/ panning and scrolling
Added controls to allow moving camera while paused or dead
Added block health rule
Added more internal teams for alternative gamemodes
Added features for improved server modding
Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
The most significant feature of this update is mod scripting - you are now able create your own content with custom behavior and mechanics, using JavaScript. See the Example Mod for a simple block that creates its own behavior. This system has very little documentation at the moment, but more will come as things are developed.
Full changelog:
Added various new features for modding - see documentation for full details
Added JS scripting - unstable, not well tested yet
Added log console - press backtick (`) to open
Added server block state autosync
Added support for Thai font
Fixed liquid junction to item bridge crash
Fixed launch items not saving
General maintenance bugfixes and translation updates
This update brings a few new blocks, some QoL changes, and many various bugfixes.
Pictured is the Plated Conduit, which is a liquid equivalent of the Armored Conveyor, and the Battery Diode, which can be used to directionally transport leftover power from critical areas. Both of these blocks were made with the help of @Quezler on GitHub.
A new lighting system is being tested. This can be enabled by starting a custom game and enabling lighting in the rules.
Full changelog:
Added experimental lighting system can be enabled in custom game rules
Added power diode block (Contributed by Quezler)
Added plated conduit block (Contributed by Quezler)
Added hotkeys for selecting blocks (Contributed by joshuaptfan) [Desktop]
Added light block for dark maps only
Added customizable global rules [Server]
Added commands to specify next map in rotation [Server]
Improved pulse conduit speed (Contributed by Quezler)
Improved building priority
New permissive mod parsing format (HJSON)
Fixed a few incorrect consumption displays in blocks
Fixed some modding issues related to sets and formatting
Fixed 'underwater' ores in editor
Fixed incorrect bridge linking in certain conditions
Mindustry 5.0 is now out, with many new exciting features. These include:
Schematics. Select an area, then paste it somewhere else or save it for later use. Rotation and flipping is fully supported.
Automatic drone rebuilding. Phantom drones will now automatically replace broken blocks.
New placement controls. Edit your build queue on the fly, remove specific blocks or rotate existing ones. For planning on multiplayer servers, building can now be paused and resumed with a keybind.
Mods. Create and share your own modifications of the game through a simple json-based system. No knowledge of programming is required. Take a look at the example mod repository to see what this looks like. Documentation is currently a work in progress. Note that modding is currently unstable. Report any bugs you find using the link in the game.