It’s ridiculous how little it takes to cause the server to close down due to an unexpected error.
I just started making a new mode, and it uses the following:
- 1 condition per player that looks for a nearby enemy.
- 1 continuous action per player (the start facing action).
- 1 third person camera with a ray cast for collision detection per player.
Seemingly this is enough to cause the server to shut down when I fill the game with bots (12 players total). How do they expect us to make anything cool when they are letting us host the custom games on such potato servers?
Compare all those continuous calculations the server has to perform with what’s possible with custom code in games like Garry’s mod. There it’s no problem to create Lua code with advanced physics simulation supporting 50+ players, while overwatch servers seem to choke when you try to do the bare minimum required for continuous variable changes.
They need to either get better servers or let us host our own dedicated servers. (or optimize the way the game processes workshop code if that’s the problem)
9 Likes
Yeah servers tend to crash quite a lot
Another issue is presets beeing deleted too,
1 Like
Yeah they gotta fix presets deleting themselves too. At least we can bypass it by being cautious and creating share codes regularly, so we can try to spread awareness within the community until they fix it.
It’s harder for me to accept the server crashes since the only way we can avoid them is to limit ourselves to the bare minimum of what the workshop could be capable of.
The server crashes, unfortunately, are a big problem, for me, too.
In any project I’ve made that got a bit more complex, the server just started crashing at some point. Sometimes the crashes only happened after playing a game mode for 30 minutes or longer or after executing several “reset” rules by the script, but nevertheless they happened consistently. And no amount of testing and removing specific elments or optimizing and rewriting large parts of the script (and I tried “everything” I could imagine being a lower load on the server) seemed to help. In the end it always seemed to be a combination of things: too many conditions, too many rules, too many effects that need to have their position and radius continuously updated, to many HUD texts, too many actions within a short amount of time, too many global variable arrays? I still don’t know what’s causing it (no single element on its own seems to be fully responsible for the crashes)…
So I really hope the better feedback features that Dan and Keith hinted at in the interview with Stylosa and Darwin will make it into the game at some point
Maybe something like nested conditions could help? It seems to me that the server is checking ALL conditions continuosly, even when a wait (ignore condition) action is running or when conditions further up the list are not met. Maybe that’s a way performance could be improved?
1 Like
There is some performance info on the ptr since 2 days ago.
- Server Load - Provides a percentage representing the CPU load of the current game instance.
- Server Load Average - Provides a percentage representing the average CPU load of the current game instance over the last two seconds.
- Server Load Peak - Provides a percentage representing the highest CPU load of the current game instance over the last two seconds.
https://us.forums.blizzard.com/en/overwatch/t/overwatch-ptr-patch-notes-june-24-2019/361111
1 Like
That’s great to know, thank you
I haven’t been on the PTR for a while now, need to try this out
Not really surprised, the servers were designed for 12 players in mind.
I too would like the servers to be better, but I can see why they wouldn’t be.
The majority of the gamemodes made in the Workshop don’t use complex rules or have multiple re-evaluations, so spending resources on servers that only a few would take advantage of wouldn’t be the best idea.
I think we won’t be getting better servers unless most of the Workshop gamemodes start getting better, so there’s more demand.
One of my game modes has a “is true for any” that checks if any players on a certain team are in the line of sight of someone, which I’m guessing the game REALLY doesn’t like bc the whole thing constantly crashes. Although some of the limitations right not kinda suck, the workshop is still new and it’s amazing that we have it in the first place tbh. I’m confident that they will improve it a lot over time, because it’s gonna keep a lot of people playing who otherwise wouldn’t.
An idea is to run an eternal loop for each player with a Wait(250) before making the checks. Assuming its the “in line of sight” condition thats the expensive part this should run it less often.
2 Likes
It might just be advanced conditions causing crashes. Well, at least I’ve managed to fix the mode I mentioned in the original post.
What I did was to remove the big condition checking for a player within the aim of the event player, and just put “is button held: interact” as the condition.
Then the first action of the event is a huge “Abort if…” action with all the calculations and checks i needed to do.
3 Likes
That’s an interesting idea I might try it out, I’d have to put it on a loop though, because my game mode relies heavily on line of sight checks oof
I have a gun that makes meis gun set people on fire.
It crashes the server after 15s of continuous firing, Ridiculous.
Yea. Keeping the conditions simple sounds like a good idea. If you put 2 nested loops in a single condition, like here:
the complexity explodes and it is a lot of calculations for the server in a short amount of time.
1 Like
Does anyone know if there’s a way to refer to a specific player on a team that has you in their line of sight. For example, if a team 1 player has a check for if they are in line of sight of a player on team 2, if it’s true, is there a way to get the value of the specific player that has the team 1 player in their line of sight ? Or would checking player slots be the only legit way to do that? But would checking line of sight of every player slot just create more calculations? Hopefully that made sense lol
It can probably be done in a number of ways, but it depends on what you need the end result to be. it could be done from either the player being seen or the player seeing the other team, whichever would be more optimized for your situation.
Are you making some sort of “if I see you, you die”? Maybe it’s a good idea to make a new topic with all the details
1 Like
Yeah it’s a “If I see you move, you die?” and I have a mechanic that basically changes a variable over time and sets an effect if someone is staring at someone who isn’t moving to prevent camping people. I already have a thing working but its very taxing on the server so I need to find a better way to do it. I’ll probs make a new topic though if I can’t figure something out but I just figured I’d ask that question since we were on the topic of line of sight checks lol
Just passing by to say i got same problem. After 3 weeks testing alone 120 conditions.
I opened the server.
RIP!
I dont even know where to start looking but i guess i give up for now and show middlefinger to blizzard until they opened the full potential of the workshop.
Yes, OW servers might not be the strongest. But you also need to keep in mind that optimizing your code is very important. If you have a complexity of something like e.g. O(m^(n)), not even the strongest computers can handle it.