Quake3World.com Forums
     Programming Discussion
        Delta request from out of date entities.


Post new topicReply to topic
Login | Profile | | FAQ | Search | IRC




Print view Previous topic | Next topic 
Topic Starter Topic: Delta request from out of date entities.

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 04-14-2013 11:58 PM           Profile Send private message  E-mail  Edit post Reply with quote


what does it mean?
that's the only message i got logging my game before the Crash To Desktop.

^03^1X^0ISTENCE: Delta request from out of date entities.
^03^1X^0ISTENCE: Delta request from out of date entities.
^03^1X^0ISTENCE: Delta request from out of date entities.
^03^1X^0ISTENCE: Delta request from out of date entities.
^03^1X^0ISTENCE: Delta request from out of date entities.
----- Client Shutdown (Received signal 11) -----
RE_Shutdown( 1 )
-----------------------
----- Server Shutdown (Received signal 11) -----
^03^1X^0ISTENCE: Delta request from out of date entities.




Top
                 

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 04-15-2013 12:52 PM           Profile Send private message  E-mail  Edit post Reply with quote


If you need anykind of details please ask... i can't understand what this "Delta" is related. Searching around the code i got Delta only for secondary stuff (untouched in my mod). The game doesn't crash to desktop everytime, just using my "new" gameplay, so probably the trouble is inside the new code i wrote.




Top
                 

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 04-16-2013 01:00 PM           Profile Send private message  E-mail  Edit post Reply with quote


mhmmm any clue?




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44136
PostPosted: 04-16-2013 11:45 PM           Profile   Send private message  E-mail  Edit post Reply with quote


search the source code for the error text. Maybe that will give you a clue where the error is thrown.




Top
                 

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 04-17-2013 04:04 AM           Profile Send private message  E-mail  Edit post Reply with quote


i find it in sv_snapshot.c

Code:
/*
==================
SV_WriteSnapshotToClient
==================
*/
static void SV_WriteSnapshotToClient( client_t *client, msg_t *msg ) {
   clientSnapshot_t   *frame, *oldframe;
   int               lastframe;
   int               i;
   int               snapFlags;

   // this is the snapshot we are creating
   frame = &client->frames[ client->netchan.outgoingSequence & PACKET_MASK ];

   // try to use a previous frame as the source for delta compressing the snapshot
   if ( client->deltaMessage <= 0 || client->state != CS_ACTIVE ) {
      // client is asking for a retransmit
      oldframe = NULL;
      lastframe = 0;
   } else if ( client->netchan.outgoingSequence - client->deltaMessage
      >= (PACKET_BACKUP - 3) ) {
      // client hasn't gotten a good message through in a long time
      Com_DPrintf ("%s: Delta request from out of date packet.\n", client->name);
      oldframe = NULL;
      lastframe = 0;
   } else {
      // we have a valid snapshot to delta from
      oldframe = &client->frames[ client->deltaMessage & PACKET_MASK ];
      lastframe = client->netchan.outgoingSequence - client->deltaMessage;

      // the snapshot's entities may still have rolled off the buffer, though
      if ( oldframe->first_entity <= svs.nextSnapshotEntities - svs.numSnapshotEntities ) {
         Com_DPrintf ("%s:Delta request from out of date entities.\n", client->name);
         oldframe = NULL;
         lastframe = 0;
      }
   }


O_o the file sv_snapshot.c is untouched. mhmmmm




Top
                 

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 04-18-2013 05:59 AM           Profile Send private message  E-mail  Edit post Reply with quote


i'm checking all my strings correlated to these two gameplay modes (the game crash after minutes only if i play one of this gameplay)

Some code (help me to find what i did wrong):
g_items.c

in void RespawnItem i added
Code:
if ( ent->item->giType == IT_POWERUP ) {
      // play powerup spawn sound to all clients
      gentity_t   *te;

      if (g_gametype.integer == GT_CTF2 || g_gametype.integer == GT_TEAM2 ) {
         return;
         }


inside the void touch_items
Code:
   if ( g_gametype.integer == GT_CTF2 || g_gametype.integer == GT_TEAM2 ) {
      if (ent->item->giType != IT_TEAM)
         return;
      }


inside void finishspawningitems
the last lines
Code:
   if ( ent->item->giType == IT_POWERUP ) {
      float   respawn;
      
      if (g_gametype.integer == GT_CTF2 || g_gametype.integer == GT_TEAM2) {
         return;
         }
      else {
      respawn = 45 + crandom() * 15;
      ent->s.eFlags |= EF_NODRAW;
      ent->r.contents = 0;
      ent->nextthink = level.time + respawn * 1000;
      ent->think = RespawnItem;
      return;
      }


void ClearRegisteredItems
Code:
   if( g_gametype.integer == GT_CTF2 ){
      RegisterItem( BG_FindItemForWeapon( WP_RAILGUN ) );
      }
   
   if( g_gametype.integer == GT_TEAM2 ) {
      RegisterItem( BG_FindItemForWeapon( WP_ROCKET_LAUNCHER ) );
      RegisterItem( BG_FindItemForWeapon( WP_GRENADE_LAUNCHER ) );
      RegisterItem( BG_FindItemForWeapon( WP_PLASMAGUN ) );
      RegisterItem( BG_FindItemForWeapon( WP_LIGHTNING ) );
      RegisterItem( BG_FindItemForWeapon( WP_RAILGUN ) );
      RegisterItem( BG_FindItemForWeapon( WP_SHOTGUN ) );
      }


Now, the one i think it's the worste one...
on void G_SpawnItem:
Code:
   if ( g_gametype.integer == GT_TEAM2 || g_gametype.integer == GT_CTF2) {                          
      RegisterItem( item );
      
        if ( G_ItemDisabled(item) )
            return;
      
      ent->item = item;
      
      if ( item->giType != IT_TEAM ) {
         ent->nextthink = level.time + FRAMETIME * 2;
         ent->think = FinishSpawningItem;

         ent->physicsBounce = 0.50;         // items are bouncy

         ent->s.eFlags |= EF_NODRAW;
         }
      if ( item->giType == IT_POWERUP ) {
         return;
         }
      }
      
   RegisterItem( item );


I Think that's here the main problem. But still don't understand the SV_WriteSnapshotToClient and when he returns the Delta Error. Like when it doesn't clear the buffer?

// the snapshot's entities may still have rolled off the buffer, though
if ( oldframe->first_entity <= svs.nextSnapshotEntities - svs.numSnapshotEntities ) {
Com_DPrintf ("%s:Delta request from out of date entities.\n", client->name);
oldframe = NULL;
lastframe = 0;
}

any suggestion's appreciated.




Top
                 

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 04-24-2013 01:56 AM           Profile Send private message  E-mail  Edit post Reply with quote


the code looks good or i made some kind of mistake?




Top
                 

Insane Quaker
Insane Quaker
Joined: 05 Mar 2010
Posts: 384
PostPosted: 04-25-2013 11:16 AM           Profile Send private message  E-mail  Edit post Reply with quote


If you can't fix it you're welcome to post the entire code/PM the code to me and I can try to spot the problem. No promises though...




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44136
PostPosted: 04-26-2013 12:41 AM           Profile   Send private message  E-mail  Edit post Reply with quote


Excuse me if I underestimate you, but reading your messages it sounds like you don't know what a "delta" is? Maybe you already do, but reading this might give some background information and possibly even provide you with some insight into what could be causing this problem.




Top
                 

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 04-26-2013 02:04 AM           Profile Send private message  E-mail  Edit post Reply with quote


Naah, its the right way understimate me. Im not a programmer so extra infos in order to get a background about how things works good and well accepted. For now the problem doesnt happear anymore but i still need to verify it inside a long gameplay session.
Ty. I will verify it again and i will let you know




Top
                 

Warrior
Warrior
Joined: 13 May 2012
Posts: 90
PostPosted: 05-04-2013 02:52 PM           Profile Send private message  E-mail  Edit post Reply with quote


Dear friends. I debugged and edited the code a little bit in order to avoid this problem...so i restricted the circle every inch i can.
And now...what i discover.... It's just a map the main problem of it.
A lot of you will know it for sure: it's Vast and Furious (the version with also TA entities).
Now with my unskilled mapmaker knowledge i need to understand what create the CTD (the map crash only in instagib mode).
And i will take the moment also to ask a thing:
strangely the railgun trail disappear instantly when i shoot outside the map. So i can't see the railtrail etc...
where i need to seek and correct this strange behaviour in order to let the railtrail ever visible?




Top
                 
Quake3World.com | Forum Index | Programming Discussion


Post new topic Reply to topic


cron
Quake3World.com
© ZeniMax. Zenimax, QUAKE III ARENA, Id Software and associated trademarks are trademarks of the ZeniMax group of companies. All rights reserved.
This is an unofficial fan website without any affiliation with or endorsement by ZeniMax.
All views and opinions expressed are those of the author.