Urban Terror Forums: Urban Terror 4.2 RC on LAN 2k12 in Paris - Urban Terror Forums

Jump to content

 Login | Register 
Advertisement
  • (22 Pages)
  • +
  • « First
  • 13
  • 14
  • 15
  • 16
  • 17
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Urban Terror 4.2 RC on LAN 2k12 in Paris Rate Topic: ***** 3 Votes

#141 User is offline   Divinity Icon

  • Account: divinity
  • Main tag: /eVo/
  • Joined: 01-March 10
  • Posts: 252

Posted 20 June 2012 - 03:12 PM

I confess I don't know a great deal about the internals of a demo, but I think I have a general idea that it's essentially a stream of server snaps that are sent to the client to inform the client about the current game status from that client's point of view. Essentially a packet stream.

If this is indeed what it is, it would seem that reversing the stream is all that would be needed to "rewind" to some previous point in the stream. And that's if you wanted visual rewind whereas if you could have a stack that lets you flip back to a previous "game state" as the demo has reported in the stream, then you could flip back some static amount of points in the stream.

If I'm way off, then please clear up my confusion.

#142 User is offline   Rylius Icon

  • Account: rylius
  • Main tag: CMM|
  • Country:
  • Joined: 28-February 10
  • Posts: 446

Posted 20 June 2012 - 03:35 PM

A demo is the network stream just dumped into a file, you're right there.
Playing a demo will just "simulate" a remote server by feeding the stream into the client again.

This does NOT work in reverse though; the game is simply not made to do that. (And it's crazy work to implement)

#143 User is offline   Divinity Icon

  • Account: divinity
  • Main tag: /eVo/
  • Joined: 01-March 10
  • Posts: 252

Posted 20 June 2012 - 04:22 PM

If it's true that it's a network stream, why wouldn't feeding the stream in reverse work? Why would the game care if it thought the order it was receiving was the right order?

But even if you don't reverse the stream to give fluid rewind, why couldn't you implement an internal stack for demos so that if you "rewind" to some previous spot, that it couldn't pick up where it was at that moment and continue with the stream? It should be functionally similar to what happens if you have a brief network outage and suddenly you skip ahead a few seconds and suddenly you're dead. The client didn't know or care necessarily what happened in those 5 seconds (for example) and has no way to recover the past. It only knows the present.

#144 User is offline   Rylius Icon

  • Account: rylius
  • Main tag: CMM|
  • Country:
  • Joined: 28-February 10
  • Posts: 446

Posted 20 June 2012 - 04:38 PM

id Tech 3 networking is mostly based on events. When someone shoots, the server just sends "client x has fired a shoot" to all clients, nothing else. The clients fire the shot locally based on their known position/rotation of that client. Undoing such an event is not possible unless you save the complete state of the game each and every frame, which will bring every computer to its knees in a matter of seconds (might make it a minute or two if you got enough RAM). Might be possible to only save only changed values.

All the client does is interpret the events, apply position/rotation changes and interpolate everything so it looks smooth.
Telling a client to rewind basically is "I told you to move that box over there but now put it back where it was before; but I forgot where it was".

I'm not saying you can't compress stuff properly to lower the memory usage for saving or that it is impossible to revert state updates, I'm saying it is impossible *right now* and would need a LOT of time - time which is needed for other, more important parts of the game.

If it was easy it would exist already. :)

#145 User is offline   Divinity Icon

  • Account: divinity
  • Main tag: /eVo/
  • Joined: 01-March 10
  • Posts: 252

Posted 20 June 2012 - 04:49 PM

If that's the case, keep a state tracker for certain points in the demo. It shouldn't need to be all inclusive -- just every so often like every "15 seconds" or whatever proper metric one could apply.

If someone wants to rewind, then the internal demo system tells the client to move everything to where it was at that moment and begins the stream back at that point.

bullet_loaderAdvertisement

#146 User is offline   Divinity Icon

  • Account: divinity
  • Main tag: /eVo/
  • Joined: 01-March 10
  • Posts: 252

Posted 20 June 2012 - 04:55 PM

If necessary, have a pre-parser that will convert a demo into a larger file that supports this which the client could then read. This would assume, of course, that the client wouldn't have to load the entire file in memory at the same time to function.

I'm not suggesting it should be simple, I'm just suggesting that it should be doable and yes -- I know there are other more pressing issues at hand. That's fine. Make it an update for later.

This post has been edited by Divinity: 20 June 2012 - 04:56 PM


#147 User is offline   phd Icon

  • Account: phd
  • Country:
  • Joined: 02-April 11
  • Posts: 131

Posted 20 June 2012 - 08:21 PM

Recording of a demo starts when you tell it to start.
Does it fill some kind of "header" with the current state of the whole map, and then continues with updates?

I guess, that is the case and I guess that is why we cannot go back or start the demo at a different point.
...

There are probably many ways to do it, but one easy implementation would be :
- Enable the DEMO RECORDING while you are watching a DEMO. When analyzing a demo for possible cheats, you can identify time stamps of certain events. Then, you wanna look at them carefully. Ideally, you would look at them 3, 5 or even 10 times. But if the demo is 25 minutes and the events are spread along, at some point, most of us just give up and say, "inconclusive!". If we where able to RECORD while watching a demo, we would be able to extract the "events" and look only at those special moments many times. This would help server and league admins process demos.
Rewind (with or without a flow) would be better, but anything that can help would be appreciated.

(Maybe there should be a separate thread for that.)

A good anti-cheat system should include many different features. Having a good demo reviewing system should be part of it.

#148 User is offline   Father Goose Icon

  • Account: fathergoose
  • Main tag: |WC|
  • Country:
  • Joined: 08-March 10
  • Posts: 26

Posted 27 June 2012 - 09:42 AM

This changelog just looks fantastic. Good job guys!

#149 User is offline   Tizz Icon

  • Account: tizz
  • Main tag: |it|
  • Country:
  • Joined: 28-February 10
  • Posts: 612

Posted 27 June 2012 - 10:58 AM

View PostFather Goose, on 27 June 2012 - 09:42 AM, said:

This changelog just looks fantastic. Good job guys!

Actually much more than you think. #teasing

** takes a look at Barbatos's twitter page **

#150 User is offline   Divinity Icon

  • Account: divinity
  • Main tag: /eVo/
  • Joined: 01-March 10
  • Posts: 252

Posted 27 June 2012 - 03:50 PM

I don't think anyone has asked this, but if you are in fact intending on including auth functionality (presumably the auth system formerly known as passport) are you changing the licensing on this version or are you intending on essentially providing an API such that custom clients and server builds could tap into the auth functionality?

  • (22 Pages)
  • +
  • « First
  • 13
  • 14
  • 15
  • 16
  • 17
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users

Advertisement


Copyright © 1999-2024 Frozensand Games Limited  |  All rights reserved  |  Urban Terror™ and FrozenSand™ are trademarks of Frozensand Games Limited

Frozensand Games is a Limited company registered in England and Wales. Company Reg No: 10343942