Evolution Voxel Ordinator
Dynamic environments evolved!
Under Construction
Mind the mess, we're still getting things sorted as we have time to do so!

General Overview
Voxel n. A unit of volume in a 3D environment in a regular repeating pattern.
Ordinator n. Someone or something that orders or directs something.
What it is
Evolution Voxel Ordinator (EVO) is a modular virtual-world resource management suite to help you rapidly develop massive streamed gameplay environments. It provides resources such as the sector resource management, account management, avatar manager, and much more.
What it isn't
EVO is not a system for creating voxel based games similar to Minecraft as it is not designed to generate enough positions for such use.
What's Included?
We have included in the base package everything needed to get started and anything else that would be required for plugins to function properly such as the Network Manager.
Sector Manager
This asset is the base asset which you start out with and controls the voxel positioning resource management.
This provides various events, methods, and properties for your scripting and also includes a visual display which
can be used both in the editor and at runtime for displaying sector outlines.
The voxel positioning system generates virtualized areas of space known as Sectors, Regions, and Clusters
which have position addresses and the system sends out events which your scripts can subscribe to such as
for when sectors are added and removed, when players enter sectors, regions, or clusters and so on. This allows
you to trigger conditions such as spawning objects, playing sounds, preparing heavy tasks ahead of time, etc.
Network Manager
A Socket.io driven TCP based networking used internally for EVO communications.
Please note that you will need another networking solution for your game play. This network manager simply
handles things such as the account manager, checking to see if a player is in a given sector, data storage on server,
asset server functions, etc.
We recommend using either Mirror Networking or Fish Networking for your player movement and networked animations,
physics updates, etc.

Terrain Agnostic
EVO does NOT provide terrain or terrain generation! You will have to generate terrain tiles and then place them using information from EVO such as by subscribing to onRegionAdd and onRegionRemove events and sizing your terrain tile to match the region size.
Alternatively and we strongly suggest this, you can use something like MapMagic 2 paired with MicroSplat which can generate endless terrain based on your own custom made graphs using position based seeds. They also support origin offsetting which you could tie into EVO.

Advanced Resource Management
Using the distance data updates you could prepare code ahead of time for when a player enters the sector such as more intensive loading code or needing to pull data from a server ahead of the player getting to the area. You could also use the information to do something for when a given sector unloads.
The possibilities with EVO are seemingly endless!
- Trigger terrain tile spawning.
- Trigger other libraries or assets to perform tasks based on player position.
- Play sounds when a player enters or leaves a sector.
- Permit players to purchase/own sectors, regions, or clusters.
- Much more!
Events System
The system uses Unity events that you can subscribe to in your scripts very easily in order to tell when:
- Sectors are loaded.
- Sectors are unloaded.
- When a player enters a sector.
- Also allows you to tell the last sector the player was in.
- Position updates.
- Distance data for how far a newly loaded or unloaded sector is from the player.
- Query to see which players are in a given sector, region, or cluster.
Plugins
We are developing various plugins that extend the functionality of EVO further in a modular fashion allowing you to purchase whichever plugins you need which also has the added benefit of allowing you to keep your game build more organized in addition to not having it unnecessarily bloated with unused assets and code.
Manage registration and accounts using our Account Manager plugin.
Store and retrieve binary glTF models from a server allowing you to stream 3D models from an asset service rather than needing to add them and rebuild your game each time you do. This is a raw asset system that does NOT use Unity Asset Bundles, it is far easier and better! This does require you to install and configure glTFast from Unity Package Manager which we will guide you through, it's not at all hard, we promise!
This plugin includes a server side asset hosting server app which you will need to host on a dedicated or virtual private server some place. We recommend OVHCloud since they do not bill you for bandwidth consumption!
This asset manager also includes a cache manager built-in, so that recurring asset requests will load from local disk after a quick checksum check to see if the server has an updated copy, that way you are only loading in models from the server side as needed rather than every time a player reaches the same spot in your game.
Over 20 free avatars from Mixamo (royalty free for commercial use). You can instantly change avatar during runtime via code.
This manages scripts that are to be assigned to loaded models. Simply make your script and then add it to the manager assigning it to object UUID and when the object loads into the scene it will automatically get assigned to the model.