Global World Optimization Framework PRO MAX with Multiplayer
https://www.unrealengine.com/marketplace/en-US/product/global-world-optimization-framework-pro-max-with-multiplayer
Global World Optimization Framework.
After adding some cool features to the plugin and also with the introduction of Loot Generator, the price of the plugin will be increased.
- This is a very powerful, dynamically scalable and easily pluggable optimization algorithm for your project with the “Divide and Conquer” principle.
- The system can handle thousands of actors. You can create a whole world where each actor will always remember his parameters (character health level, character hunger level, plant growth level, etc.).
- Imagine, you have a window in your house, you opened it and took a bite of an apple, ran away hundreds of kilometers across the world, in which there are still a million actors, and when you returned, the window will also be open, but the apple has already spoiled. And all this with maximum FPS.
- You yourself control the number of actors near your character. And yes, all this with multiplayer support. This is several years of experience in implementing optimization algorithms and it is a perfect creation. This is the best offer on the market.
2 Modules included. Optimization and spawner.
- Optimization module - Sectors Director:
- “Divide and Conquer” - The best optimization algorithm. A technology that divides the entire game world into sectors, and each sector separately stores information about all the actors within the sector. This allows you to work with any number of actors and any size of the world. Simply put, if you have hundreds of thousands of actors in the world, for example: NPCs, weapons, food, chests, doors, in general, everything that your character can interact with, they constantly load the computer and are difficult to process. This system optimizes all actors: it remembers, but does not process in real time, the parameters of those actors who are currently outside the zone of active sectors, but as soon as these actors appear in the active sector, the parameters are immediately loaded taking into account temporary changes (for example , the apple bitten 20 minutes ago has already rotted).
- All actors have several stages of optimization.
- 0 - active actor stage, not limited in any way by the GWO system.
- 1 - stage, the actor is outside the camera's visibility area, the actor is limited by the Event Tick, his animation is simplified, shadows and meshes are disabled. This happens on the client side, so in reality, on the server, the actor is not limited and executes all its events at the right time.
- 2 - stage, the actor is far away, his information is saved and he is unloaded, and if necessary, a replacement with a static mesh occurs. Now the actor is waiting for the player to approach him, and he will be loaded into the system again with all his variables saved.
3. And so, each sector stores only the necessary information, but there can also be a lot of sectors. And here we also created a powerful optimization, we have a cache of sectors that are often used, so if the character moves mainly in one zone, then the data from the cache is loaded instantly.
4. With a component that connects to your actor, implementing our optimization system is made very simple. Each actor will have a unique ID to save in the common system.
5. Each Actor or NPC is processed separately in active sectors and you can specify the distance to the actor at which it will be visible. For example, large actors may appear at great distances, while small ones may appear at close distances. This way you can even out your FPS for your project.
6. The size of the sectors can be adjusted to suit your world.
7. Does not require creating markup at your level. The system is fully dynamically scalable.
8. Dynamic asset loading system. If you entered the visibility zone of objects and there are a lot of them, then they will not all spawn in one frame, but you can adjust the spawn, for example, 5 actors in 1 frame with skipping 2 frames. Then all spawning occurs very smoothly, without friezes.
9. Optimization using a system for replacing actors with instance Static Mesh. To maximize immersion in your project, you may need to show a lot of interactive actors. For example, imagine a city. Each apartment has interactive actors, doors, air conditioners, refrigerators, and televisions. Each of these actors makes sounds when working, as well as waiting for your interaction, and they always take up CPU resources. Yes, with the help of a plugin and optimization they will be removed, but if you look at this apartment from afar, you will not see the air conditioner or other actors. With our system, all these actors will be replaced with Instances, and like trees, they will be displayed from afar, while using practically no resources. And when approaching, they will be gently replaced by real actors and will restore the information. Your TV will turn on again. Now, imagine a whole city of such houses with hundreds of thousands of actors. With this system this can be easily achieved.
- Population control module - Spawner:
- This spawner can cope with any task, this is not only the spawning of NPCs, but also any actors. For example, fruits or weapons. Everything you might need for your project.
- Full integration with Sectors Director. By using a unique ID for each actor, each spawner always knows the status/state/parameters of the actor belonging to him.
- For maximum convenience, in each spawner it is not necessary to make separate settings for the spawn of each actor. Now you can make lists based on DataTable and each spawner can have as many lists as you like. For example, you have a list of NPC spawns that contains gnomes and orcs, and the second list may contain magicians and warriors. You can add as many lists as you like to each spawner, it’s fast and convenient. Another example, during development you decided to add NPC archers to some spawners. You can simply add archers to one of the lists, or create another list and simply add them to the spawners.
- For each actor in the list, you can flexibly configure a large number of parameters, such as spawn chance, spawn chance depending on the time of day, distance at which to spawn, random Rotation, respawn time, minimum spawn distance (so that actors don’t spawn right in front of you) and much more other parameters.
- Now in the actor spawn settings you can configure the maximum number of spawned actors, and the maximum number of active actors in the world. This way you can limit the spawning of only 5 orcs, and if this number of orcs are spawned, the spawner will wait until they are destroyed.
- All actors that are currently ready to spawn are transferred to Sectors Director, which can spawn everyone not in one frame, but based on the settings. For example, 2 actors per 1 frame, and after that skip frames, the number of which you can configure yourself. Therefore, the spawn of all actors is very smooth and without loss of FPS.
- In RunTime, the spawner can change spawn points if you want it to. This is done so that the spawn is always random, which makes the world unique and interesting.
- The spawner always monitors the actor population. With it, you can easily support a huge number of actors in your world. This allows the creation of large populated worlds.
- All information about your actor is saved at any distance. If an actor spawned, and you performed some manipulations with him and went a long distance, then when you return, all the information will be restored, be it health or any other parameters.
- When setting up the spawner, it will divide the entire area into sectors, and show spawn points in these sectors. You can configure the number of actors to be in each sector. Plus, in Runtime these sectors can be mixed to create unique worlds.
- Spawn at start. You want some objects to be visible from afar, especially if they are large and will be further optimized using Instances. Just enable this feature in the list and the spawner will spawn everything at startup using spawn queues, so it won't cause freezes in your project.
This plugin will be constantly improved and expanded.
Technical Details
Many people ask the question if this plugin can optimize your actors and NPCs without a dedicated server. Of course it can. The trailer made for this plugin does not have any dedicated server.
Features:
- “Divide and Conquer” - The best optimization algorithm.
- Save and Load System
- Soft actor spawn
- The system can optimize any number of actors, even if there are millions of them
- Spawn lists. Maximum flexibility with spawn settings.
- The plugin is easy to use.
- Full multiplayer support
- All calculations are done on the server side.
- Does not require knowledge of C++. All the necessary functions are presented in the blueprint
- It's easy to create big worlds
- Free support for our products in discord
- This is the best offer on the market.
Code Modules:
- AGWOSpawner (Type: Runtime)
- AGWOSpawnZoneBlocking (Type: Runtime)
- AGWOSectorsDirector (Type: Runtime)
- UGWOPlayerComponent (Type: Runtime)
- AGWOGeneralAccess (Type: Runtime)
- UGWOActorComponent (Type: Runtime)
Number of Blueprints: 8
Number of C++ Classes: 9
Network Replicated: Yes
Supported Development Platforms: Win64, Mac, Linux
Supported Target Build Platforms: Win64, Mac, Linux
Example Project: Included