These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Player Features and Ideas Discussion

 
  • Topic is locked indefinitely.
 

Line of sight weapons

First post
Author
Norjia Blacksteel
Blacksteel Mining and Manufacturing
Renaissance Federation
#41 - 2012-04-23 20:28:52 UTC
Did everyone just ignore the post that talked about what happens when you accidentally shoot non-WTs and get CONCORDed?
ivar R'dhak
Deus est Mechanicus
#42 - 2012-04-24 13:47:30 UTC  |  Edited by: ivar R'dhak
Ogogov wrote:
I was referring to a serverside farm of stream computing devices for physics computation, not client-side. This would effectively eliminate their processor bottleneck for this kind of performance, and the approach is already used in HPC applications.
Thanks for clearing that up.
Yeah, I hope the Devs can indeed figure out how to use those resources. Though I fear the single threaded nature of the current EVE star system simulation still prevents this.


Vincent Athena wrote:
Now on the other side there is the N cubed issue. The work needed by the server scales as number of ships cubed if we have LOS.

It increases with the number of ships shooting
It increases with the number of ships that could be hit
It increases with the number of players that must be informed of the results.
Nope, nope and nope. One word: Drake.

We already are having all these problems solved with missiles. They are actual simulated entities on the server that can be destroyed(disco ships) and thus the server always knows what´s going on around one.

Quote:
One way to reduce this is the same way we have hit and miss shots shown now: I only see it for my ship. That is I see LOS results for shots I take and shots at me, but for person x shooting person Y, it looks like all shots hit the intended target even if they do not.
Sorry, don´t see where that´s helping.
But that´s why I´m proposing the current missile calculation and simulation as the basis for LOS. Turn the gun "projectiles" into invisible missiles moving at max speed that the server can still process.

If something intercepts it on the way to the target, they basically do the standard gun damage as determined by the ship(mods, ammo type) and when they finally reach the target ship´s "simulation bubble" the usual damage calculation is applied.
Francisco Bizzaro
#43 - 2012-04-24 14:18:02 UTC  |  Edited by: Francisco Bizzaro
I think the concerns about extra computational load are overblown. If there are N ships involved then there are only N LOS calculations to do with a frequency of each user's rate of fire. That shouldn't bring the server to its knees. And in fact, you could actually do the calculation client side and just send the result (where the shot landed) to the server.

An interim simplifying solution could be just to consider obstructing structures (stations, asteroids, etc), not player ships.

If cloakies getting in the way to provoke CONCORD is a worry, then make cloakies transparent to this type of effect. Lasers should have no problem passing through them, at least. Blink
Vincent Athena
Photosynth
#44 - 2012-04-24 16:37:43 UTC  |  Edited by: Vincent Athena
Francisco Bizzaro wrote:
I think the concerns about extra computational load are overblown. If there are N ships involved then there are only N LOS calculations to do with a frequency of each user's rate of fire. That shouldn't bring the server to its knees. And in fact, you could actually do the calculation client side and just send the result (where the shot landed) to the server.

An interim simplifying solution could be just to consider obstructing structures (stations, asteroids, etc), not player ships.

If cloakies getting in the way to provoke CONCORD is a worry, then make cloakies transparent to this type of effect. Lasers should have no problem passing through them, at least. Blink


N calculations for each ship that could be hit, times N ships that are shooting making the total calculations increases as N squared. Things that grow as N squared quickly bring the client to its knees. If smartbomb walls of fire were more popular vs missile blobs, we would have a big issue as that is an N squared case. (Every time a smart bomb goes off in a grid, its got to be tested against every ship and missile in flight.)

You cannot trust any calculation done by the client as people hack the client. The only way to use client calculations would be to have the server replicate a small sample to catch the cheaters.

Also CONCORD could just ignore accidental shooting of cloaked ships basically saying if you cloak, you are on your own. And as I said before, CCP could add a user controlled interlock that would make your gun skip a cycle if its shot would hit an unintended target.

Know a Frozen fan? Check this out

Frozen fanfiction

Vincent Athena
Photosynth
#45 - 2012-04-24 16:54:13 UTC
ivar R'dhak wrote:
Ogogov wrote:
I was referring to a serverside farm of stream computing devices for physics computation, not client-side. This would effectively eliminate their processor bottleneck for this kind of performance, and the approach is already used in HPC applications.
Thanks for clearing that up.
Yeah, I hope the Devs can indeed figure out how to use those resources. Though I fear the single threaded nature of the current EVE star system simulation still prevents this.


Vincent Athena wrote:
Now on the other side there is the N cubed issue. The work needed by the server scales as number of ships cubed if we have LOS.

It increases with the number of ships shooting
It increases with the number of ships that could be hit
It increases with the number of players that must be informed of the results.
Nope, nope and nope. One word: Drake.

We already are having all these problems solved with missiles. They are actual simulated entities on the server that can be destroyed(disco ships) and thus the server always knows what´s going on around one.

But that´s why I´m proposing the current missile calculation and simulation as the basis for LOS. Turn the gun "projectiles" into invisible missiles moving at max speed that the server can still process.

If something intercepts it on the way to the target, they basically do the standard gun damage as determined by the ship(mods, ammo type) and when they finally reach the target ship´s "simulation bubble" the usual damage calculation is applied.


Yers, yes, and yes. The problem with missiles is not solved, just reduced. They still load the server more than guns. Turning gun shots into missiles would increase the server load. Having to check each shot against every ship on grid to see if it hit the bubble would be a huge increase in server load. Then reporting the results of those calculations to all users makes it worse.

"
Quote:
One way to reduce this is the same way we have hit and miss shots shown now: I only see it for my ship. That is I see LOS results for shots I take and shots at me, but for person x shooting person Y, it looks like all shots hit the intended target even if they do not.
Sorry, don´t see where that´s helping. "

Right now in a fight when a ship starts shooting a target, the server sends a message to you: "Ship x is shooting ship y". Your client then shows those shots all starting at x and ending at y without any further communication from the server. You do not get any more communication from the server until the shooting stops. What if we had LOS? Now the server would have to send the results of every shot: "That shot hit x, that shot hit nothing, that shot hit z" and so on. As the number of ships increased, the number of packets needed would increase, and their size (equal to the number of shots) would increase. A N squared growth for needed communications. My suggestion, only show LOS results for my ship and shots, reduces that communication need back down to N growth.

Know a Frozen fan? Check this out

Frozen fanfiction

Francisco Bizzaro
#46 - 2012-04-25 06:53:01 UTC  |  Edited by: Francisco Bizzaro
Vincent Athena wrote:

N calculations for each ship that could be hit, times N ships that are shooting making the total calculations increases as N squared. Things that grow as N squared quickly bring the client to its knees. If smartbomb walls of fire were more popular vs missile blobs, we would have a big issue as that is an N squared case. (Every time a smart bomb goes off in a grid, its got to be tested against every ship and missile in flight.)

I would have thought N ships each have at most a handful of ships targeted (what's the max, 6? 8?). Then from each ship, there are at most 8 paths to be calculated, i.e. 8N in worst case - and that is only if they were firing each launcher/turret at a different target, which is pretty unusual. The most common situation would be that each ship chooses a target and fires all of its weapons at it, and that calculation only has to be performed once every rate-of-fire (not very often on the timescale of a CPU clock).

Quote:

You cannot trust any calculation done by the client as people hack the client. The only way to use client calculations would be to have the server replicate a small sample to catch the cheaters.

Yeah, that's probably right. You could have each client do calculations for all the required paths and then do a quick sanity check at the server, which would then have to resolve any discrepancies itself. But it may be more trouble than it's worth.

But anyhow, I don't think the LOS calculations are terribly time-consuming. I don't know what the state of TQ is - hopefully better than the 3-year old description on Evelopedia - but maybe they could pony up for some GPUs to add to the nodes next time they are thinking about hardware.
ivar R'dhak
Deus est Mechanicus
#47 - 2012-04-25 13:49:27 UTC
Vincent Athena wrote:
(Every time a smart bomb goes off in a grid, its got to be tested against every ship and missile in flight.

I´d really like to know where you got the idea that the server is so inefficiently programmed that ALL clients always know what EVERYBODY else´s state is.

The only thing I´m aware of that really operated that way was the local listing, and it was the MAJOR culprit in causing lag. That´s why CCP offloaded that part of the SOL database polling off the SOL servers, as one of the Vlogs on this year´s fanfest explains.

Bottom line is most of your arguments are educated guesses. Not very accurate ones AFAIK.

The real problem with my idea isn´t the overwhelming server-strain, but the actual flightpath of those "projectile missiles" when going after a fast moving target.

These are all questions ONLY the DEVs can answer.
All I really hope for is that they finally start putting this issue on the radar!
Not treat it like just another "OZOM" thing we could have but too complicated to implement.

LINE OF SIGHT is the solution to A LOT of problems this game currently has.
Kais Klip
Brutor Tribe
Minmatar Republic
#48 - 2012-04-25 17:05:08 UTC  |  Edited by: Kais Klip
A decent solution to the aggro mechanic issue would be capitalising on projectile weapons' instant-hit behaviour explanation (they utilise mini-warp tunnels) by saying that the ammunition relies on warp capability boosting equipment located in high and low security space, which is understandably absent from null and wormhole space. There the ammo's warp field will be feeble and unstable, causing the ammo to phase in and out of the real-space phsyical dimension (or whatever the explanation is for our ships being able to pass through planets). This explains it's ability to travel "instantaneously" while lacking the ability to pass through objects.

Or simply divide ammunition types into physically real-during-warp and "intangible"-during-warp types, with the former being instantly confiscated by concord in high security space (but what about lowsec?). In that case, why would you ever use the former in null/WH? Perhaps make it cost an absolute fraction of the price, or boost its stats a handful of times over to their "intangible" counterparts.
Wolodymyr
Breaking Ambitions
#49 - 2012-04-26 06:43:09 UTC
Weapon line of sight, as well as collision damage for ships bumping into one another would probably be the one magic bullet that would finally fix the odd blobbing problem eve has.

Unfortunately unless you have some clever programming tricks, it might slow down the game even further.

Also you get the highsec problem where you damage something you didn't mean to then concord flips out and commits some space police brutality. Or you "accidentally" damage innocent bystanders on purpose and discover a magical concord proof method of ganking people.

I honestly think PoCo based sov is a good idea https://forums.eveonline.com/default.aspx?g=posts&m=1417544

Sigras
Conglomo
#50 - 2012-04-26 07:27:22 UTC  |  Edited by: Sigras
Francisco Bizzaro wrote:
Vincent Athena wrote:

N calculations for each ship that could be hit, times N ships that are shooting making the total calculations increases as N squared. Things that grow as N squared quickly bring the client to its knees. If smartbomb walls of fire were more popular vs missile blobs, we would have a big issue as that is an N squared case. (Every time a smart bomb goes off in a grid, its got to be tested against every ship and missile in flight.)

I would have thought N ships each have at most a handful of ships targeted (what's the max, 6? 8?). Then from each ship, there are at most 8 paths to be calculated, i.e. 8N in worst case - and that is only if they were firing each launcher/turret at a different target, which is pretty unusual. The most common situation would be that each ship chooses a target and fires all of its weapons at it, and that calculation only has to be performed once every rate-of-fire (not very often on the timescale of a CPU clock).But anyhow, I don't think the LOS calculations are terribly time-consuming. I don't know what the state of TQ is - hopefully better than the 3-year old description on Evelopedia - but maybe they could pony up for some GPUs to add to the nodes next time they are thinking about hardware.


The problem is you arent just looking at the ships targeted by the ship with the weapons, you have to look at every object on grid because something you dont have targeted could still be in the way. so with grouped guns, since this is binary, you could get away with doing that calculation once, but if you really want to draw a ray between your ship and the other ship and then run the calculations to see if any of the ship models on grid intersect with that ray, that is thousands of calculations per attempt with a battle as small as 20v20
Sigras
Conglomo
#51 - 2012-04-26 07:47:50 UTC
ivar R'dhak wrote:
Vincent Athena wrote:
(Every time a smart bomb goes off in a grid, its got to be tested against every ship and missile in flight.

I´d really like to know where you got the idea that the server is so inefficiently programmed that ALL clients always know what EVERYBODY else´s state is.

The only thing I´m aware of that really operated that way was the local listing, and it was the MAJOR culprit in causing lag. That´s why CCP offloaded that part of the SOL database polling off the SOL servers, as one of the Vlogs on this year´s fanfest explains.


that isnt what anyone is saying, the clients dont care about this, they just receive the data on how much damage was applied to the ships, but the server must do a calculation against every ship in the game when an effect takes place that doesnt rely on targeting.

now this is normally simple because all the server has to do is determine the distance between the, bomb/bubble/smartbomb/whatever and the ship in question, and it just loops through once for each ship. this is trivial compared with drawing a line between target and attacker, and figuring out the shape size and position of every other object (not just ships but stations, asteroids and other collidables too) on the grid, then determine the apparent size of each ship from your ship's perspective, then determine whether or not your shot is blocked

Even with good elimination and tree pruning those calculations quickly scale up to the hundreds of millions.

ivar R'dhak wrote:
Bottom line is most of your arguments are educated guesses. Not very accurate ones AFAIK.


The bottom line is, having worked on a game engine which employs line of sight, I have a pretty good idea of what is involved and I can tell you it isnt pretty.

ivar R'dhak wrote:
LINE OF SIGHT is the solution to A LOT of problems this game currently has.


I agree completely, and in 15 years when eve is run on a server with photonic transistor processors then they should totally do it.
Sigras
Conglomo
#52 - 2012-04-26 07:49:07 UTC
Wolodymyr wrote:
Also you get the highsec problem where you damage something you didn't mean to then concord flips out and commits some space police brutality. Or you "accidentally" damage innocent bystanders on purpose and discover a magical concord proof method of ganking people.


I think the easiest way to fix this issue is to just have your computer not fire the guns if you dont have LOS, guns hit instantly anyway so there is no difference.
Morgan Dinn
Imperial Mechanics
#53 - 2012-04-26 08:06:00 UTC
Sounds most interesting. Would change gameplay ALOT.

And yes would actualy make more sense.

And being at the outer ring of a fleet blob would suck soooo much Twisted
Garviel Tarrant
Beyond Divinity Inc
Shadow Cartel
#54 - 2012-04-26 13:17:58 UTC
One thing is that if this was added...

Formations would be beneficial without a silly arbitrary stat bonus.

BYDI recruitment closed-ish

Vincent Athena
Photosynth
#55 - 2012-04-26 16:51:48 UTC
Francisco Bizzaro wrote:

I would have thought N ships each have at most a handful of ships targeted (what's the max, 6? 8?). Then from each ship, there are at most 8 paths to be calculated, i.e. 8N in worst case - and that is only if they were firing each launcher/turret at a different target, which is pretty unusual. The most common situation would be that each ship chooses a target and fires all of its weapons at it, and that calculation only has to be performed once every rate-of-fire (not very often on the timescale of a CPU clock).


Say there are 100 ships on grid and one fires a missile. The server has to do these checks:

Will the missile accidentally hit ship #1? No...
Will the missile accidentally hit ship #2? No...
Will the missile accidentally hit ship #3? No...
.
.
.
Will the missile accidentally hit ship #100? No...OK, it can hit the intended target.

100 checks.

Now if all 100 ships shoot a missile, its got to do the above 100 times, a total of 10,000 checks. If there are 2000 ships on grid all shooting then 4 million checks need be done.

Each check is not trivial. For guns, the server first has to update the potential target's position to the moment of the shot. It then has to find the minimum distance between the line segment describing the shot and the center of the ship at its updated position. If that distance is smaller than the ship radius, a hit is registered.

For missiles the calculation is more difficult as both the ship and missile move. You can see why this would not be a trivial, low computational overhead feature.

Know a Frozen fan? Check this out

Frozen fanfiction

Di Mulle
#56 - 2012-04-26 17:44:47 UTC  |  Edited by: Di Mulle
ivar R'dhak wrote:

Nope, nope and nope. One word: Drake.

We already are having all these problems solved with missiles. They are actual simulated entities on the server that can be destroyed(disco ships) and thus the server always knows what´s going on around one.



Drake has exactly zero relevance here. Missiles too.
<<Insert some waste of screen space here>>
Wolf TheFallen
The Fallening Deafening Silence Syndicate
#57 - 2012-04-26 18:15:43 UTC
All i have to say, Is at this time LOS weapons would cook the server cluster. As great as the current hardware is they are running, They would have to deploy Dedicated servers to checking LOS. I really don't think CCP has the capital to double there server capacity at the moment just to Run LOS checking.

Granted i think it would be cool to 'duck and cover' behind your Enemy/Friends ships/Asteriods/ect. But truthfully i don't see it fesable with the huge fleet battles that occur in this game. Or hell just undocking from Jita and someone taking a shot, i don't even want to think about that damn math for number of checks o.O

Think logically when requesting stuff. Eve is not a FPS with limited number of people per map.
bornaa
GRiD.
#58 - 2012-04-26 22:29:45 UTC
Norjia Blacksteel wrote:
Did everyone just ignore the post that talked about what happens when you accidentally shoot non-WTs and get CONCORDed?


I don't think that accidentally shooting should be Concorded - its accident.
Or, make that shooting no targeted parties make 0 dmg.
It helps to break blobs and it make sense that you cant shoot someone through other things in the space.

If other games can have LOS calculations, I don't see why EVE could not.

And about "server stress".
You remember how everybody talked that there can not be missile launchers because "it would stress servers too much"???
There is solution for every problem.
And please don't pretend to know everything and say "it can't be done" on every suggestion.
[Yes, I'm an Amateur](http://www.youtube.com/watch?v=hRa-69uBmIw&feature=relmfu)
Joe Risalo
State War Academy
Caldari State
#59 - 2012-04-27 05:08:02 UTC
a few things on this.

1) like everyone else is saying, there's too much load on the server.

2) Do missiles get to dodge, or do they not fire, or do they explode? Dodging is too much of an advantage to missiles, and having them explode when a target gets int he way is unfair to the missile boaters, yet, not firing is pointless because missiles have a travel time and velocity, so the target will be out of the way by the time you fire.

3) What if someone gets in the way of a bomb? Does it hit them? Does it do damage if it hits them? does it explode if it hits them?

4) What about cloaked ships? Can they still get in the way when cloaked?

5) What about logistcs? You know how easy it would be to suround your logistics with ships so that the enemy can't hit it? This would essentially mean you could never take that fleet down

6) What about drones? Sure, they can be effected by los, but they're much closer to the target and fast...So, wouldn't it be obvious that drones would either need their orbit distance dramatically increased based on size, or they'd need to be removed from the game because they give ships like the dominix a highly unfair advantage.


there's just way too many issues that effect the game mechanics and server, not to mention the massive amount of balancing that would need to go back into the game after making a change like this....Everything would need to change, like what I mentioned with drone boats.
Francisco Bizzaro
#60 - 2012-04-27 07:59:29 UTC  |  Edited by: Francisco Bizzaro
Vincent Athena wrote:
Now if all 100 ships shoot a missile, its got to do the above 100 times, a total of 10,000 checks. If there are 2000 ships on grid all shooting then 4 million checks need be done.

Each check is not trivial. For guns, the server first has to update the potential target's position to the moment of the shot. It then has to find the minimum distance between the line segment describing the shot and the center of the ship at its updated position. If that distance is smaller than the ship radius, a hit is registered.

Okay, I see that the calculations can scale at N^2 if they're brute forced.

I guess the main point is to compare N targeting vectors with M displacement vectors to determine whether they are approximately colinear and shorter distance. I just tried this out with a small program on my laptop, and for N=M=2000 random vectors (4M comparisons), the calculation took 0.1 seconds.

The loop is trivially parallelizable with a couple of openmp directives, so on the 4-core Sol blades of TQ, these computations would take a factor 4 less. And in practice, the number of targeting vectors to use in computations would actually be decreased by a factor of eve-clock-tick/average-rate-of-fire. So you can imagine this computation adding a fraction of a second per clock tick of an already time-dilated battle.

A more advanced calculation would project the signature radius of the potential occluder onto a plane transverse to its displacement vector. It's fairly simple linear algebra to map the targeting vector onto the plane and determine whether it falls into the sig radius, probably a few extra floating point operations over what I've done.

The Eve model for calculating hits - involving sig radius, transversal and turret speed - is already fairly sketchy as a model of real physical turrets. But this allows them to apply some quick-and-dirty approximations (e.g. using sig radius rather than a detailed model of the shape of the ship) which are still somewhat consistent within the "physics" of Eve.

For more simplifications, you could just exclude small objects from the computation - for instance, invent a rule that frigates and smaller (drones, missiles) never get involved in these type of occluding events.

A more advanced version of that would be to exclude ships beyond a certain distance, which might depend on their signature radius. For instance a battlecruiser at 50km subtends a very small solid angle and is highly unlikely to occlude a shot. So a good approximation would be to ignore it.

And for close range brawlers, there are very few additional occluders with a distance less than its target, so you automatically cut out the bulk of the calculations for those ships.

Missiles are more complicated, but some hacks might be sufficiently good for play. You could do the calculation once at launch - this would correspond to something like the missile locking on to the wrong target. Or just update the calculation 2 or 3 times along the flight of the missile. That's probably good enough for hollywood.

More radically, you could invent a lore explanation which removes missiles from this type of calculation. They are guided, so maybe their guidance systems are good enough to avoid intervening targets. This would correspond to a big buff for missiles over turrets, so would have to be balanced out in other ways. But it could be a neat way of adding further differentiation between the weapon systems.

Finally, I'd say that even if you exclude ships from occluding calculations and just consider large collidable objects, structures and asteriods, that would already be a huge improvement to the tactical game.