Dev Progress: Multithreading Update
We've improved the multithreading handling of the server. With the upcoming update, the server will use all worker threads for a single update of a sector. The Avorion server uses a thread pool for updating sectors, and then gives work packets to these threads. Before this update, the server created one work packet per sector update, meaning sectors were updated in parallel, but each sector was only updated by a single thread. Due to technical reasons a server tick/frame can't be finished until all sectors have finished updating, and it often happened that the server had to wait for one thread that took very long to finish, leaving the remaining threads (and thus CPU cores) idle (doing nothing). For example, take a server with 8 worker threads, 10 sectors in memory and there's a large battle going on in one of them, sector 10. Sectors with battles take longer to update, so let's say that the sector with the large battle takes 70ms on average to update (which is a very realistic number that we've seen plenty of times) and the others each takes 2ms. With 8 workers, sectors 1 to 9 would be finished after 4ms, and then these threads would be idling (sitting around doing nothing) since they didn't have any more work to do, while the remaining thread, that's updating sector 10, would still have to run for 66 more milliseconds. The server can't finish the frame and has to wait for the thread to finish the update, while the other 7 worker threads do nothing, which is an obvious waste of CPU power. With this update, we've changed the way that this system works. Instead of creating a single work packet per sector, each sector is subdivided into many small work packets that can then all be updated in parallel. This way we can update all sectors in parallel AND have all worker threads work on a single sector. This is a graph of what sector updates look like now (you should enlarge it or look at it in a separate tab):
This is a profiling image of a server with 7 worker threads and with 2 HUGE faction battles (30 ships vs 30 ships per sector, one near the barrier, both including carriers and about 150 fighters each) going on in 2 different sectors. The X axis is time, while each row represents a worker thread. The colored bars are the work packets that the threads have to work through. An update frame goes from the purple bars [1] to the grey boxes [3], which represent the end of the sector update step. I've included multiple frame updates on top of each other so you get a better idea of how different they can look, even though it's the same 2 sectors each time. Yay multithreading! Same color means the same kind of work. A few examples: The pale red ones [5] ship AI updates, purple [4] are turrets aiming and turning and blue [6] in the 4th row are fighter AI updates. The green [7] at the end of the frame is update sending and the golden and black ones [8] are collision handling and detection. When there's multiple work packets with the same color above each other, that means that multiple threads are working on the same logical update, but distributed over the different threads. When there are no bars at some time (the white gaps) then that means that the worker is idle, either because there is no work to do or because a thread from another program has been scheduled by the operating system to do some other work. This is solely influenced by the operating system and we have no control over this. But basically, the denser the colors are packed, the better. These gaps will get more the more different other programs you run on the same machine as the Avorion server. So what does all of this mean? To make it short: Avorion will run a LOT better on machines with multiple cores! The updates you're seeing here are only about 5ms long - meaning that 2 huge battles in 2 sectors can be updated within, on average, 5 milliseconds! (CPU: Intel i7-6700K with 4 cores @ 4.00GHz & Hyperthreading) These are the two battles that were going on at the time of the profiling:
Of course there are still outliers (for example when a ship is spawned or destroyed), but even those have been reduced to maybe 3 - 5 times the average update time (5ms means we get outliers from 15 ms to 45 ms every 15 frames or so).
We've also introduced a new way of executing scripts (actually this is not true, it's been in since the Alliances update, but we haven't used it yet): Async calls. These are mostly used to asynchronously generate ships that spawn during play time. While profiling we realized that generating the ship plans take up 80% - 98% of the time required to spawn ships, so in order to reduce server lag while spawning huge armadas ship plan generation is now done asynchronously and the server won't lag as much.
With the new update we'll also introduce an RCON Interface to the server, with which you can control the server with typical RCON tools. There are plenty of tools at your disposal, so simply pick the one that suits you most.
Soon! We're done with all the features we want and we'll do several more bugfixes, but then it's ready. We'll also post detailed patch notes once the update goes live. Have fun!
[ 2017-08-23 21:07:34 CET ] [ Original post ]
Hey guys, we've been working on several server improvements concerning multithreading! This post will get a little technical again, so brace yourselves! The reason why the update is taking so long, even though we promised otherwise (we know, sorry for that!) is that multithreading is a very complex issue that can easily introduce bugs when not done correctly.
Multithreading
We've improved the multithreading handling of the server. With the upcoming update, the server will use all worker threads for a single update of a sector. The Avorion server uses a thread pool for updating sectors, and then gives work packets to these threads. Before this update, the server created one work packet per sector update, meaning sectors were updated in parallel, but each sector was only updated by a single thread. Due to technical reasons a server tick/frame can't be finished until all sectors have finished updating, and it often happened that the server had to wait for one thread that took very long to finish, leaving the remaining threads (and thus CPU cores) idle (doing nothing). For example, take a server with 8 worker threads, 10 sectors in memory and there's a large battle going on in one of them, sector 10. Sectors with battles take longer to update, so let's say that the sector with the large battle takes 70ms on average to update (which is a very realistic number that we've seen plenty of times) and the others each takes 2ms. With 8 workers, sectors 1 to 9 would be finished after 4ms, and then these threads would be idling (sitting around doing nothing) since they didn't have any more work to do, while the remaining thread, that's updating sector 10, would still have to run for 66 more milliseconds. The server can't finish the frame and has to wait for the thread to finish the update, while the other 7 worker threads do nothing, which is an obvious waste of CPU power. With this update, we've changed the way that this system works. Instead of creating a single work packet per sector, each sector is subdivided into many small work packets that can then all be updated in parallel. This way we can update all sectors in parallel AND have all worker threads work on a single sector. This is a graph of what sector updates look like now (you should enlarge it or look at it in a separate tab):
This is a profiling image of a server with 7 worker threads and with 2 HUGE faction battles (30 ships vs 30 ships per sector, one near the barrier, both including carriers and about 150 fighters each) going on in 2 different sectors. The X axis is time, while each row represents a worker thread. The colored bars are the work packets that the threads have to work through. An update frame goes from the purple bars [1] to the grey boxes [3], which represent the end of the sector update step. I've included multiple frame updates on top of each other so you get a better idea of how different they can look, even though it's the same 2 sectors each time. Yay multithreading! Same color means the same kind of work. A few examples: The pale red ones [5] ship AI updates, purple [4] are turrets aiming and turning and blue [6] in the 4th row are fighter AI updates. The green [7] at the end of the frame is update sending and the golden and black ones [8] are collision handling and detection. When there's multiple work packets with the same color above each other, that means that multiple threads are working on the same logical update, but distributed over the different threads. When there are no bars at some time (the white gaps) then that means that the worker is idle, either because there is no work to do or because a thread from another program has been scheduled by the operating system to do some other work. This is solely influenced by the operating system and we have no control over this. But basically, the denser the colors are packed, the better. These gaps will get more the more different other programs you run on the same machine as the Avorion server. So what does all of this mean? To make it short: Avorion will run a LOT better on machines with multiple cores! The updates you're seeing here are only about 5ms long - meaning that 2 huge battles in 2 sectors can be updated within, on average, 5 milliseconds! (CPU: Intel i7-6700K with 4 cores @ 4.00GHz & Hyperthreading) These are the two battles that were going on at the time of the profiling:
Of course there are still outliers (for example when a ship is spawned or destroyed), but even those have been reduced to maybe 3 - 5 times the average update time (5ms means we get outliers from 15 ms to 45 ms every 15 frames or so).
Multithreading Part 2: Async Scripting
We've also introduced a new way of executing scripts (actually this is not true, it's been in since the Alliances update, but we haven't used it yet): Async calls. These are mostly used to asynchronously generate ships that spawn during play time. While profiling we realized that generating the ship plans take up 80% - 98% of the time required to spawn ships, so in order to reduce server lag while spawning huge armadas ship plan generation is now done asynchronously and the server won't lag as much.
RCON Interface
With the new update we'll also introduce an RCON Interface to the server, with which you can control the server with typical RCON tools. There are plenty of tools at your disposal, so simply pick the one that suits you most.
When is it coming?
Soon! We're done with all the features we want and we'll do several more bugfixes, but then it's ready. We'll also post detailed patch notes once the update goes live. Have fun!
Avorion
Boxelware
Boxelware
2020-03-09
Indie Simulation Singleplayer Multiplayer Coop
Game News Posts 295
🎹🖱️Keyboard + Mouse
Very Positive
(11751 reviews)
https://www.avorion.net/
https://store.steampowered.com/app/445220 
The Game includes VR Support
Avorion Linux Content [28.59 M]
Avorion - Black Market
Avorion - Into The Rift
Avorion - Behemoth Event Series
Avorion is currently in Early Access, and is under active development. If you want to know more about that, please read the Early Access disclaimer at the top of the page.
Several hundred years ago, a cataclysmic catastrophe nearly ripped your galaxy apart - an unsurmountable ring of torn hyperspace fabric appeared in the center of the galaxy, which normal hyperspace engines can’t overcome.
Since this event nobody has managed to get near the central regions of the galaxy. All you know is that this event also spawned multiple unsurmountable hyperspace rifts throughout the entire galaxy, and that a strange race of aliens, the Xsotan, has appeared in the center. It looks like these aliens have found a way to surpass the torn hyperspace fabric, but so far nobody has managed to establish contact with them.
There are also rumours about a strange new metal called ‘Avorion’, which has appeared in the center of the galaxy, around the same time as the Xsotan arrived. Apparently the aliens use this material to build their ships.
Start out as a nobody at the edge of the galaxy and work your way to the center of a galaxy that gets more dangerous, but also more rewarding the closer you get to its core. Avorion takes sandbox aspects from games like X or Freelancer, throws in co-op multiplayer and lets you build your own ships. It features ships made of freely scalable blocks that can be procedurally generated and that break into pieces where they're hit in space fights.
Explore the galaxy at your own pace to find valuable goods in old ship wreckages, undiscovered asteroid fields rich of resources, unchartered asteroids which you can claim for yourself, or clues as to what happened during the event a few hundred years back.
Build specialized transport ships with lots of cargo space or heavily armored battleships with strong shields. Collect loot from defeated foes which you can use to upgrade your ship: New turrets, resources, trading goods or system upgrades. Install system upgrades that allow more weapons, ease asteroid mining or trading systems which detect trading routes over multiple sectors.
And why build only one ship? Hire captains to fly your ships for you, manage your crews, weapons, hangars and fighters and build your own fleet of space ships!
In Avorion you choose your personal playstyle. Haul cargo, find profitable trading routes and found factories. Or maybe you're sick of being the good guy? Build your own battleship, equip it with powerful weaponry and blow away your enemies. Be the aggressor that starts wars with entire factions, raid freighters, smuggle illegal goods and scavenge old wreckages. Find your way to the center of a galaxy that gets more hostile, but also more rewarding the closer you get to its core.
Several hundred years ago, a cataclysmic catastrophe nearly ripped your galaxy apart - an unsurmountable ring of torn hyperspace fabric appeared in the center of the galaxy, which normal hyperspace engines can’t overcome.
Since this event nobody has managed to get near the central regions of the galaxy. All you know is that this event also spawned multiple unsurmountable hyperspace rifts throughout the entire galaxy, and that a strange race of aliens, the Xsotan, has appeared in the center. It looks like these aliens have found a way to surpass the torn hyperspace fabric, but so far nobody has managed to establish contact with them.
There are also rumours about a strange new metal called ‘Avorion’, which has appeared in the center of the galaxy, around the same time as the Xsotan arrived. Apparently the aliens use this material to build their ships.
Start out as a nobody at the edge of the galaxy and work your way to the center of a galaxy that gets more dangerous, but also more rewarding the closer you get to its core. Avorion takes sandbox aspects from games like X or Freelancer, throws in co-op multiplayer and lets you build your own ships. It features ships made of freely scalable blocks that can be procedurally generated and that break into pieces where they're hit in space fights.
Combat
Equip your ship with chainguns, lasers and other weaponry to take on your enemies and enjoy the sight of completely destructible ships breaking at the exact points where you hit them. Defend your allies from pirates, hunt down enemies for coin or even participate in wars between entire factions. Build hangars and command squads of fighters in your battles or destroy enemy freighters to steal their cargo.Explore
Fly through beautiful nebulas and dense asteroid fields in search of hidden treasures and meet the many factions that populate and control their portion of the galaxy. Each faction has its own characteristics, such as peaceful, intelligent or aggressive, and has its own ship styles, meaning their ships and stations have a distinct look.Explore the galaxy at your own pace to find valuable goods in old ship wreckages, undiscovered asteroid fields rich of resources, unchartered asteroids which you can claim for yourself, or clues as to what happened during the event a few hundred years back.
Build Your Fleet
There are no limits to ship size or complexity besides your resources. You're not bound to the standard voxel style and while building an awesome ship in Avorion you won't get lost in lots and lots of micro-management. You can focus on building a great looking ship, without having too much trouble to make it work. But make sure you still keep an eye on your ship’s maneuverability or energy requirements. Adjust your ships perfectly to their operational purpose by building light and agile or heavily armored ships.Build specialized transport ships with lots of cargo space or heavily armored battleships with strong shields. Collect loot from defeated foes which you can use to upgrade your ship: New turrets, resources, trading goods or system upgrades. Install system upgrades that allow more weapons, ease asteroid mining or trading systems which detect trading routes over multiple sectors.
And why build only one ship? Hire captains to fly your ships for you, manage your crews, weapons, hangars and fighters and build your own fleet of space ships!
Trade
Extend your ship with a cargo bay, find profitable deals and haul over a hundred trading goods through the galaxy to make a profit and buy your way up the food chain: Build up a trading corporation and extend your influence in the galaxy by founding asteroid mines and factories that attract NPC traders who will buy and sell their goods at your establishments.Co-op Multiplayer
You don't have to fight the galaxy alone! Avorion features co-op multiplayer, so team up with your friends to build stations together and destroy pirates and enemy factions! Work together to extend your influence in the galaxy and build your own empire. Or, you know, blow them apart in large PvP battles. It's a sandbox, you can do whatever you want.In Avorion you choose your personal playstyle. Haul cargo, find profitable trading routes and found factories. Or maybe you're sick of being the good guy? Build your own battleship, equip it with powerful weaponry and blow away your enemies. Be the aggressor that starts wars with entire factions, raid freighters, smuggle illegal goods and scavenge old wreckages. Find your way to the center of a galaxy that gets more hostile, but also more rewarding the closer you get to its core.
MINIMAL SETUP
- OS: Ubuntu 12.04 or higher
- Processor: Intel i5 @ 3.0 GHz or AMD equivalentMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: Nvidia Geforce 550 or equivalent (full OpenGL 3.0 support required)Network: Broadband Internet connection
- Storage: 1 GB available spaceAdditional Notes: Middle mouse button. mouse wheel required. No Internet connection required for Singleplayer.
- OS: Ubuntu 12.04 or higher
- Processor: Intel i7 @ 3.3 GHz or AMD equivalentMemory: 6 GB RAM
- Memory: 6 GB RAM
- Graphics: NVidia Geforce 1050 / Radeon RX 460Network: Broadband Internet connection
- Storage: 3 GB available spaceAdditional Notes: Middle mouse button. mouse wheel required. No Internet connection required for Singleplayer.
GAMEBILLET
[ 5951 ]
GAMERSGATE
[ 3221 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB