As you know, GTV is an abandoned program that is used for viewing
Quake3 matches.  It has a number of issues that make it a pain:

* GTV is closed source and based off of an old quake3 source tree (IIRC 1.17).
* It's a separate executable so you have to find someone with a server
that allows for arbitrary files like a more expensive VPS.  Typical
game hosting companies only want you to run an approved game server
version.
* You cannot easily synchronize a shoutcast with GTV in its normal
usage.  For competition, it has to be delayed 3-5 minutes in order to
prevent cheating.  The only way to do this currently is to manually
synchronize it which doesn't work out well in practice.  UrT used to
have shoutcast years ago but have dropped it since.  It never worked
properly so you would either hear the commentator talking about things
that already happened or spoiling the surprises.
* Text chat has no concept of channels.  If you have one GTV server
with multiple games, they all share the same chat area.
* You can't really use it with standalone mods.  UrT has a "binary
edited version" just so it will work with it.
* It requires a human cameraman and that person may be cheating for
one of the participating clans.

If you were going to base it off of ioquake3, it would have these advantages:

* Always be in sync with ioquake3 so you get the latest features/bug fixes
* Allow for GTV to be integrated into ioquake3 rather than a separate
executable.
* Utilize the VoIP support in ioquake3 to allow for properly
synchronized voice chat.  As the VoIP is piggy backed, it would be
possible to buffer this data with the game data.
* Allow for new features such as the ability to constrain which other
games you receive text chats for
* Allow for standalone games based off of ioquake3 to officially use GTV
* Allow for VoIP on the GTV client side.  Maybe this wouldn't work out
in practice (trolls), but it is possible.
* Optionally allow for an automated cameraman.  I don't know if this
would work out in practice, but if the game server buffered the data
for GTV (optional 2nd mode), then the game server could have an
algorithm to pick which player to view.  Perhaps look at K/D ratio and
switch between the top players when they die.  Rotate it so some of
the middle and lower tier players are viewed for a while as well but
focus on the top players.  As the game server buffers the data, it
wouldn't be an issue with cheating.  Normally GTV buffers the data
since the cameraman needs to be able to switch between players.  An
automated method would allow anyone to view a game without needing a
cameraman.  It's typically a big ordeal getting GTV enabled on a match
since you need league admins or other trusted people doing it because
of the cheating aspect.

The original GTV was a standalone executable with a configuration
file.  Would it make sense for a server to essentially have a GTV
service with a separate configuration or even just new server config
vars?  A game server could export a GTV service that allows for a
restricted GTV client so it can only perform certain whitelisted
operations.  Maybe this is done through a separate password/cvar upon
connecting.  A second server would be needed to host the GTV clients
so it doesn't lag the game server.  There would be four modes of
operation for ioquake3: client, listening server, dedicated game
server and dedicated GTV server.  This would allow for people to
potentially shut down a pub for a while and host GTV clients without
requiring a separate executable.

I've been floating this idea around for a while and I find a lot of
people interested in the results, but no one interested in helping.
Could anyone with experience in ioquake3 provide guidance on whether
this is a good idea and any implementation suggestions or help/lead?
Does a standalone executable still make sense or could it be
integrated into an optional feature in an ioquake3 server?
_______________________________________________
ioquake3 mailing list
ioquake3@lists.ioquake.org
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.

Reply via email to