FSIC Messageboard
  Tech Talk
  MH can you please give me this info! (Page 1)

Post New Topic  Post A Reply
profile | register | preferences | faq | search

UBBFriend: Email This Page to Someone!
This topic is 3 pages long:   1  2  3 
next newest topic | next oldest topic
Author Topic:   MH can you please give me this info!
FarmerJoe
Pilot
posted 07-05- 02:07 AM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Can you please give me the port numbers sdoe uses when in the game? That way I can try to correct the .303 damage bug and bomb bug and try to fix some stuff up a little bit...I need to see what the packets look like that sdoe uses to communicate. All I know is they are UDP correct? It would be greatly appreciated if you'd give me that info.

jameso@cdsnet.com

------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Tailslide
Pilot
posted 07-05- 12:12 PM     Click Here to See the Profile for Tailslide   Click Here to Email Tailslide     Edit/Delete Message   Reply w/Quote

Joe, I think this info is in the handy dandy doc whereever that is..

IP: Logged

Razer
Pilot
posted 07-05- 12:38 PM     Click Here to See the Profile for Razer   Click Here to Email Razer     Edit/Delete Message   Reply w/Quote
Handy Dany Doc

http://www.fshangar.com/area51/asdoe.ZIP

------------------

Tony "Razer" Martin

http://www.fshangar.com

IP: Logged

Bryan Russell
Pilot
posted 07-05- 10:20 PM     Click Here to See the Profile for Bryan Russell   Click Here to Email Bryan Russell     Edit/Delete Message   Reply w/Quote
Now you got me curious about how you are going to fix it. I guess not in code other wise you would just get the port numbers out of there.

IP: Logged

FarmerJoe
Pilot
posted 07-05- 11:49 PM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Bryan...heard of ip spoofing? Hehe old school approach to it...make it go threw a third party program before it even leaves yer computer =). In other words you make a program that intercepts the packet as it is being sent and run it threw your program and then send it before sdoe sends it. You can make the program intercept it by lets say
using a function called watchlocal
watchlocal will have the info in it for the local machine and the port the data will be coming from and it will call a function and repair the packet or check it and then send it on it's way. Then you'll have another function to watch incoming packets and make sure they are correct also before transferring it to the game. It's gonna be a big pain in the ass but since MH don't wanna give source I think it's the only way until there is a patch made. Thank yall for your time.


------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Falck
Pilot
posted 07-06- 12:11 AM     Click Here to See the Profile for Falck   Click Here to Email Falck     Edit/Delete Message   Reply w/Quote
Thats an interesting idea FarmerJoe.
Would it also be possible, if we could discern what kind of info is sent in the packets, to wrap damage packets in a TCP/IP protocall rather than UDP?

IP: Logged

FarmerJoe
Pilot
posted 07-06- 12:38 AM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Falck I was thinking about doing the same thing. UDP does transfer packets faster because it does not send a "check" packet back to the host to make sure the initialy packet it made it alright. TCP/IP on the other hand does this generously. I am thinking there must be a way to knock some of the data lenghts down that are sent and have come up with some good ideas on lowerin the data count but I still can't find out which damned ports they are =( I am already getting frustrated and I haven't even started coding yet. LoL Tail I looked in that zip file and I could find nothing except how MH thinks he fixed the problem in the beta version. I just need some simple numbers. There aint nothin illegal bout that. Now back to Falck, yeah bubby it would be very possible to make it use TCP/IP I just hope the game doesn't have a function in it that checks to make sure the packet is in UDP form that would suck. If I can get it to run successfully then I will have to create additional ports to open and the ones from the game will be open too. We won't be able to close the ones from the game because it's in the source code for the game in order for those sockets to be opened and bound. Yall take'd easy now.


------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Bryan Russell
Pilot
posted 07-06- 12:48 AM     Click Here to See the Profile for Bryan Russell   Click Here to Email Bryan Russell     Edit/Delete Message   Reply w/Quote
I thought the problem was with packets being errored in the network. If this is the case then the packets will be good as you watch them leave and you will never receive packets that get errored in the network.

In packet based networks like the Internet, errored packets are hardly ever received as errored. They are normally dropped in the network. The router figures there is no point in wasting bandwidth for it.

Mostley higher layers such as UDP will not get the packet even if it makes it to the machine. The IP Layer (or even Ethernet layer, in the case of local or bridged networks) will discard it if the CRC is incorrect.

The TCP/IP thing has merit. You would want a low latency network though, unless you didn't mind the damage being delayed. Probably better than getting lost.

You would have to do the conversion at both ends becuase the UDP and TCP stacks are totally different and are opened with different calls into winsock.


P.S did you send something to Inertia about the SOS NDA? They were asking for 'candidates' a while ago

[This message has been edited by Bryan Russell (edited 07-06-2000).]

IP: Logged

Mighty
General
posted 07-06- 01:56 PM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
First, as Bryan said, you would need to unwrap the packets on the other end. So everyone involved would need to be running your program.

Next, we do a frame number check on the packets. If any packets come through out of order we throw them away. So if machine A sends a damage packet that gets lost, then a position update that gets through, and then a couple of frames later your program resends the damage packet, we're going to notice that the damage packet is out of order and discard it. So I'm afraid that won't work.

I don't have the ANet docs on this machine. Hopefully Michael will notice this thread or I'll look up those port numbers at home, tonite. I want to say they're around 2300-2600, but I could easily be mistaken.

IP: Logged

FarmerJoe
Pilot
posted 07-07- 12:20 AM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Mighty that's what I was afraid of...The packets getting bugged across the network not right out of game =(. Well okay you said that a frame position is sent with the packets isn't it possible you could guestimate that 20fps is the average right. Well from the time the packet is sent and the time betweeen when the error packet is recieved can be restored and a simple fps calculation take place then it applies this to the packet which will maybe apply the damage more smoothly.Also one question if you shoot a plane on your computer does it send a packet to the plane you shot saying you shot it? Or does it just say you a bullet was in x,y,z and you need to check your position? You know what I mean?
So I check the ports from 2000 to 3000

------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Michael Harrison
General
posted 07-07- 08:00 AM     Click Here to See the Profile for Michael Harrison   Click Here to Email Michael Harrison     Edit/Delete Message   Reply w/Quote
According to the anet docs

"Internet driver for win32 now opens a UDP port within the range 21100-21299 by default (though game can override this; also, if that port is not available, the driver lets the OS pick the port). This lets users who are behind port-screening firewalls set their firewalls to allow access."

IP: Logged

charmstar
Pilot
posted 07-07- 01:49 PM     Click Here to See the Profile for charmstar   Click Here to Email charmstar     Edit/Delete Message   Reply w/Quote
It makes sense that you do a frame number check on position updates, but why is one done on damage packets? I would rather have objects blow up a few seconds late than not at all.

charm

IP: Logged

Mighty
General
posted 07-07- 03:09 PM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
See http://lynx.inertiagames.com/~mighty/sdoedocNetworkDetails.doc for a thorough description of how we apply damage. Basically, we send across the damage done to each part of the target. Not the x,y,z position of every bullet.

Yes, one could replace the frame number with a later number. You wouldn't even really need to guesstimate the frame. Just look at the last successful packet sent and repeat that frame number. We're using that number as a sort-of serial number. Any packets that come through with the same or later frame number than the previous packet are considered valid.

Though, if you're using TCP/IP I believe you don't have that much control. You give the packet to the OS and it keeps trying until it goes through. If you're sending UDP position packets in the meantime then you have no idea where the damage packet will show up amongst those position packets.

If you send everything by TCP/IP then you run the risk of having one packet hold everything up. TCP/IP also guarentees order of delivery. If one packet doesn't make it the OS has to wait until it times out before sending any more packets. That could be several seconds. And if the connection is flaky then that will happen a lot. The advantage of UDP is that the game can gracefully recover from dropped packets.

And that's what the code in the latest beta does. We resynch the damage regularly to make up for any dropped packets. That should work out much better than blindly re-sending every packet.

I'm not telling you "don't do it." I'm just pointing out the properties of TCP/IP conflict with the needs of real-time games.

And Charm, we could have skipped the frame number check on damage packets. It's just that that piece of code is very generic and doesn't know what kind of packet it's looking at.

IP: Logged

Tailslide
Pilot
posted 07-07- 03:34 PM     Click Here to See the Profile for Tailslide   Click Here to Email Tailslide     Edit/Delete Message   Reply w/Quote

The damage bug shows up on two fast computers playing over a 100Mb LAN with no other traffic, I'm not sure the problem is lost packets.

TS

IP: Logged

Michael Harrison
General
posted 07-07- 03:53 PM     Click Here to See the Profile for Michael Harrison   Click Here to Email Michael Harrison     Edit/Delete Message   Reply w/Quote
TS: Are you comparing your networked results with an identical single-player scenario?

IP: Logged

Tailslide
Pilot
posted 07-07- 04:06 PM     Click Here to See the Profile for Tailslide   Click Here to Email Tailslide     Edit/Delete Message   Reply w/Quote

No, it was very subjective. Jaguar was over and we had a dogfight at 3am. It seemed harder to kill than offline, I could be mistaken. Prolly worth repeating under controlled conditions.

TS

IP: Logged

Jaguar
Pilot
posted 07-07- 05:52 PM     Click Here to See the Profile for Jaguar   Click Here to Email Jaguar     Edit/Delete Message   Reply w/Quote
I am smarter than the average AI you know ..... I rember that... Damn was I tired! If you want to run some more "trials" just let me know.

IP: Logged

ReaperMan
Pilot
posted 07-07- 10:42 PM     Click Here to See the Profile for ReaperMan   Click Here to Email ReaperMan     Edit/Delete Message   Reply w/Quote
FarmerJoe/Mighty/MH

Is there any way you could use a combination of the two? i.e., use the TCP protocol by default, and if it hasn't gone through after so many ms, send it via UDP. Is this possible? I don't know much about any of this, but I guess I should read up on it.

------------------
-=TheReaper=-


IP: Logged

Tailslide
Pilot
posted 07-07- 10:52 PM     Click Here to See the Profile for Tailslide   Click Here to Email Tailslide     Edit/Delete Message   Reply w/Quote

Fighter Ace uses UDP for plane positions and TCP for damage. The damage doesn't always register immediately but never gets omitted.

TS

IP: Logged

Mighty
General
posted 07-08- 04:02 AM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
Tail, that's interesting about Fighter Ace. I think someone mentioned that in the past. Thanks for reminding me.

Reaper, no it turns out we can't do that. For one thing, if we're having trouble with TCP then we're probably going to have trouble with UDP, too. TCP is built on top of UDP, after all.

One problem with using TCP from within SDOE is that we're using the ActiveNet library. While I think ANet has worked pretty well for us overall, one "feature" it has is when you ask for a packet to be sent "guarenteed" it locks up the program until it gets its ack back. That behavior is in code that I don't have access to.

The only way we could use TCP is if we ripped out the entire low-level networking layer. While that's always an option, I'm actually pretty optimistic about the algorithm that Michael has already implemented in the beta patch. I think it'll turn out to be fairly robust and should solve the problem.

And again, TCP won't work for FarmerJoe because of the serial number we put in the packets. Hmm, though I suppose he could replace the serial number on the recieving end.

Still, I'm a little leary of a seperate program noodling with game packets. As a learning experience and a challenge it's an interesting problem. But as a solution it strikes me as very fragile. Hopefully, we can get the beta up to snuff soon after RC Sim is released.

IP: Logged

FarmerJoe
Pilot
posted 07-11- 12:23 AM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Sorry guys my box went down for a few days I just got it back up today. Okay so it is possible to use TCP/IP and I understand that the OS will keep trying to send that packet till it gets threw. That screws up the "serial number check" though so that isn't too good. Now let me ask this while the packet is timed out and the os is trying to resend is there anyway you can get back into the packet before the os tries to send it again? Or let me ask this even. Once you send the packets with TCP/IP and it times out can you drop that packet right quick and compile another one and send it right quick? Then if the packets keep timing out then when they finally get threw the "serial number check" will be correct. Of course if that is at all possible. Thanks for the link mighty to the document I will start reading it immediately.

------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Mighty
General
posted 07-11- 03:27 PM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
> Getting back into a waiting packet

No, once the OS has the packet it belongs to the OS and you can't get at it.

> Time out quick and resend

Yes, I'm sure you can tell the OS how long to wait and how many retries you want.

But again, I think a better way to do it is to muck with the serial number on the recieving end. You know what has gone by previously. Just repeat the last valid serial number before giving it to SDOE and we'll accept it.

IP: Logged

FarmerJoe
Pilot
posted 07-12- 02:26 AM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
I was thinking about this alot today. I don't think a 3rd party program would be very adequate. Instead I filled out an app for the source and am gonna try out my ideas on the source. Which will be the following:

I want to open another port and have it TCP/IP strip all of the damage portions out of the UDP portion of the source and make all the bombs,crashes,bullets,detaches,etc. that has to do with damage and make them all TCP/IP packets. This will work if users have good internet connection and if they have crappy connection then tuff luck get a better one right? RIGHT! Okay then there is something else that I would like to add. An option in the options menu that will allow you to choose Slow Network or Fast Network. That way SDOE will know wether or not to use TCP/IP and UDP or just strictly UDP. The source will also be able to read incoming damage into the UDP port but will no longer be able to send damage info with the outgoing UDP port. Make sense? That is what I would love to work on SDOE. Its a start!

------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Mighty
General
posted 07-12- 11:43 AM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
We can discuss this in more detail when you get the source, but I think you'll find that won't work very well. Again, ANet completely ties up the machine until it gets its TCP ack back. I suppose you could open a parallel connection that you handle yourself, but that also seems pretty fragile. That's not much different than a separate program.

Also, it sounds like you're wanting to put a lot of smarts down in the low-level networking layer to decide what to do with each packet depending on what's in it. That kind of coupling is "A Bad Thing." All the low level knows is that it has a packet of data to send and who to send it to. And who gets a recieved packet. The low level doesn't know nor care what's in the packet.

Has anyone tried the beta with a large group of people, yet? It would be useful to learn whether or not the damage resynch code is doing its job. You may not need to add anymore code to address the damage issue. Maybe I can find some time this weekend to do some testing with someone.

You know what might be the best thing to add? Code to record messages sent and recieved and a program to reconcile the logs from different machines. I never had time to add that kind of diagnostic code when I first put the networking together. (In hindsight, that should have been the first thing I wrote.) That information will help us characterize the problem, if there still is one.

IP: Logged

spin
Pilot
posted 07-12- 11:59 AM     Click Here to See the Profile for spin     Edit/Delete Message   Reply w/Quote
If some people want to try some online beta testing, I'll be happy to join you.

I'll be up most nights this week after 10pm edt. I'll be in the cali12 1.5 lobby and see if anyone is interested.

We still have some graphics issues to contend with in the latest build but they're tolerable if we're testing something specific (like damage bug).

IP: Logged

charmstar
Pilot
posted 07-12- 12:37 PM     Click Here to See the Profile for charmstar   Click Here to Email charmstar     Edit/Delete Message   Reply w/Quote
What about just using UDP, but sending each damage packet twice, with the second packet having serial number 1 less than the first packet. This way, it will be invalidated if the first packet is received correctly, but valid if the first packet was dropped. Would that perhaps help things out a little? Or, is it more typical for a machine to drop an entire series of packets in a row? It just seems to me that it is not very efficient to resend your damage status every few seconds throughout the game. Instead, there should be a couple of tries to send damage status after that status has changed.
Another idea is to have a timer set for a few seconds everytime new damage occurs, and while the timer is running broadcast damage status two or three times. The timer could be dependent on the hertz ini settings. For instance, you could do something like:
// in a function which happens with frequency HERTZ
MAX_I = HERTZ * 9 //9 second max
if (i != 0) {
if (i % (HERTZ * 3) == 0)
SendDamage(); //call damage send function
if (i == MAX_I)
i = 0;
i++;
}

And when you take damage, set i = 1 in that function.

Well, I'm a novice in this coding stuff, but it seems like there must be a way to improve damage tallying. Also, somebody should add a packet to be sent when a bomb is dropped with its world coordinates, vector, and velocity, so that we don't see the ground vehicle damage "bug". These packets could also be sent a couple times, so you don't see enemy planes flying with their bombs still apparently undropped, and everybody has the same opinion of what ground vehicles are destroyed.

charm

IP: Logged

Mighty
General
posted 07-12- 01:48 PM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
Charm, yes, dropped packets tend to be "bursty." And they tend to happen when a bunch are being sent in a short period. So simply repeating the transmission would just as likely make the problem worse. Also, you have to be real careful about doubling up on damage. A packet might arrive out of order, in which case your out-of-order serial number would cause double damage.

I thought I had spelled out here what we're doing in the beta, but apparently that was in the beta forum. What we're doing is, each plane knows how much damage it did to each part on each plane in the game. What we now do is regularly send a tally from each plane to each target. Each tally packet is just for a single part on the target plane. We cycle through the parts. When a target gets the tally packet it compares that to what it already knows about. If there's a discrepancy it updates the damage and determines if that's enough to kill the part. So eventually we'll get caught up on damage.

Similarly, there were some toggle settings that Eric wasn't sending. For example, the prop spinning and the infinite bomb bug. Michael has added those states to the status packet and they should be cleared up in the current beta.

[This message has been edited by Mighty (edited 07-12-2000).]

IP: Logged

Tailslide
Pilot
posted 07-12- 01:55 PM     Click Here to See the Profile for Tailslide   Click Here to Email Tailslide     Edit/Delete Message   Reply w/Quote

I missed that Mighty, it sounds great!

I wish the beta was a little more playable.

TS

IP: Logged

Falck
Pilot
posted 07-12- 01:58 PM     Click Here to See the Profile for Falck   Click Here to Email Falck     Edit/Delete Message   Reply w/Quote
quote:
Similarly, there were some toggle settings that Eric wasn't sending. For example, the prop spinning and the infinite bomb bug. Michael has added those states to the status packet and they should be cleared up in the current beta.

Thats great news. The prop disappearances online get to be annoying, though I can live with them. Im also more than willing to try the beta online tonight.

Also, if Im interested in helping with S.O.S., where do I get the application? If you cant post a url here could someone please email me the specifics.

IP: Logged

Michael Harrison
General
posted 07-12- 04:24 PM     Click Here to See the Profile for Michael Harrison   Click Here to Email Michael Harrison     Edit/Delete Message   Reply w/Quote
Check out the announcement link in any of the board sections. It includes instructions on how to get the source.

IP: Logged

charmstar
Pilot
posted 07-12- 07:14 PM     Click Here to See the Profile for charmstar   Click Here to Email charmstar     Edit/Delete Message   Reply w/Quote
Sorry I'm a slow learner :-)

So, if I fire a burst into an enemy plane, damaging a propellor, a wing, and the vstab, then would I just send out 3 packets to my victim? Or, would I send out those 3 packets to everybody in the game? Or, will I send out damage status on every part of the target plane?

Also, how does SDOE know if the enemy knows what it knows about damage? Will I keep sending those 3 packets over and over for the rest of the game, or will the target plane message back when it has accepted the damage to say, "thanks, now quit bothering me".

Also, what if I shoot a part causing 20 obhits, and my wingie shoots the same part causing 15 obhits roughly simultaneously? Will all 35 obhits be counted, or what? If the target plane gets the 20 first, then sees the 15, will it be smart enough to add the latter to the total damage?

Finally, does the target plane send out a damage message to each plane in the game after updating its damage status?

charm

IP: Logged

Mighty
General
posted 07-12- 08:42 PM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
When plane A shoots plane B, plane A sends a damage packet for every part on plane B that he damages that frame. The next frame, he'll send more damage packets as necessary.

Damage packets only go from damager to damaged.

Plane B can never say "quit bothering me." He can't know if any packets got dropped, which would mean there's more damage pending. What we could do is have plane B ack the packets. But I don't think that's how Michael implemented it. We're only sending one tally packet every few frames, so it shouldn't be much traffic.

Plane B knows where damage came from. So if plane A and plane C both damage it, and both packets get through then both damage packets will be counted.

When a part sustains enough damage to become visible that information is included in the status packet from that plane. Things like, engine smoking, wing burning, piece detached, etc. That information is broadcast to everyone periodically.

IP: Logged

FarmerJoe
Pilot
posted 07-12- 11:50 PM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Mighty: Okay Lets say plane A shoots plane B...I now understand that plane A is sending the tallies to plane B for each part plane A damaged correct? Now If the packet from plane A is going to plane B how do the rest of the people in the game recieve plane B's damage? Is it sent out by plane B or is each tally packet from plane A broadcasted to everyone in the game?

------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Bryan Russell
Pilot
posted 07-13- 01:15 AM     Click Here to See the Profile for Bryan Russell   Click Here to Email Bryan Russell     Edit/Delete Message   Reply w/Quote
My interpertation of Mightys words is that the plane being damaged (B) is the only one who receives the damage info from the plane doing the damaging (A). But, when B gets enough damage on a part that will cause it to smoke, break off, be bent etc etc etc, it will include this information in its normal status updates to everyone else in the game.


IP: Logged

FarmerJoe
Pilot
posted 07-13- 01:27 AM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Bryan if that is so then that's part of the problem. Not everyone is recieving what has happened to that plane until it is smoking or bent. If that's the case then the damage portion of the online is even more jacked than I thought. Mighty: Does this work in like a so called hierarchy structure? Where plane A shoots plane B then plane B broadcasts to other that he has been damaged? Or is it a "madass" lagger where plane A sends a packet to everyone saying HEY EVEN THOUGH IT DOESN'T CONCERN YOUR ASS YET I JUST THOUGHT I'D LET YOU KNOW I SHOT PLANE B AND MAYBE HE GOT THAT PACKET AND MAYBE HE DIDN'T BUT I REGISTER I GOT HIM AND NOW UPON YOU REACHING THIS PACKET YOU GOT HIM SCREWED UP TOO BUT ON HIS END MORE THAN LIKELY IT DIDN'T DO JACKSHIT TO HIM. Does it go something like that?

------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Falck
Pilot
posted 07-13- 01:57 AM     Click Here to See the Profile for Falck   Click Here to Email Falck     Edit/Delete Message   Reply w/Quote
FJ, its like this.

Plane A shoots plane B. A tells B what parts it damaged. B updates the damages to its parts upon receiving the information from A. SDOE is peer to peer so only A and B are involved in this.

Now lets say that B was damaged enough to snap off a wing. B sends out a packet to EVERYONE every so often saying 'hey, this is my state: my prop is spinning, theses are the parts that have been detached, etc.'

So third-parties in the game not involved in A's shooting of B dont know anything about it being hit unless there are some visual cues being delivered in its status packets.

Also, though SDOE shows tracers in the air from other aircraft, they merely result from a 'shooting' flag in the status message as far as I can tell, and the position of the bullets as seen by C may not be the same as those as seen by A. This is why when, in turning dogfights online, players seem to be off aim by a second or two of time. As far as I know, the yellow hit indicator is only calculated by your local machine. So while machine A may be plinking away at B, machine C see's the tracers way off target and no yellow hit 'sparks'.

IP: Logged

Bryan Russell
Pilot
posted 07-13- 02:38 AM     Click Here to See the Profile for Bryan Russell   Click Here to Email Bryan Russell     Edit/Delete Message   Reply w/Quote
Actually FJ its the right way to do it, when you think about it no one apart from A&B need to know whats going on damage wise unless there needs to be some visual cue like smoke or missing parts. The damaged plane might fly different, but thats going to be relayed via the normal position updates, and smoke and wing attachement is sent on a regular basis.

In the case where C comes in and gets hits on B, then B will add those to the ones he gets from A, even though A doesn't know about them. Ultimatly, B will be damaged enough from both A&C to cause smoke or what ever damage to be displayed to other users.

Now scoring is a different matter. I can't be sure but I would guess that what happens is that B when killed would know about all the hits it got and would then award the kill to the player who caused the most damage. This would be broadcast everywhere.

I would guess that the same princliples apply to ground units. The Player 'B' in this instance being the host (in that its the machine that is receiving damage)

Ultimatly, IMO TCP/IP is the best solution for not so time sensitive one off's like damage.

From what Mighty has said the main limitation is the ANet library locking up the machine while waiting for a reply. TCP/IP sockets can be opened asynchronously (i.e. they return immediattly from the call when data is sent) so I guess if you get the NDA sorted out a duel UDP/TCP solution would be most welcome.

Got a release date yet?

IP: Logged

Mighty
General
posted 07-13- 01:12 PM     Click Here to See the Profile for Mighty   Click Here to Email Mighty     Edit/Delete Message   Reply w/Quote
What Bryan and Falck said

One clarification. The yellow hit flash is determined locally, as Bryan surmised. But the damage sounds are played based on damage applied from damage packets recieved. That's one way you can tell if someone is hitting you.

As for ground units, those currently aren't "hosted" by anyone. That's why ground unit damage isn't reconciled across machines. Each machine keeps track of ground unit damage for itself. Similarly, a ground unit can be shooting at different targets on different machines, since we don't reconcile where they're pointing.

IP: Logged

FarmerJoe
Pilot
posted 07-13- 02:41 PM     Click Here to See the Profile for FarmerJoe   Click Here to Email FarmerJoe     Edit/Delete Message   Reply w/Quote
Okay thanks for the explanation guys. I understand it now. A shoots B and B doesn't cue anyone else in on it until he gets really screwed up. He keeps the tallies from the seperate planes if he is shot by more than one plane and when he reaches max then he ques everyone else in on his damage. Well okay let me ponder some more and I'm sure I will come up with some more questions.

------------------
Subaltern FarmerJoe Axis West
Three Amigo

IP: Logged

Archer
Pilot
posted 07-13- 04:01 PM     Click Here to See the Profile for Archer     Edit/Delete Message   Reply w/Quote
Mighty?

OK, I know dump about computers, online transmission and this damage stuff except what has been explained in this post, and done quite well I might add.

Just a few thoughts?

Why couldn't the game host (creator) be the "host" for ground damage. Obviously this would demand more of his system compaired to the rest, but if the game host had a good size processor and was on a cable or DSL connect would he be hurt that much? or could for example, the Calf12 server be the host for the damage some how?

btw, great conversation starter FJ!

:-)

------------------
Archer ^I^

IP: Logged


This topic is 3 pages long:   1  2  3 

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply
Hop to:

Contact Us | Fighter Squadron Information Center

(This site Copyright (c) 1999 Inertia LLC)

Powered by Infopop www.infopop.com © 2000
Ultimate Bulletin Board 5.45c