Thread: RE: [GD-General] Online Gaming
Brought to you by:
vexxed72
From: <phi...@pl...> - 2003-01-24 17:38:09
|
AFAIK SOCOM is a classic client/server model, with centralised servers,= while TMB online is P2P, although only in that one of the clients also = acts as a server. Another client can become the server, if the host-client d= rops out (AKA host migration), I believe that this means that each client is= running full physics and logic, but discarding results upon receipt of = data from the server. I think the more direct client interaction a game recquires, the worse = the network experience generally is. Both of those games suffer on that fro= nt, but it could be worse. I once worked on an online 1-on-1 fighting game.= Lag's kinda fatal in that environment... Cheers, Phil = =20 "Mick West" <mi...@ne...> = =20 Sent by: To: = <gam...@li...> =20 gam...@li...urc cc: = =20 eforge.net Fax to= : =20 Subjec= t: RE: [GD-General] Online Gaming =20 = =20 01/23/2003 03:25 PM = =20 Please respond to gamedevlists-general = =20 = =20 = =20 c) it's not really P2P. Clients are deterministic, and ignore what's happening on other clients.=A0 One "client" is also a "server", which arbitrates scoring and collision between clients.=A0 The server tells = the clients when they have been hit, and they fall over.=A0=A0 The clients= tell the server where they are and what they look like, and the server rela= y this to the other clients, who just display the other skaters at a few= frames before their last known good position, extrapolating only if da= ta fails to arrive in good time. It only works because there is very little interaction between clients= (they don't shoot each other, and most of=A0our online games don't rel= y on=A0skater-skater interactions).=A0 Also there are no moving objects = in mutli-player games, so we dont have to worry about crates or vehicles.= It's pretty specific to our type of game, and is probably not what the= y use in SOCOM. MIck =A0-----Original Message----- From: gam...@li... [mailto:gam...@li...] On Behalf Of Andrew Sharpe Sent: Thursday, January 23, 2003 1:43 PM To: gam...@li... Subject: [GD-General] Online Gaming After getting my PS2 network adaptor I've been playing SOCOM online for= the past few days. Today though I put on a copy of Tony Hawk4 and was pretty surprised with how it played online. Even on what I'd consider to be laggy servers (200-250 ping) the game seemed remarkably fluent and consistent, i.e no warping players. Althou= gh I've played lots of FPS games which usually use a client/server architecture I'd never really played a fast-paced peer-to-peer game an= d always assumed that on anything other than LAN or fast broadband the g= ame would suffer. Although I'm familiar with how C/S architectures work and how the effec= ts of latency can be compensated for, I've never really given P2P much tho= ught before in terms of how games can achieve a smooth playing experience, o= r even how their network update is structured. Possibilities I can think of for fast action games using P2P: a) Clients are fully deterministic and perform a lock-stepped update b= ased on inputs from all clients. For instance all clients perform their phy= sics update based on inputs from clients during frame 180 and obtain identi= cal results. Problems: this means that there's a delay between input & response, even on the local client, of around half the ping time to the= slowest machine. Not too good I'd imagine on a slow connection. b) All clients send their essential information (position, orientation,= etc) and run their physics based on the last, or extrapolated details o= f other players. Problems: clients may come up with slightly different results due to extrapolated data for other players (e.g the client coliding with another vehicle). There's also the problem of non-player= entities in the world, for instance a crate, which may end up with different positions on different machines if some form of correction i= s not performed to remove errors due to the above problem. There's probably other problems or solutions I've not thought of thoug= h! I'd be very interested in comments from people who've implemented P2P solutions in games aimed at the online market though, especially to do= with how they handled gameworld physics and physical non-player entiti= es. Very fascinating subject. Thanks, Andrew With Yahoo! Mail you can get a bigger mailbox -- choose a size that fi= ts your needs = |
From: George W. <ge...@ap...> - 2003-01-24 18:22:06
|
On Thu, 23 Jan 2003 21:42:43 +0000 (GMT), =?iso-8859-1?q?Andrew=20Sharpe?= <ash...@ya...> wrote: > After getting my PS2 network adaptor I've been playing SOCOM online for the > past few days. Today though I put on a copy of Tony Hawk4 and was pretty > surprised with how it played online. Even on what I'd consider to be laggy > servers (200-250 ping) the game seemed remarkably fluent and consistent, i.e. > no warping players. Although I've played lots of FPS games which usually use a > client/server architecture I'd never really played a fast-paced peer-to-peer > game and always assumed that on anything other than LAN or fast broadband the > game would suffer. Although I'm familiar with how C/S architectures work and > how the effects of latency can be compensated for, I've never really given P2P > much thought before in terms of how games can achieve a smooth playing > experience, or even how their network update is structured. Possibilities I > can think of for fast action games using P2P: a) Clients are fully > deterministic and perform a lock-stepped update based on inputs from all > clients. For instance all clients perform their physics update based on inputs > from clients during frame 180 and obtain identical results. Problems: this > means that there's a delay between input & response, even on the local client, > of around half the ping time to the slowest machine. Not too good I'd imagine > on a slow connection. b) All clients send their essential information > (position, orientation, etc) and run their physics based on the last, or > extrapolated details of other players. Problems: clients may come up with > slightly different results due to extrapolated data for other players (e.g. > the client colliding with another vehicle). There's also the problem of > non-player entities in the world, for instance a crate, which may end up with > different positions on different machines if some form of correction is not > performed to remove errors due to the above problem. SOCOM rules! ;-) I've had several times when it looked like I missed a jump (actually started falling down cliff or building, etc.) but then suddenly flashed to the "made it!" position. I would definitely say it's case A (deterministic, lock-step). > There's probably other problems or solutions I've not thought of though! I'd > be very interested in comments from people who've implemented P2P solutions in > games aimed at the online market though, especially to do with how they > handled game world physics and physical non-player entities. Very fascinating > subject. Thanks, Andrew I'm also interested in client/server solutions. How are packets bundled/unbundled into/out of streams? Do developers use sync or async code? Callbacks or runloops? Do you open separate pipes for different queries or is there one client/server stream that all transactions go thru? Inquiring minds want to know! ;-) Can anyone recommend any good "Programming Network Games" books? -- Enjoy, George Warner, Mixed Mode Magic Fragment Scientist Apple Developer Technical Support (DTS) |
From: Brian H. <bri...@py...> - 2003-01-24 19:15:57
|
>Can anyone recommend any good "Programming Network Games"= books? There are none. There's one book published by PRIMA called Multiplayer Game Programming that is fairly close to useless. = There is another book out that I can't remember that _sounds_ like it's= really good, but it's very expensive and the authors don't have= much street cred so I'm a little leery of recommending it. I've been meaning to write a basic document on the fundamentals= of multiplayer game programming, but it's such a complicated topic= that it's hard to really describe. Each piece is easy, but you can't= get it working until ALL the pieces are in place at once. Brian |
From: Matthijs H. <mat...@al...> - 2003-01-24 19:41:01
|
>Can anyone recommend any good "Programming > Network Games" books? I have a book called Networked Virtual Environments, Design And Implementation by Sandeep Singhal and Michael Zyda. It deals with most of the basics and I found it a worthy read. Of course, I have never written a real networked game and I did not try out any of the techniques they describe. If I were you, I'd search around on the net first, because there are many free tutorials covering the same ground. -- Matthijs Hollemans www.allyoursoftware.com |
From: Brian H. <bri...@py...> - 2003-02-05 22:32:54
|
And now for something way out of left field -- I'm looking for a= decent portable field recorder. Back in the day, the DATMan was= the way to go, followed by the various MD recorders. Unfortunately= data transfer had to be done either analog or through a SPDIF= connection, neither of which are particularly convenient in this day of USB mounting of remote devices. Today it would seem obvious that solid state recording to CF, MemoryStick and the like is the way to go, but I'm amazed at how= expensive some of these devices are -- over $1000 is fairly= common for a decent recorder that supports CF. Does anyone have any recommendations for a decent field-recorder= -- reasonably portable, USB connectivity or removable storage of= some type, and which does standard WAV/AIFF 44.1/48 recording? The= iPod and the various other MP3 recorders would be great, but most such= devices don't have recording facilities or they automatically compress. -Hook |
From: Colin F. <cp...@ea...> - 2003-02-05 23:27:21
|
2003 February 5th Wednesday I'm not contributing very much to this thread when I say that I bought a digital recorder with USB that looked and cost like a microcassette recorder -- and, to my surprise (NOT!), it sounded just like a microcassette recorder, even when I attached a professional microphone to it, uploaded the resulting audio file to my PC, and played it on decent speakers. I don't understand why even the cheapest consumer electronic devices have anything less than AWESOME frequency response and recording quality. My Nomad II MP3 player sounds AWESOME but can only record "live" audio through a built-in microphone, and my keychain USB drive holds 256MB, so why can't someone build an inexpensive device to record sound over the full range of hearing (20Hz --> 20kHz)? Maybe a small laptop computer isn't a bad way to do this stuff! The sound input can be pretty good, and you have lots of recording format options, and you could burn a CD-ROM on location! --- Colin cp...@ea... |
From: Dave B. <bo...@au...> - 2003-02-09 18:02:03
|
The newer Sony NetMDs (new MD players) have USB connections and line-in/mic-in. I think MZ-N707 and MZ-N1 are the models, but you should probably check that. I know of a few audio guys who have those handy with their own mics for input. Dave Barrett On 2/5/03 4:33 PM, "Brian Hook" <bri...@py...> wrote: > And now for something way out of left field -- I'm looking for a > decent portable field recorder. Back in the day, the DATMan was the > way to go, followed by the various MD recorders. Unfortunately data > transfer had to be done either analog or through a SPDIF connection, > neither of which are particularly convenient in this day of USB > mounting of remote devices. > > Today it would seem obvious that solid state recording to CF, > MemoryStick and the like is the way to go, but I'm amazed at how > expensive some of these devices are -- over $1000 is fairly common > for a decent recorder that supports CF. > > Does anyone have any recommendations for a decent field-recorder -- > reasonably portable, USB connectivity or removable storage of some > type, and which does standard WAV/AIFF 44.1/48 recording? The iPod > and the various other MP3 recorders would be great, but most such > devices don't have recording facilities or they automatically > compress. > > -Hook > > > > > > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Gamedevlists-general mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-general > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_idU7 |
From: Brian H. <bri...@py...> - 2003-02-09 19:26:10
|
On Sun, 09 Feb 2003 00:12:00 -0600, Dave Barrett wrote: > >The newer Sony NetMDs (new MD players) have USB connections and >line-in/mic-in. I think MZ-N707 and MZ-N1 are the models, but= you >should probably check that. I know of a few audio guys who= have >those handy with their own mics for input. Those are good units, but they have a major flaw in that they= won't transfer from MD->PC. The software is designed to rip and burn CD/MP3 to ATRAC/MD format, and supposedly Sony isn't too keen on= the idea of people being able to trivially transfer from MD to PC= (i.e. they don't want it to be a piracy vector). Thanks, Brian |
From: Steve R. <St...@no...> - 2003-01-24 19:51:02
|
The book Game Programming Gems 3 contains 9 articles in the "Network and = Multiplayer" section that span about 90 pages... Since I'm not a networking= expert, I can't really attest to the quality of the articles - but my = guess is that they are fairly good and written from real game experience. Blatant Plug (that might save you money): If anyone was thinking of buying any of the GPG books or my own AI Wisdom = book, I keep an up-to-date list of the cheapest prices, complete with = coupons codes for Barnes and Noble and such: GPG series: http://www.aiwisdom.com/bookshelf_gpg.html AI Wisdom: http://www.aiwisdom.com/bookshelf_aiwisdom.html Note that none of my links are hooked to kickbacks from any of the = booksellers and I take no ad revenue. These unbiased lists will help you = to get the cheapest price... which at the moment is $43.37 for these = $69.95 books. -Steve >>> bri...@py... 01/24/03 11:15AM >>> >Can anyone recommend any good "Programming Network Games" books? There are none. There's one book published by PRIMA called Multiplayer Game Programming that is fairly close to useless. There is another book out that I can't remember that _sounds_ like it's really good, but it's very expensive and the authors don't have much street cred so I'm a little leery of recommending it. I've been meaning to write a basic document on the fundamentals of multiplayer game programming, but it's such a complicated topic that it's hard to really describe. Each piece is easy, but you can't get it working until ALL the pieces are in place at once. Brian ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld =3D Something 2 See! http://www.vasoftware.com=20 _______________________________________________ Gamedevlists-general mailing list Gam...@li...=20 https://lists.sourceforge.net/lists/listinfo/gamedevlists-general=20 Archives: http://sourceforge.net/mailarchive/forum.php?forum_idU7 |
From: mike w. <mi...@ub...> - 2003-01-24 20:41:11
|
i have a few that i've found to be useful - directx complete has a section on directplay with basic applications, pretty useful... and there's another that is more platform inspecific, but not related to games though called 'programming the win32 api and unix system services' that is pretty good - covers the basics of sockets and whatnot for all platforms, plus has sections on multithreading and memory management...found it pretty useful doing what limited network hacking i attempt...by hacking i'm refering to my programming ability, not the intent ;} mike w www.uber-geek.ca ----- Original Message ----- From: "Steve Rabin" <St...@no...> To: <gam...@li...> Sent: Friday, January 24, 2003 11:50 AM Subject: re: [GD-General] Online Gaming > > The book Game Programming Gems 3 contains 9 articles in the "Network and Multiplayer" section that span about 90 pages... Since I'm not a networking expert, I can't really attest to the quality of the articles - but my guess is that they are fairly good and written from real game experience. > > Blatant Plug (that might save you money): > If anyone was thinking of buying any of the GPG books or my own AI Wisdom book, I keep an up-to-date list of the cheapest prices, complete with coupons codes for Barnes and Noble and such: > > GPG series: http://www.aiwisdom.com/bookshelf_gpg.html > AI Wisdom: http://www.aiwisdom.com/bookshelf_aiwisdom.html > > Note that none of my links are hooked to kickbacks from any of the booksellers and I take no ad revenue. These unbiased lists will help you to get the cheapest price... which at the moment is $43.37 for these $69.95 books. > > -Steve > > > >>> bri...@py... 01/24/03 11:15AM >>> > >Can anyone recommend any good "Programming Network Games" books? > > There are none. There's one book published by PRIMA called > Multiplayer Game Programming that is fairly close to useless. There > is another book out that I can't remember that _sounds_ like it's > really good, but it's very expensive and the authors don't have much > street cred so I'm a little leery of recommending it. > > I've been meaning to write a basic document on the fundamentals of > multiplayer game programming, but it's such a complicated topic that > it's hard to really describe. Each piece is easy, but you can't get > it working until ALL the pieces are in place at once. > > Brian |
From: <ash...@ya...> - 2003-01-25 00:25:38
|
Hi, First thanks a lot to Mick for the info about Tony Hawk, it makes a lot of sense that due to the game (and lack of interactive objects!) that you can offload the authorative collision detection and gameplay to a server. Not something that would work for a lot of gametypes but if it works, it works! I'm interested in the concept of P2P with one client acting as the server, as Mick and Phil mentioned, with the others running their own logic and physics but bowing to the results obtained from the server-client. I actually coded a very simple P2P application today out of interest, two bouncing balls controllable by keys (there's advantages to homenetworks!). At the moment everything is running lockstepped where all inputs are sent and each client performs the same calculations in the same order at roughly the same time. Works well but not, I'd imagine, something you'd want to run with high latency. So, my next approach (and shout if you see anything wrong!) will be; One client is designated the server Each client sends all non-movement updates (e.g chat, which i don't have but you get the point!) to all other clients All control inputs are sent to the server client which performs physics for the entire world and sends updates out Individual clients run physics based on their input and extrapolated (or interploated if you run a frame or two behind. I can't decide which is best) Individual clients should see next to no difference in their vehicle/player/whatever providing they are not interacted with by other players. All other physical entities are updated based on the results of the server I suppose all clients could send their inputs to all other clients so they could act upon these inputs before bowing to the server, but I'm not sure that'd be much more effective and would increase the bandwidth needed by all clients. The bonus to having one client perform the duties of a server would be that slow or narrow band connections will perform much better than a true P2P structure I'd imagine. There seems to be a lot of information on true Client/Server architectures on the net, but no tmuch devoted to P2P, which is a shame really as I'd imagine with most PS2Online/Xbox Live games they take the P2P approach. Thanks, Andrew phi...@pl... wrote: AFAIK SOCOM is a classic client/server model, with centralised servers, while TMB online is P2P, although only in that one of the clients also acts as a server. Another client can become the server, if the host-client drops out (AKA host migration), I believe that this means that each client is running full physics and logic, but discarding results upon receipt of data from the server. I think the more direct client interaction a game recquires, the worse the network experience generally is. Both of those games suffer on that front, but it could be worse. I once worked on an online 1-on-1 fighting game. Lag's kinda fatal in that environment... Cheers, Phil "Mick West" Sent by: To: gam...@li...urc cc: eforge.net Fax to: Subject: RE: [GD-General] Online Gaming 01/23/2003 03:25 PM Please respond to gamedevlists-general c) it's not really P2P. Clients are deterministic, and ignore what's happening on other clients. One "client" is also a "server", which arbitrates scoring and collision between clients. The server tells the clients when they have been hit, and they fall over. The clients tell the server where they are and what they look like, and the server relay this to the other clients, who just display the other skaters at a few frames before their last known good position, extrapolating only if data fails to arrive in good time. It only works because there is very little interaction between clients (they don't shoot each other, and most of our online games don't rely on skater-skater interactions). Also there are no moving objects in mutli-player games, so we dont have to worry about crates or vehicles. It's pretty specific to our type of game, and is probably not what they use in SOCOM. MIck -----Original Message----- From: gam...@li... [mailto:gam...@li...] On Behalf Of Andrew Sharpe Sent: Thursday, January 23, 2003 1:43 PM To: gam...@li... Subject: [GD-General] Online Gaming After getting my PS2 network adaptor I've been playing SOCOM online for the past few days. Today though I put on a copy of Tony Hawk4 and was pretty surprised with how it played online. Even on what I'd consider to be laggy servers (200-250 ping) the game seemed remarkably fluent and consistent, i.e no warping players. Although I've played lots of FPS games which usually use a client/server architecture I'd never really played a fast-paced peer-to-peer game and always assumed that on anything other than LAN or fast broadband the game would suffer. Although I'm familiar with how C/S architectures work and how the effects of latency can be compensated for, I've never really given P2P much thought before in terms of how games can achieve a smooth playing experience, or even how their network update is structured. Possibilities I can think of for fast action games using P2P: a) Clients are fully deterministic and perform a lock-stepped update based on inputs from all clients. For instance all clients perform their physics update based on inputs from clients during frame 180 and obtain identical results. Problems: this means that there's a delay between input & response, even on the local client, of around half the ping time to the slowest machine. Not too good I'd imagine on a slow connection. b) All clients send their essential information (position, orientation, etc) and run their physics based on the last, or extrapolated details of other players. Problems: clients may come up with slightly different results due to extrapolated data for other players (e.g the client coliding with another vehicle). There's also the problem of non-player entities in the world, for instance a crate, which may end up with different positions on different machines if some form of correction is not performed to remove errors due to the above problem. There's probably other problems or solutions I've not thought of though! I'd be very interested in comments from people who've implemented P2P solutions in games aimed at the online market though, especially to do with how they handled gameworld physics and physical non-player entities. Very fascinating subject. Thanks, Andrew With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ Gamedevlists-general mailing list Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-general Archives: http://sourceforge.net/mailarchive/forum.php?forum_idU7 --------------------------------- With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs |
From: Thatcher U. <tu...@tu...> - 2003-01-25 17:25:30
|
On Jan 25, 2003 at 12:25 +0000, Andrew Sharpe wrote: > I'm interested in the concept of P2P with one client acting as the > server, as Mick and Phil mentioned, with the others running their > own logic and physics but bowing to the results obtained from the > server-client. [...] > There seems to be a lot of information on true Client/Server > architectures on the net, but no tmuch devoted to P2P, which is a > shame really as I'd imagine with most PS2Online/Xbox Live games they > take the P2P approach. For the networking of VR Bikes/Climbers (see http://tulrich.com/tectrixvr) which were basically embedded PC's hooked together in a serial loop with no possibility of a dedicated server, we used a sort of "distributed server". Each object in the world has one machine that is authoritative for it. The authoritative machine sends periodic updates for each of its objects. All machines simulate all objects locally. When an object update is received over the network from an authoritative machine, it is pushed into the local state. The object partitioning basically works like this: 1. Every machine was the server for the player-object on that machine 2. The machines were ranked from 0 to (N-1) (we did this with serial numbers, but IP addresses should work), and the objects all had integer IDs. A machine was the server for an object if machine_rank == (object_id % N) It's all self-organizing; machines can enter or leave the simulation at will, and things behave extremely robustly. There is no one machine that bears a disproportionate share of bandwidth. If a machine drops out, the rest of the simulation proceeds, and the object responsibilities get automatically reshuffled once the machine has been missing for a few seconds. Everybody has an independent notion of the world-state, so there's no one point of failure. If machines *do* drop in and out frequently, there's definitely a chance of objects popping around, although machines first entering the network go into a "listen" mode for a few seconds in order to get their objects synced to the rest of the network's state, to keep new machines from disrupting existing distributed state. There is the possibility for "inconsistent" interactions, although in practice I don't think it's much worse than any networking model. You have to trust the clients though, and it can be more complicated to program some object types. -- Thatcher Ulrich http://tulrich.com |
From: Pierre T. <p.t...@wa...> - 2003-01-26 15:12:52
|
Hello, I have this warning in VC++ 6.0 in various places : Contact.lib(IceCore.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in Contact.lib(IceMaths.dll); second definition ignored What is this "null" descriptor ? How can I get rid of this ? Thanks, Pierre |
From: Tom H. <to...@3d...> - 2003-01-26 19:56:57
|
At 04:25 PM 1/24/2003, you wrote: >There seems to be a lot of information on true Client/Server architectures >on the net, but no tmuch devoted to P2P, which is a shame really as I'd >imagine with most PS2Online/Xbox Live games they take the P2P approach. Probably the biggest problem with P2P these days is that many (most?) of the clients are behind NATs and therefore can't act as servers without configuring their NAT to support port forwarding of the ports your game uses. This is beyond a great many end users and ends up generating a lot of support headaches. I don't know how true this is of consoles, though my own PS/2 is behind a NAT ;) Tom |