Re: OINC community project: Dead Reckoning
as djfeugo hinted, it comes moreso down to the way you code your engine for online play.
planning beforehand at how little and infrequent you can send data to achieve the same results will make the biggest difference.
eg: rather than send data for player positionx, pos y, direction, etc, you could put all that info in a string or integer, and then send the 1 number or string. decrypting it at the clients end is more work but is ultimately a LOT faster for online gaming,; ands only send it when you absolutely have to, NOT every x milliseconds!
Re: OINC community project: Dead Reckoning
Quote:
Dead reckoning usually starts with the system that I mentioned in an above post
Where? I'm looking everywhere for the system/post, and don't see it. I'm not trying to be rude, I really want this information, and if you have a valid method, PLEASE point me to the post.
I've got space ships moving in a frame that is 10,000 x 10,000, and the action is quite fast. If I don't send position (x/y), speed and direction periodically, it gets out of sync.
My ships use VECTOR movement using the click team movement controller to do Newtonian(ish) movement (ie Thrusting/drifting in space).
I'm REALLY looking for a better way (if this really is bad), because as I said before, I know I'll have dozens or more players at once, and I want it to be smooth and efficient.
THANKS!
Re: OINC community project: Dead Reckoning
Quote:
Originally Posted by danjo
eg: rather than send data for player positionx, pos y, direction, etc, you could put all that info in a string or integer, and then send the 1 number or string.
Or an OINC stack!
Re: OINC community project: Dead Reckoning
How do you parse an OINC stack?
Re: OINC community project: Dead Reckoning
You can get a byte/short/int etc. at a byte index.
Each data type has a different size - byte = 1, short = 2, int = 4, float = 4, string = dynamic.
So if you pushed a short with value 1234, and a float with value 3.14159, you can get both values using ShortAt(0) and FloatAt(2).
Re: OINC community project: Dead Reckoning
I'm writing some documentation for the extension as we speak :)
Re: OINC community project: Dead Reckoning
Quote:
Originally Posted by Jamie
I'm writing some documentation for the extension as we speak :)
This would help me out a lot! :D
stephen1980
Re: OINC community project: Dead Reckoning
Here is an example paper on a dead reckoning system at work. With pictures.
http://www.gamedev.net/reference/articles/article1370.asp
Re: OINC community project: Dead Reckoning
Nice find DJFuego :) It does explain lag compensation pretty well!
I usually do some research when I start on an online game by finding games that match my genre, and find out how they deal with their issues. In regards to client-side prediction, I'm quite inspired by the Source engine's (related to games like Quake also) way to deal with it.
Re: OINC community project: Dead Reckoning
IMO counterstrikes (1.6) netcode is second to none. even with a 56k modem it was still perfectly playable.