1. Vectorio
  2. News

Vectorio News

Update v0.2.1 (Multiplayer) | Available on Experimental

Hello everyone!

Multiplayer is finally now in a state where I feel comfortable deploying it to a larger testing audience, specifically on the experimental branch.

NOTE: The two major tech pieces of this update (Multiplayer & Component Refactor) have taken a considerable amount of time to put together, and while they're in a much more stable state now, I'm still expecting some issues to arise with them. Please bare with me as I work through these issues!

Also note that some content has been stripped, as it's not quite fully updated to the new component system (these mainly being world features). It will be brought back as testing progresses.

[h3]How to opt into experimental:[/h3]
  1. Locate Vectorio in your Steam library
  2. Right click and go to "properties"
  3. Find the "betas" branch
  4. Using the dropdown, select "Experimental"

[h3]Experimental Info:[/h3]
  • Testing Cycle: ~2 weeks
  • Experimental Saves: Enabled
  • Backwards Compatible: No
  • Update Type: Major Patch
  • Contains Spoilers: Yes


[h2]v0.2.1 Patch Notes[/h2]
[h3](not including 0.2.0)[/h3]

The following is a list of changes pushed to the experimental branch. While changes are usually tested beforehand, please note that some may require further testing to validate.

[h3]Core Tech:[/h3]
  • The biggest tech overhaul to the game; the Component Refactor. Fundamentally changes how entities are defined and built in the games back-end entity manager system.
  • Completed networking architecture (Multiplayer), join forces with friends on a shared world. Currently in testing and will likely have issues, but I'll be watching forums closely to address bugs and deploy patches for them as quickly as I can over the coming week.
  • Updated save system, with better save-state capturing. (i.e. saving drone position & action)
  • Automated model batching, which should drastically reduce draw calls each frame. This is disabled in the first build of v0.2.1 but will be enabled shortly after.

[h3]General Improvements:[/h3]
  • New control-scheme, including dedicated control modes and click & drag movement.

[h3]Bug Fixes:[/h3]
  • Fixed global modifiers not applying properly.
  • Variety of fixes from the previous mp-testing build.

Update on Multiplayer (v0.2.1)

Hello Everyone!

I just wanted to send out a quick update on v0.2.1 and the introduction of multiplayer, as well as touch on the final exciting core tech improvement that will be included in this update.

Before I get into this, I just wanted to say a quick thank you to everyone who has been testing out the 0.2 build on experimental. Your feedback and been invaluable to me, and has helped to quickly improve the overall quality and stability of the 0.2 branch for when it goes live later this month.

[h2]Multiplayer Support[/h2]
[h3]Experimental Release Date (v0.2.1)[/h3]

As many of you know, I was originally estimating the release of multiplayer to be on May 3rd, but due to a few missing pieces of networking architecture a few days prior to that date, I decided to delay it a week in order to allocate enough time to finish it off and ensure the build was stable and ready for testing.

However, during this week I went down a rabbit hole of component-based architecture, which somehow stemmed from a networking related issue that I was trying to solve. One thing led to another, and now the entire component hierarchy of the game has been completely changed - but for good reason.

I'll touch on specifically what this is below, but for those who just want to know when they'll get to play multiplayer, I am confident I'll be able to have it out into your hands on May 17th.

Update (May 21st): We ran a very successful test of the client state syncing system and backend connection handling for game sessions, with a lobby of over 10 people all on the same session without any sort of network lag. However, this build had other issues with it that stemmed from the component refactor that I go into detail about below, and so was recently disabled. A v0.2.1b build is being put together for experimental deployment this week and will be far, far more stable!

[h2]Component Refactor[/h2]
[h3]The Biggest Tech Improvement Yet[/h3]

The component refactor is the culmination of the last year and half of work. It builds on top of all the amazing technological improvements I've been making over the past few months, and was the final piece of the puzzle in regards to paying off Vectorio's "tech debt" (requirements to support all future content)

I cannot put into a single message how immensely powerful and significant this change is, but I'll explain below what is and why it's so important to the overall vision of Vectorio.

[h3]What is the Component Refactor?[/h3]

The component refactor is a massive hierarchy-based change to how data segments are defined and implemented into their component counterparts. Prior to this, components were defined in a "ladder-based" hierarchy, where similar data types & components would inherit all the previous attributes and methods from their parent. This worked well in the smaller scope of Vectorio, as many components needed to access or override similar logic to other components, so simply having them inherit / extend that logic was an easy and quick approach for setting up new entities.

As an example, let's say we have a claimer-type building. Prior to this change, here is out the inheritance structure would've worked (note this is VERY much an over-simplification)...



In this picture, you can see that the claimer inherits all of the methods & attributes from the building component, and the building component inherits all of the methods & attributes from the base entity.

This worked great and was an easy way to quickly get access to certain values or methods that a particular component would need, but doing it this way also locked the system out from being able to define entities that had multiple component functions to them. For an example, here is the drone port...



If we (theoretically) wanted to create a claimer that also housed some sort of drone in it, we couldn't, or at least not in a way where we could reuse the previous components. This made creating new buildings that utilized pre-existing logic impossible, making it hard to build and expand on.

However, this has now changed with the component refactor. In this new component architecture, components are now defined as individual objects that inherit from a generic component interface, and are stored on an entity through the usage of a polymorphic data list. This means components no longer have a pre-defined structure to them, and are able to operate and execute logic independently of one another while still being able to communicate via their shared base entity. Here's an example...



While the above image may look confusing, essentially what you're looking at is a singular entity with a list of different components. This means the "Reclaimer" is no longer specifically built from a "ClaimerData" object, but instead a list of components that make up the Reclaimers logic (in this case, a Building component and Claimer component). While this doesn't change how the Reclaimer operates, it now separates the claiming logic into it's own component which any building can now use!

[h3]Why is this so significant?[/h3]

Obviously component-based architecture is nothing new, and it's one Unity's strong suits in regards to what utilities they offer, but this component system specifically builds on top of all the other amazing core tech that has been designed from the ground up to support the expanded vision of Vectorio.

What I mean by this, is that the components directly interface with all of the systems that have been developed and iterated on over the past months. This means components can interface with the Entity Manager to receive update ticks, access and utilize the entity model system, interact and obtain info directly from the tile-grid, manage or edit sounds through the audio system, subscribe to events based on certain state changes, request and sync received network state info, automatically handle entity pooling without any boilerplate code, and so, so much more.

This is a highly customized system that works in the scope of Vectorio, and provides components with all the utilities and data they need to function in an efficient and easy-to-access manner. On top of this, components communicate with other local components via the e-component system (highly custom interface for Vectorio components), which automatically handles conflicts or missing references without needing any additional checks. It's a very modular system that finally removes the barriers to some really exciting new content that people have been asking for for a long time.

[h3]When will this be available[/h3]

In v0.2.1 alongside multiplayer! Well this isn't gonna necessarily change any of the pre-existing content, it should give a good idea of where we're headed and why this system was needed. It's the final leap towards a truly modular entity system; paving the road for future content and eventually, mods!

In the meantime, if you have any questions or concerns about this, please feel free to let me know! I know this was a lot of technical talk, but I think it's important to illustrate the significance of this system and why so much time has been spent working towards achieving it.

So thank you, truly, for being patient during this time and allowing me to do this properly. I know early access has been slow so far, but you will see all this work come to fruition in the very near future :)

Thanks for reading,
~ Ben

Update v0.2.0d | Available on Experimental

Hello again!

A new experimental patch is now available for testing! You can access it on the experimental branch by following the instructions below if you wish to get access to the changes and fixes now.

[h3]How to opt into experimental:[/h3]
  1. Locate Vectorio in your Steam library
  2. Right click and go to "properties"
  3. Find the "betas" branch
  4. Using the dropdown, select "Experimental"

[h3]v0.2.0d Experimental Info:[/h3]
  • Testing Cycle: ~1 week
  • Experimental Saves: Enabled
  • Backwards Compatible: Up to 0.2.0
  • Update Type: Experimental Patch
  • Contains Spoilers: Yes


[h2]Patch Notes[/h2]

The following is a list of changes pushed to the experimental branch. While changes are usually tested beforehand, please note that some may require further testing to validate.

[h3]General Improvements:[/h3]
  • Re-Added the placement sound heard when drones construct a building
  • Added new sound effects for the drone ports opening and closing

[h3]Bug Fixes:[/h3]
  • Fixed generators continously adding power to your power storage.
  • Fixed an issue where buildings without a utility resource would cause the unlock window to error out, resulting in the Entity Manager terminating the lab that finished the tech.

[h3]Core Tech:[/h3]
  • Improved the efficiency of the entity pooling system & model cache system, by switching out the ID keys for hash keys, and storing recycled entities in a stack instead of a list.
  • Re-enabled automated on-screen status updates. This was disabled earlier on in v0.2.0's development and never re-enabled, meaning in the builds prior to this all entities were simulating as on-screen entities. This is now fixed and performance improvements should be noticeable.
  • Removed the entity priority system. This was tested in the initial v0.2.0 builds by having it disabled, and performance impacts were reported as being negligible from this change. Optimizations will continue to be made on each entities individual logic, utilizing the screen status to cull more expensive calculations or actions, and improving other areas of the overall simulation.

Update v0.2.0c | Available on Experimental

Hello again!

A new experimental patch is now available for testing! You can access it on the experimental branch by following the instructions below if you wish to get access to the changes and fixes now.

[h3]How to opt into experimental:[/h3]
  1. Locate Vectorio in your Steam library
  2. Right click and go to "properties"
  3. Find the "betas" branch
  4. Using the dropdown, select "Experimental"

[h3]v0.2.0b Experimental Info:[/h3]
  • Testing Cycle: ~2 weeks
  • Experimental Saves: Enabled
  • Backwards Compatible: Up to 0.2.0
  • Update Type: Experimental Patch
  • Contains Spoilers: Yes


[h2]Patch Notes[/h2]

The following is a list of changes pushed to the experimental branch. While changes are usually tested beforehand, please note that some may require further testing to validate.

[h3]v0.2.0 Enabled Content:[/h3]
The follow content has been enabled for testing...
  • New defensive building, Striker, which consumes ammunition to fire seeking missiles. Is available only to the player and can out-range Artillery to help with larger bases.
  • New logistics building, Ammo Forge, used to craft ammunition for other buildings. Will be used heavily in stronger defenses that require some sort of logistical problem to solve in order to use.

[h3]General Improvements:[/h3]
  • Added a new resource X-Ray utility, that lets you see the resources inside of each building across your entire base, all at once. Should help with understanding where resources are going.
  • Added internal storage containers & recipe info to the building UI. Currently there's no interactivity options for specifying things like filters, but these are in the works.
  • Improved drone reliability by adding more conditional checks before they deploy. This is still being worked on, but there should be a noticeable improvement.

[h3]Bug Fixes:[/h3]
  • Re-Added the liquidator back into the research tech tree, as it was missing after the large database changes done over the course of v0.2.0's development.
  • Fixed drones from doing bad deployments, where they visit targets not in their range.
  • Fixed recipe & tech trees from asking for resources before you actually have unlocked them.
  • Fixed missing recipe icons on the new unlock panel, if they were unlocked following a building.
  • Fixed labs endlessly taking resources that have already been completed in a research tech.

[h3]Core Tech:[/h3]
  • Disconnected the new resource utilities from the resource building entity class. They've now been moved to their own composition module which any entity-type can access.
Note: Due to this change, some resources may be lost when loading into your save for the first time on this build; though it is recommended to start a new save with this build anyways.


[h2]Balance Changes[/h2]

Starting from this patch forward, I will be listing the balancing changes made in greater detail. This will help with understanding why portions of your base may change from update to update, and hopefully get more people engaged with balancing discussions as we move forward.

Note: Balancing changes aren't final - it is a continuous cycle of iteration. If you don't agree with certain changes, please don't hesitate to let me know!

Shotgunner
  • Build Cost: Changed from 350 gold -> 120 crystallite
  • Utility Cost: Power decreased from 5 -> 3

Reclaimer
  • Utility Cost: Changed from 8 heat -> 5 power

Basic Crafter
  • Research Cost: Gold increased from 250 -> 500
  • Research Cost: Crystallite increased from 120 -> 250

Builder Port
  • Research Cost: Crystallite increased 350 -> 500
  • + Research Cost: New cost added, 800 gold

Barrier
  • Research Cost: Gilded Crystal increased from 800 -> 1200
  • Research Cost: Infused Essence increased from 500 -> 800
  • + Research Cost: New cost added, 500 iridium

Pulsar
  • Research Cost: Gilded Crystal reduced from 3500 -> 2500
  • Research Cost: Infused Essence increased from 800 -> 1800
  • + Research Cost: New cost added, 500 atomic alloy

Turbine
  • Research Cost: Gilded Crystal increased from 1500 -> 3500
  • Research Cost: Infused Essence increased from 500 -> 2500
  • Research Cost: Atomic Alloy increased from 800 -> 1200

Crystallite
  • Research Cost: Gold increased from 120 -> 250

Essence
  • Research Cost: Gold increased from 500 -> 1000
  • Research Cost: Crystallite increased from 500 -> 1000

Infused Essence
  • Research Cost: Crystallite increased from 500 -> 1000
  • Research Cost: Essence increased from 500 -> 1000


For now I want to leave the resource changes here and see how they feel, before proceeding with the remainder of the tree. This means future techs may have strange costs to them compared to these.

Update v0.2.0b | Available on Experimental

Hello again!

A new experimental patch is now available for testing! You can access it on the experimental branch by following the instructions below if you wish to get access to the changes and fixes now.

[h3]How to opt into experimental:[/h3]
  1. Locate Vectorio in your Steam library
  2. Right click and go to "properties"
  3. Find the "betas" branch
  4. Using the dropdown, select "Experimental"

[h3]v0.2.0b Experimental Info:[/h3]
  • Testing Cycle: ~2 weeks
  • Experimental Saves: Enabled
  • Backwards Compatible: Up to 0.2.0
  • Update Type: Experimental Patch
  • Contains Spoilers: Yes


[h2]Patch Notes[/h2]

The following is a list of changes pushed to the experimental branch. While changes are usually tested beforehand, please note that some may require further testing to validate.

[h2]Bug Fixes:[/h2]
  • Fixed missing tech references on lumina, barrier, and lancer.
  • Fixed resource delivery line drawing being inaccurate
  • Fixed entity info type not updating when selecting an entity
  • Fixed entity info displaying previous resource amount if entity doesn't have one
  • Fixed turrets with barrels extending the tile range showing incorrect scaling on UI

[h2]Other Changes:[/h2]
  • Re-enabled turret range previewing, with a new shader effect
  • Re-enabled queued claimer range previewing, with a new shader effect
  • Updated depot models which follow design of new storage model


[h3]Note From Developer:[/h3]

Thanks to everyone who has been helping test these initial versions. I've been able to efficiently role through most of the larger issues, with now the main issues present being more related to balancing.

I'll continue to monitor bug reports & deploy fixes ASAP, but I'm gonna start prioritizing actioning some of the feedback regarding the actual gameplay. Here is a list of what I'll be working on and rolling out over the coming week, alongside a number of other improvements...

  • Adding a "resource xray" toggle (via a hotbar button or keybind) that overlays all resources that are contained inside of a resource building, to better help you understand where your resources are.
  • Finishing the entity building settings, as there is a lot of critical information not being shown.
  • A lot of balancing changes to turret & resource values. The values haven't been tweaked too much from v0.1.4, but now with the new library & database system it'll be far easier for me to analyze certain values and make more informed changes, instead of just shooting in the dark.
  • Finalizing The Abyss. There were a few new things left out of the original test because they weren't quite ready. I want to get these out and into your hands this week, as soon as possible!