Kenny you have our first GDI version? OMG
Posted on 2001-08-30 19:02:09 by BogdanOntanu
Lost it in a HD crash, but I remember it :)

Is your network code kind of like this?

Every client stores where each unit is, and whenever a unit moves, that client broadcasts to all other clients the new destination of the clients, then since all pathfinding is the same each unit should be the same, so the engine records the startlocation and destination for every unit (ones that don't move have same number), and performs a 64byte CRC on that table, and sends out that number to all clients. If one person doesn't match the oter 7, someone is hacking???

I don't know if that is a technology or not, but I just thought of it right this moment :grin:
Posted on 2001-08-30 19:04:42 by Kenny
No, our network is not like that,but i can see a good start in your thinking pattern ;)

but the CRC stuff i relatively like that...

as i told before each HE client has the whole world and yeah we do a CRC to some important data of this world and IF one of Clients CRC is not the same with the other 7....

he/she is hacking and gets disconected or left to play a diffrent game ;) from the other 7 guys

But this is NOT network techno its just checking for ingame hacking ;)
Posted on 2001-08-30 19:48:12 by BogdanOntanu
OH!!!

I see now: You CRC check the PE and the memory so I couldn't just nop out the shroud display code, or return a much larger amount of energy per trip than really is happening.

I could write a program that detects memory location that you display how much energy a certain truck has, and every time it is the typical value, change it to 6 times that.

Is that the way you do it? Am I getting closer?
Posted on 2001-08-30 20:24:12 by Kenny
No you are not...

IF you NOP the shroud (well Fog Of War because we have no shroud only FOW) display code.... you can do such ONLY on your computer, you can not do it on your opponents computers, so your units will "see" somewhere on the map where they will not see in normal operations

But the other Clients WILL NOT SEE there so when THEY move YOUR UNITS on THEIR MAP they will not move them in the same way... a subtile difference will happen, (hehe a much bigger one if go change any "truck's" carry value) this subtile difference will make the game on your machine have a bad CRC while other 7 Clients have the good CRC....so you are disconected ;)

got the picture?
Posted on 2001-08-30 20:42:59 by BogdanOntanu
Dang ok! I'm gonna quit while I'm ahead then.
Posted on 2001-08-30 22:02:18 by Kenny
basicly does the user send out:
finish(x,y),unit id
or:
start(x,y), finsish(x,y),unit id

To all the players when a unit is moved? I can see a big problem with the second one since the players will recursivly go out of sinc when packets are lost or the sender sends two commands with a low delay and differn't location if there isn't strong thread control.
Posted on 2001-08-31 00:10:00 by -T-
I have told you befoare that our "net tech" is not depending on the number of units in the game, even if we have 20000 units in a game we will ONLY send 32 bytes of data from one client to another, EVEN IF ALL 20.000 UNITS MOVE/Atack/etc....

This should be enough info for you to understand that the above things with sending unit ID and X,Y are WRONG ..... at least for HE i mean

HE engine will be able (at the end) to sustain 1 to 2 seconds of total lag without speed loss... after 2 seconds of no data transfer a "please wait for : xxxx player" screen will stop all clinets .... and after that it will recover with no problem and/or drop the hacker or
the client that loosed its connection ...

I hope its FUN for you to understand how we can do it by yourself....if not i will guide you ;)...now its pretty COLD
Posted on 2001-08-31 22:58:04 by BogdanOntanu



Well you have bever head of a SERVER beeing Hacked? .... oops
And what will it be much easy to DoS a single machine or 8 separate machines? besides if you kill the server you kill all other 8 machines . One hit = 8 kills nice record.

I have seen it done so many times, and seen FPS games hacked so many times exactly because of prediction...like: you can never kill me because i am in another place then where you fire.... but i allways shoot exactly between your eyes ;) esp if you have a faster connection and i fake a slow one ;)

Thx man


True, I've never heard of a game server that has been hacked for cheating purposes? How would you do that. It would involve getting access to the server and modify its code while running. All cheats in FPS games today take advantage of faults that are present on the client side :)

DoS'ed/Crashed servers I've heard of. But in Half-Life those server bugs have been fixed. There are over 13000 servers on the net and I bet no more than 10 a day are subject to sucessful attacks.
Posted on 2001-09-10 01:42:51 by Zynaps
Let us not get into cracking/hacking "how to do" matters here ...

and since nobody seems to guess our network tech (its so simple)

i will expose it to you in HE Forum ;)
Posted on 2001-09-12 02:19:17 by BogdanOntanu
Okay, I now have a pretty good network engine but there is one problem left, how will I know how long time it took to send a message from a client to the server? This information is needed in order to calculate the position of the worm on the server. How do you do that?
Posted on 2001-10-26 08:57:38 by gliptic
When the server sends an ACK message back it also sends the time (timestamp in server time) when it received the message.

You will not know it the first time ...but after the second message you just have to make the difference from the K and K-1 timestamps and that is the time you search...

PS
divide by 2 because of return time, assume equal, or timestamp original message also :)
Posted on 2001-10-27 04:16:36 by BogdanOntanu
Doesn't the time of the two computers have to be syncronized, then? Is there anyone who have a demo or anything which uses this technique?
Posted on 2001-10-27 16:03:00 by gliptic
NO, you can not exactly syncro 2 PC... one in Australian and other in Romania, no way man...

you can just try to get them as close as posible with a PLL (Phase Locked Looop) like mechanism, but they will never be exactly in syncro ! and the difference will be as big as 2xlag between them on the internet...something from 300ms up to 1-3 minutes :)

to exactly syncro them one will need an atomic clock ....
Posted on 2001-10-28 17:34:04 by BogdanOntanu
And will not be possible at all, since packets can take different
routes. Sure, they will try to travel the optimal path, but the optimal
paths change every now and then. So all you can hope for is a
sorta resonable accuracy, when not dealing with b0rked ISPs,
high-latency connection (some cable ISPs), et cetera.

But it usually ends up working nicely anyway.
Posted on 2001-10-28 23:32:56 by f0dder
Yes, I understand why that isn't possible, but again, is there anyone who have any example code, demo, little game or anything which shows how this works?
Posted on 2001-10-29 03:48:35 by gliptic