Read: determinism
Read: determinism
Sigs are obnoxious.
it uses randomized basses for the calculations or set values if u have set values it will always go the same (as in BC2 with havok or pshyX with multilayer games) the problem is in when u have the randomized values it ends up different. if u look at things like source were it dose that it will send debris randomly on every1s clients as there are no set values. if u dont then u get ghost recon with phsyX were things move differently on each players client and it turns into a huge mess ending with no physics being used since it has to be removed
so if u want random or non stock explosions/physics with things that people interact with in multilayer u have to have set values generated by a central client then distributed but that would add alot of latency. the only other way u could do is to make a way of not using floating point but then it would be a mess and with alot of overhead.
Last edited by zanzabar; 04-26-2010 at 04:07 PM.
5930k, R5E, samsung 8GBx4 d-die, vega 56, wd gold 8TB, wd 4TB red, 2TB raid1 wd blue 5400
samsung 840 evo 500GB, HP EX 1TB NVME , CM690II, swiftech h220, corsair 750hxi
It's not really so hard. The clients can sync with the server or agree with eachother on a seed value at the map/match start. Subsequent operations based on the seed will look random but are deterministic.
People don't understand chaos theory very well. It's not that you can't determine the outcome - it's that the outcome varies wildly based on small differences in starting values. But if the starting values are exactly alike (binary) then the outcome will be the same.
but the values are generated based on rounded floating point numbers and on positional data that can vary client to client. im not saying that it cant be done its really impractical or seams that way based on the previous implementations
5930k, R5E, samsung 8GBx4 d-die, vega 56, wd gold 8TB, wd 4TB red, 2TB raid1 wd blue 5400
samsung 840 evo 500GB, HP EX 1TB NVME , CM690II, swiftech h220, corsair 750hxi
The initial seed values are exact binary exchanges. Any subsequent calculations based on the seed should come out the same - assuming everyone is running processors that conform to established standards.
I like the PhysX Nurien demo, anyone got some more examples?![]()
I've pointed out that this is an obvious, but unfortunately, unfeasible solution. A rube's solution.
Okay, so you do the physics calculations server-side. And THEN what?
Good thing with have established standards, then. Such as x86.
The no-brainer fix to this is to generate them based on something that's no so prone to desyncrhonization. A random seed can be any arbitrary variable. You could even make the server spit them out once every N seconds.
Last edited by iddqd; 04-26-2010 at 05:34 PM.
Sigs are obnoxious.
How is one thread full of so much fail? And more importantly why is it so hard for some to understand that we don't want something for nothing from Nvidia. We only want what we paid for! We're not asking for our ATI cards to run PhysX, we want our Nvidia cards to do what we bought them for. How is that getting anything for free? As a paying Nvidia customer I expect the product I payed for to do what it says it will do and in fact is supposed to do.
Then we have some people who say why should only Nvidia pay for development to support ATi users? We don't want them to pay for anything! In fact we are trying to save them money by not having to keep paying their developers to purposely cripple their own cards! Obviously they are paying their devs to do this. They could have just left it alone and none of this would be an issue and hey, they'd have a few more bucks in the bank. And more importantly they wouldn't have generated all this negative press and inadvertently shot themselves in the foot.
Core i7 3770K
EVGA GTX780 + Surround
EVGA GTX670
EVGA Z77 FTW
8GB (2x4GB) G.Skill 1600Mhz DDR3
Ultra X3 1000w PSU PSU
Windows 7 Pro 64bit
Thermaltake Xaser VI
--Intel i5 3570k 4.4ghz (stock volts) - Corsair H100 - 6970 UL XFX 2GB - - Asrock Z77 Professional - 16GB Gskill 1866mhz - 2x90GB Agility 3 - WD640GB - 2xWD320GB - 2TB Samsung Spinpoint F4 - Audigy-- --NZXT Phantom - Samsung SATA DVD--(old systems Intel E8400 Wolfdale/Asus P45, AMD965BEC3 790X, Antec 180, Sapphire 4870 X2 (dead twice))
The hilarious thing is an actual Ageia PPU will refuse to work with an ATi card as well.
Sigs are obnoxious.
It seems you have some assumptions in your theory which aren't really accurate. Order of operations can have this varying effect you're referring to on calculations. Things can be different driver to driver.
Server-side seems the way to go to me in order to ensure the same output across multiple computing architectures (think some physics on CPU some on GPU), at least for multiplayer games.
it's reasonable to keep the position of ... let's say, 64 player characters synchronized.
It's entirely unreasonable to keep coordinates of 200,000 physics objects synchronized.
Read: unfeasible solution.
(a lot of posters in this thread seem to have trouble reading)
By quoting this post in its entirety, I affirm that I can neither read nor write, and am, in fact a big dumb babby.
Sigs are obnoxious.
It sounds perfectly feasible to me.
Because we already have it.
I play a game of pool on-line with 12 others watching each game is random & so is each hit, everyone sees that ball fly around & interact with the other balls on the table exactly the same as everyone else, because the server is sending out the same results to everyone even tho the the balls gets it differently every time i take a shot.
This just in: Source engine game support player-interactive physics and have since release.
All along the watchtower the watchmen watch the eternal return.
off topic much?
If the computers are all in sync then they should be performing the same operations in the same order on the same data. Client side prediction throws a wrench in this by letting the local computer work with data the others don't have yet. That's when it (the game state) becomes a chaotic system. Until the other clients are updated with the new data (and vice versa) the state of the system diverges more and more wildly with time. That's why I advocate an honest dedicated server and why real peer-to-peer game networking died shortly after doom. Because even if the clients' calculations are diverging for whatever reason ( lag, etc ), it will get synced with the server periodically. Hopefully in short enough intervals that the divergence doesn't harm gameplay.
So what if debris flies around differently on different clients. They aren't critical to the gameplay anyway, it's just visual. Just like entire PhysX thingie.
Intel Core i7 920 4 GHz | 18 GB DDR3 1600 MHz | ASUS Rampage II Gene | GIGABYTE HD7950 3GB WindForce 3X | WD Caviar Black 2TB | Creative Sound Blaster Z | Altec Lansing MX5021 | Corsair HX750 | Lian Li PC-V354
Super silent cooling powered by (((Noiseblocker)))
Bookmarks