World War 3 cover
World War 3 screenshot
Genre: Shooter, Indie

World War 3

Weekly Report #41 - Linux Servers


Available in the following languages: PL | RU

This week we bring you some information on how we’re planning to switch to Linux based servers for World War 3 game hosting. This is something we wanted to do for a long time, but with limited resources and time, we had to prioritize other work. We’ve been tinkering with this issue for a long time and finally we have something solid enough, to let you all know this is coming. There are no firm dates yet, but we’ve played on a Linux server successfully.

Some of you might not be immediately struck with this as a good thing - which is understandable, that’s why we want to explain why this is a positive change for both you, the players, and us as a studio.

There are a few benefits that come from switching from Windows to Linux based servers, but the two biggest are: better performance and stability and lower cost.

While Windows Servers are very stable and are generally not a bad choice, especially for people that are not well versed with Linux, the system resource overhead is something we can live without. It’s not a massive difference, but it will definitely increase the quality of our matches. The cost is self-explanatory, hosting servers is expensive and if we can lower the cost and actually improve the quality of service, there’s no reason not to do this.

Additionally, in the case of player-hosted servers (which are planned for post-release), the cost of renting a Linux-based machine is also lower than a Windows-based one, so it will be more user-friendly in this way in the future. Bear in mind, that “planned” doesn’t mean 100% sure, but we know how important this is for the longevity of the game and creating communities, as well as increasing the quality of moderation on each server.

That’s enough for the introduction, let’s settle down for a story of making World War 3 work on a Linux server. This is going to be a bit more technical than usual, but there’s no way to simplify this topic in a way that makes sense for people that don’t know anything about server hosting - we will try, though. If you are someone that wants more information on this topic, you can head out to our forums and ask - we’ll try to answer as best as we can.

Configuration

To start this task we had to test a lot of software and tools that would make it possible and work. We finally landed on a combination that worked for us and started the work.

Cross compilation

Our first plan was to use cross-compilation. It basically means that you can build a program for a platform (like Linux), not actually building it on the target platform (so using Windows). We wanted this to work, because all our development pipeline is based on Windows, and using Windows for building the Linux version would be an ideal solution. This step took a long time, due to various problems and the basic issue of each try taking a long time.

During the compile step* we had multiple issues with engine libraries and plugins coming up with errors. Those were sometimes really cryptic and required clever solutions to work around and fix.
* Compilation - in a very, very simplified way, it’s just a step that takes the code written by people and turns it into something that the computer can understand.

After fixing all of the library and missing file errors, we had to get into the game code itself, which was using some features existing only in the Windows SDK or were unavailable for clang, which we were using at the time for this task.

After reworking some of the code to work on both Windows and Linux, we successfully compiled the game and started the cooking process. Cooking is taking all of the data that is in our game project, packaging it and putting it all into a state that is optimized for performance and not editing and vastly smaller than the massive project size we work on on a daily basis. This step went fine and we prepared to launch it on the Linux machine.

Unfortunately, the program started and exited immediately with and “Unknown Error”. Debugging this problem proved to be a very fruitless effort, as debugging from inside the Linux OS still had Windows path files embedded in it and was leading us to files that are not present on the machine, since the program was built using a different system.

We then went to remote debugging, which is, simply put, connecting to the Linux process using Windows debugger and checking what is happening - but that also failed and after a few more tries and ideas, we decided to try a different approach - which might give faster results.

Native compilation

We configured a Linux machine for this, downloaded a clean UE4 engine and built the editor using this setup. It was a success, so we went to open the World War 3 project in the clean editor and it of course failed - since our game relies on changes we made to the engine, it wasn’t a surprise, but gave us valuable information on what needs to be changed. After finding the issues and fixing them it was smooth sailing with building the server executable for Linux.

Current State

Currently we can build and cook the game under Linux, we can launch the project editor and play the game from Windows, connecting to a Linux server.

We’ve also switched our Master Servers to Linux, but that was a simple task, since it was always designed to do so and was tested on Linux since it was remade about a year ago.

Current Challenges

Because the porting effort took some time, we still have some things to do, mainly updating the Linux version to the current one and keeping it that way. Our Linux version is currently around half a year behind the Live one (this doesn’t mean we have to redo the work, it just means we have to test it after updating and fix any small issues that show up).

Additionally, we have to properly test the performance difference and stability. For this, we will be switching our PTE servers to Linux first in the coming weeks and then, if everything works fine, we’ll make the change on Live servers as well. To properly test this, we’ll need some time with our players, getting their feedback and feelings on how the game works and if it’s the right direction.

Conclusion

It was a long road and there’s still some ground to cover, but from our internal testing it looks like a step up. We hope you understand why we’ve been quiet on this matter for some time. We hope to see you on our brand new Linux servers in a few weeks and in the next Weekly Report on Monday!

- World War 3 Team


PTE UPDATE 0.8.5


Another small one before the weekend, some fixes to bugs we found in Breakthrough, we're still figuring out the invisible packs (we know how this happens, working on a solution), but other than that it seems solid, lest us know how it works!

PTE 0.8.5 Patch Notes

[KNOWN ISSUES]

  • Throwable packs are still missing sometimes,
  • If you press ESC while on a map, it will cover the ESC menu,

[BUGFIXES]

  • Possible bugfix for invisble players,
  • Fixed laser not turning off properly,
  • Fixed pausing Reliable methods when replication is paused,
  • Disabled the ability to fire when interacting with objects using [Default: F],
  • Breakthrough: Fixed a bug with not ending retreat when retreat time ends,
  • Breakthrough: Fixed C2 spawn trap,

[IMPROVEMENTS]

  • Reduced explosion camera shake for tank shells,
  • Breakthrough: Match timer will now pause during retreat,
  • Fixed other player stutters when coming into player view,
  • Gepard radars are no longer destructible,
  • Gepard Shells + spread improvement,
  • Decreased spread for Gepard,
  • Improved vehicle LMG tracer visuals.


- World War 3 Team

PTE UPDATE 0.8.4


Hello there! We have some fixes to test on the PTE before we feel they're safe for Live servers, so anyone that can - send us your feedback!

PTE 0.8.4 Patch Notes

[OPTIMIZATION]

  • Asynchronous loading of replicated objects is now working properly (stuttering from loading other players should be reduced),

[BUGFIXES]

  • Fixed invisible players,
  • Fixed HUDs changing during Kill Screen,
  • Fixed camera cliping while leaning against corner,
  • Partially fixed auto exposure in thermal scopes,
  • Fixed punishing after suicide,

[IMPROVEMENTS]

  • Small improvements in the team manager code,
  • Breakthrough game code and replication improvements,
  • Clamped sharpen to 0-1 range instead of 0-3,
  • Added bCanAttachSemtexAndClaymore flag to mark vehicles to which semtex and claymore should not attach.


- World War 3 Team

Weekly Report #40 - 0.8 Update Hits Live Servers


Available in the following languages: PL | RU | FR

Greetings, Soldiers!

We’ve had a busy week at the studio, finishing up the 0.8 Live release of Breakthrough. The patch went live on Tuesday, and on Friday we had another one - to address some of the issues we found while testing with the players.

Infantry HUD

In last week’s weekly we’ve shown you how and why we decided to change the player HUD and this week everyone gets to see it and comment on it as well. We very much appreciate the feedback and we are happy that for the most part, the new HUD is a success among the community. There are some things that some people didn’t like, but we’re open to change if it’s a good idea, so - as with everything else in World War 3 - expect constant improvements and changes, so in the end we’ve got an awesome game for you and us to enjoy for years to come.

AA Options

Apart from the HUD, there are some other changes: we’ve added a dedicated anti-air vehicle to base spawns on Warzone. Since the Heli Drone was nerfed, there isn’t much to defend against, but in the future - there might be, so keep an eye on the skies.

Map Rotation

Some of you might also be happy to learn that with the map rotation working now, we’ve enabled players to join matches that are ending. This was done so that if a match is nearly done, you can get in and make sure you rotate together with other players and if you disconnected, you can always go back and finish the match.

Optimization

There also was some optimization work done, mainly with how the assets are streamed. This has had a massive positive impact on how Berlin, Moscow and Warsaw play - if you haven’t played in a while, make sure to check it out, it’s a massive difference - especially, since apart from the streaming, there were also other work done to improve the game overall. For Smolensk and Polyarny, since those were done later in development, this kind of performance improvement is yet to come.

0.8.1 was mostly a maintenance patch, fixing some bugs in the rotation, how profiles were read in TDM (resulting in mismatch between player speed on the server and client and thus some laggy movement), not applying the reward for switching teams and a few other bugs.

Here are the patch notes for both of the patches:

Update 0.8: https://forum.worldwar3.com/index.php?/topic/11006-update-08-patch-notes/
Update 0.8.1: https://forum.worldwar3.com/index.php?/topic/11046-update-081-patch-notes/

If you want to get up to speed on the new game mode, we also have an overview on our forums:
https://forum.worldwar3.com/index.php?/topic/11007-breakthrough-information/

For anyone that didn’t see it, here’s our Breakthrough Trailer:
https://www.youtube.com/watch?v=p94g_7NO5zU

Community Trailer

It’s time to get your last submissions in, the Community Trailer Contest will end in 48h! The deadline is Wednesday, December 4th, 3pm CEST!

For more information about how to submit, please visit this topic:
https://forum.worldwar3.com/index.php?/topic/10948-updated-breakthrough-community-trailer-submissions-are-open/

We’ll need at least a week to go through all the submissions, pick the best ones and put it all together into a cool video, so we’ll let you know when to expect the trailer release. We think the additional time will help people that didn’t get to play on the PTE to get their recordings in. Good luck!

Steam Awards

Every year Steam asks their users to vote on games to receive awards. If you think World War 3 fits some of those categories, help us with a vote:
https://store.steampowered.com/steamawards/nominations

Thanks for supporting us and for testing the game and sending us feedback, we wouldn’t be able to do this without you. See you next week!

- World War 3 Team

Update 0.8.1



A small one before the weekend, just so it's a bit more fun to play. Keep letting us know about issues, we're working on the infinite loading (there's two new ones of those - we've got some leads to fix it definitive) and we have some intermittent lagging issues we can't track without more testing.

Happy thanksgiving to those in North America and happy weekend to everyone else!

Update 0.8.1 Patch Notes

[BUGFIXES]

  • Restoring the Winter Gepard camo,
  • Warmup widget should now be visible again while warmup is in progress,
  • Potential crash fix in character spawning,
  • Fixed not being able to enter vehicles sometimes,
  • Proper fix for planting through walls,
  • Reward for team switch not applying,
  • Fixed bad configs on TDM - no more lags from weight mismatch,
  • Fixed map rotation constantly choosing Berlin,
  • Fixed HUD replacing deploy screen when player spawned for first time,
  • Blocked bomb planting when retreat is in progress,
  • Damage Type Modifiers for BRE station: nerfed bullet and strikes damage,
  • Fixed destroyed point marker opacity on Breakthrough (won't look like selected spawn anymore),

[OPTIMIZATION]

  • Shadow Quality setup - should improve shadow performance.


- World War 3 Team

Purchase World War 3 with 33% Discount

Update 0.8


Available in the following languages: PL | RU | DE | FR

Here it is! The long awaited community game mode is here. Breakthrough is a dynamic and intense experience that will require quick thinking and steady aim. Teams are split into two roles: attackers and defenders. The goal of the attackers is to destroy enemy Radio Stations by means of explosive charges (plat them by holding F), C4, grenades, strikes or big caliber rounds to advance the match forward. The goal of the defenders is to stop the opposing team from reaching and destroying the Stations.

Match ends when all of the stations are destroyed and attackers win, or when the timer elapses and hits 0 - that's the defenders win condition. Timer starts at 15 minutes and each pair of stations that are destroyed will increase it to 5 minutes. Match can take anything from 15-25 minutes, so stay frosty.

Important: we've temporarily removed Anders from the game. This is intentional as it was the main reason for crashing and instability. As soon as we've fixed the issue, it will be back, so don't worry!

This patch also introduces a few optimizations, mostly in the frame pacing and stuttering areas. As always, keep us updated on your thoughts and send us your feedback - we're reading it all!

Update 0.8 Patch Notes

[KNOWN ISSUES]

  • There are some problems with displaying customization in TDM, we're working on a fix. You will see default customization, but have the proper one in-game.


[CONTENT]

  • New game mode: Breakthrough,
  • New Infantry HUD,
  • New Strike: Napalm,
  • Adding Leopard2 Gepard anti-air vehicle to base spawns on Warzone,

[IMPROVEMENTS]

  • Disabled not being allowed to join when the match is ending,
  • Collimator glass is less dark now,
  • HUD: new in-game chat window,
  • HUD: new strike bar,
  • HUD: hiding armor status icons if armor is not present,
  • HUD: added current soldier weight class,
  • HUD: changed inventory status widget,
  • HUD: added laser/flashlight status icon,
  • HUD: improved kill feed,
  • HUD: added headshot indicator to kill feed,
  • HUD: destroyed vehicles will now show up on the kill feed,
  • HUD: changed icon resolution to sharpen them up,
  • HUD: added plant, defuse and destroy icon notification to the Breakhtrough HUD,
  • Many other, small improvements,

[BUGFIXES]

  • Reduced crashing on both client and server side,
  • Fixed invisible packs,
  • Fixed spawning in a wrong place when there's no space to spawn around selected player,
  • Fixed being able to look inside a building with Mini Done gadget,
  • Fixed lasers staying while throwing grenades,
  • Audio attenuation and occlusion fixes,
  • Claymore spawning fix,
  • Fixed destroyable objects not having particles at the start of the round,
  • Fixed some minor issues with mudflaps and other addons,
  • Fixed RPG Nets issues of Leopard 2A6 Body Armor,
  • Fixed wrong gib mesh in Commando turret,
  • Other bugfixes,

[OPTIMIZATION]

  • Fixed some stutters on the render thread,
  • Fixed stutters on the render thread when updating material scalar parameters,
  • Fixes for reloading assets that were already loaded (reduced stuttering),
  • Disabled per frame calculation on multiple objects,
  • Deleted empty skins to reduce stutters,
  • Disabled DoF calculations for vehicles that are far away.


- World War 3 Team

WEEKLY REPORT #39 – PLAYER HUD


Available in the following languages: PL | RU | DE | FR

Greetings, Soldiers!

This week, we wanted to show you changes we made in the user interface in the last few patches. Current version of the new HUD is available to test on the PTE (Public Test Environment) and we’re testing them together with players interested in helping out - giving us feedback on what’s working and what isn’t.

Since the beginning of Early Access we’re had the same goal in mind - we want the final version to be much better and polished in all aspects. Changes in the user interface are just one of the many steps we want to make to take the game into a better quality product.

Player HUD - First Impression


The new HUD was completely redesigned with player experience, creating new and better features in mind as well as keeping it a consistent, military and minimalist style. The HUD is divided into two stages and nine regions, where stages are determined by how much focus is placed on them and regions are containers for certain features or information.

This main user interface is also a basis for all other HUDs - we’ve based the Strike HUD redesign on these principals as well and we’ve used the Strike redesign as a proving ground for choosing the best spots for each region and it’s functionality.

Thanks to doing it like this we’ve gotten plenty of information and time to choose how to best utilize the HUD and the segmented design and it will also be useful in the future, as we’re certainly going to be adding new HUD elements and changing how stuff works if we decide it would be for the better.

PTE UPDATE 0.8.3



A small, but awesome one - we've fixed the lag issue on Breakthrough! Thanks to your submissions and videos we've been able to get enough data to figure out what was wrong. Thanks for your help, and keep going!

[BUGFIXES]

  • Breakthrough: Fixed 1-second lags,
  • Breakthrough: Fixed missing respawn delay,
  • Breakthrough: Fixed the map sometimes staying on the deployment screen,

[IMPROVEMENTS]

  • Changed chat on respawn screen,
  • Changed chat size,
  • Minor improvements to kill feed,
  • Improvements to on screen messages.


- World War 3 Team

PTE UPDATE 0.8.2


Small one, just some improvements to Breakthrough. We're still tracking down the lags that happen sometimes on Breakthrough and we're improving the HUD, stay tuned!

PTE 0.8.2 Patch Notes

[KNOWN ISSUES]

  • Invisible packs are back, we're aware of them and are working on this bug,
  • From time to time the server is starting to lag for a while, we need more info on this one,
  • After spawning on a Mobile Spawn Point you can get a low HP effect,

[IMPROVEMENTS]

  • Changed camera position and rotation on leopard 2 to make it work better with the new Gepard turret,
  • Breakthrough: defenders can no longer go back to retreat zone after leaving,
  • Breakthrough: Zone placement improvements,
  • Breakthrough: minor spawn fixes,
  • Breakthrough: Reversed C and D points on Smoelnsk,

[BUGFIXES]

  • Breakthrough: Fixed a but that sometimes prevented retreat from ending early when all defenders left the zone,
  • Breakthrough: Fixed wrong Leopard version in the base on Polyarny.


- World War 3 Team