[ENet-discuss] simulate lag

Martin Sherburn spacedude at konggame.co.uk
Mon Jun 9 12:16:24 PDT 2008


I did it like this, hope this helps:

    float m_FakeLag = 200.0;

    while (m_pHost && enet_host_service(m_pHost, &event, 0) > 0)
    {
            switch (event.type)
            {
            case ENET_EVENT_TYPE_CONNECT:
                OnConnect(event.peer);
                break;

            case ENET_EVENT_TYPE_RECEIVE:
                if (m_FakeLag)
                {
                    STORED_EVENTS StoredEvent;
                    StoredEvent.Event = event;
                    StoredEvent.Time = GAME->GetGameTime();
                    m_StoredEvents.push_back(StoredEvent);
                }
                else
                {
                    ProcessPacket(event.packet, event.peer);
                    enet_packet_destroy(event.packet);
                }
                break;
               
            case ENET_EVENT_TYPE_DISCONNECT:
                OnDisconnect(event.peer);
                break;
            }
    }

    Real Time = GAME->GetGameTime();
    list<STORED_EVENTS>::iterator itEvent = m_StoredEvents.begin();
    while (itEvent != m_StoredEvents.end() && itEvent->Time < 
Time-m_FakeLag)
    {
        ProcessPacket(itEvent->Event.packet, itEvent->Event.peer);
        enet_packet_destroy(itEvent->Event.packet);
        itEvent = m_StoredEvents.erase(itEvent);
    }

Martin.


Alan Witkowski wrote:
> What's the easiest way to simulate/introduce lag with enet?  All i 
> want to do is basically make it so packets don't get to the receiving 
> side until say 100-200 ms after they get sent. Obviously this is for 
> testing internet conditions locally. Any easy way of doing this?
>
> Thanks
> _______________________________________________
> ENet-discuss mailing list
> ENet-discuss at cubik.org
> http://lists.cubik.org/mailman/listinfo/enet-discuss



More information about the ENet-discuss mailing list