Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Revisions: Issue #1777 All Revisions ] Back to Issue ]
Summary 0001777: Serverside demos
Revision 2014-04-17 11:42 by Dusk
Description So I've been doodling about the possibility of serverside demos. I still want to do them and here's my thoughts about it

The serverside demo will largely be like the clientside demo, with a few differences. It will begin when the first player enters the server and ends when the last player leaves. The server doesn't need to authenticate itself (duh) so the demo just starts off with a snapshot of the level followed by action.

The bulk of the demo will consist of every server command that is sent that does not have SVCF_ONLYTHISCLIENT set. The gist of the idea is to have an 'imaginary client' 'connected', like a big brother really, thus whatever is broadcasted needs to be recorded. amirite

The demo needs a constant consoleplayer, which the server lacks. Thus, the last player slot, i.e. index 63, will be reserved for use as the serverside-demo consoleplayer. This means sv_maxplayers will be capped to 63 maximum while the server records a demo. Not even the 'localhost hack' thing is to be able to get the 64th slot.

The userinfo of the consoleplayer I haven't thought out yet, but not a lot matters other than the name. I'll probably use "<server>" for the purpose as it's reserved like that. The consoleplayer will spectate at all times and will just sit and idle.

The file extension of the demo will be ".svd" to distinguish it from clientside demos, however the format is the same and the extension only serves for quick identification. For the actual distinguishment of the demo code-wise, I'll add a byte into the header to dictate whether it's a serverside or a clientside demo. zcinema will be updated accordingly.
Revision 2014-04-10 19:10 by Dusk
Description So I've been doodling about the possibility of serverside demos. I still want to do them and here's my thoughts about it:

-- APOCALYPSE IMPLEMENTATION HOW --

The serverside demo will largely be like the clientside demo, with a few differences. It will begin when the first player enters the server and ends when the last player leaves. The server doesn't need to authenticate itself (duh) so the demo just starts off with a snapshot of the level followed by action.

The bulk of the demo will consist of every server command that is sent that does not have SVCF_ONLYTHISCLIENT set. The gist of the idea is to have an 'imaginary client' 'connected', like a big brother really, thus whatever is broadcasted needs to be recorded. amirite

The demo needs a constant consoleplayer, which the server lacks. Thus, the last player slot, i.e. index 63, will be reserved for use as the serverside-demo consoleplayer. This means sv_maxplayers will be capped to 63 maximum while the server records a demo. Not even the 'localhost hack' thing is to be able to get the 64th slot.

The userinfo of the consoleplayer I haven't thought out yet, but not a lot matters other than the name. I'll probably use "<server>" for the purpose as it's reserved like that. The consoleplayer will spectate at all times and will just sit and idle.

The file extension of the demo will be ".svd" to distinguish it from clientside demos, however the format is the same and the extension only serves for quick identification. For the actual distinguishment of the demo code-wise, I'll add a byte into the header to dictate whether it's a serverside or a clientside demo. zcinema will be updated accordingly.

-- IMPLEMENTATION HOW END --
Revision 2014-04-10 19:08 by Dusk
Description So I've been doodling about the possibility of serverside demos. I still want to do them and here's my proposal about it:

-- APOCALYPSE IMPLEMENTATION HOW --

The serverside demo will largely be like the clientside demo, with a few differences. It will begin when the first player enters the server and ends when the last player leaves. The server doesn't need to authenticate itself (duh) so the demo just starts off with a snapshot of the level followed by action.

The bulk of the demo will consist of every server command that is sent that does not have SVCF_ONLYTHISCLIENT set. The gist of the idea is to have an 'imaginary client' 'connected', like a big brother really, thus whatever is broadcasted needs to be recorded. amirite

The demo needs a constant consoleplayer, which the server lacks. Thus, the last player slot, i.e. 0000063, will be reserved for use as the serverside-demo consoleplayer. This means sv_maxplayers will be capped to 63 maximum while the server records a demo. Not even the 'localhost hack' thing is to be able to get the 64th slot.

The userinfo of the consoleplayer I haven't thought out yet, but not a lot matters other than the name. I'll probably use "<server>" for the purpose as it's reserved like that. The consoleplayer will spectate at all times and will just sit and idle.

The file extension of the demo will be ".svd" to distinguish it from clientside demos, however the format is the same and the extension only serves for quick identification. For the actual distinguishment of the demo code-wise, I'll add a byte into the header to dictate whether it's a serverside or a clientside demo. zcinema will be updated accordingly.

-- IMPLEMENTATION HOW END --






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker