From vincent at cojot.name Sat Jun 2 13:57:34 2007 From: vincent at cojot.name (vincent at cojot.name) Date: Sat, 2 Jun 2007 19:57:34 +0200 (CEST) Subject: [quake3-commits] r1095 - trunk In-Reply-To: <20070602152630.11505.qmail@icculus.org> References: <20070602152630.11505.qmail@icculus.org> Message-ID: On Sat, 2 Jun 2007, DONOTREPLY at icculus.org wrote: > * Assumptions are already made that the compiler used is GCC, so it seems silly > to make per-platform exceptions in order to make the IS_GCC test work. Instead > just rely on $(CC) being set by the system (i.e. make) and it being GCC. If > this causes problems on any platforms please discuss it on the mailing list > or IRC Hi Tim, I cannot log onto irc at this time so I am posting here. I agree that per-platform defs are silly but the trouble with SunOS is this: The only 'cc' on SunOS is /usr/ucb/cc (not in the PATH by default) /usr/ucb/cc exists by default and is just a shell script that points to /opt/SUNWspro/bin/cc (Sun Compiler) if it is installer, otherwise it complains that no compiler is installed. GCC (even the sun-provided version), when installed, is just 'gcc': root at balifor:[~][71]# uname -a SunOS balifor 5.10 Generic_125101-08 i86pc i386 i86pc root at balifor:[~][72]# which cc no cc in /sbin /usr/sbin /usr/sfw/sbin /usr/bin /usr/ccs/bin /usr/dt/bin /usr/openwin/bin /usr/sfw/bin /opt/sfw/bin /usr/local/sbin /usr/local/bin root at balifor:[~][70]# /usr/ucb/cc /usr/ucb/cc: language optional software package not installed However, even the Sun-provided GNU software (under /usr/sfw) points to 'cc'by way of 'gmake' setting CC as 'cc'. root at balifor:[~][74]# which gcc /usr/sfw/bin/gcc root at balifor:[~][75]# which gmake /usr/sfw/bin/gmake root at balifor:[~][73]# gmake -p /dev/null |grep ^CC CC = cc Therefore, unless you provide a global CC=gcc in the makefile, the above hack is really my only way to make the makefile point to GCC (I am unsure if the Sun Compiler will be able to compiler ioquake3 at this time). Please consider reverting 1095. Thanks, Vincent From tim at ngus.net Sat Jun 2 14:10:23 2007 From: tim at ngus.net (Tim Angus) Date: Sat, 2 Jun 2007 19:10:23 +0100 Subject: r1095 - trunk In-Reply-To: References: Message-ID: <20070602191023.e274e4b3.tim@ngus.net> On Sat, 2 Jun 2007 19:57:34 +0200 (CEST) vincent at cojot.name wrote: > Therefore, unless you provide a global CC=gcc in the makefile, the > above hack is really my only way to make the makefile point to GCC (I > am unsure if the Sun Compiler will be able to compiler ioquake3 at > this time). I suggest you add "CC=gcc" to the "ifeq ($(PLATFORM),sunos)" section then. It's certainly a better place than at the top in the non-platform dependent section. From vincent at cojot.name Sat Jun 2 14:20:47 2007 From: vincent at cojot.name (vincent at cojot.name) Date: Sat, 2 Jun 2007 20:20:47 +0200 (CEST) Subject: [quake3] Re: r1095 - trunk In-Reply-To: <20070602191023.e274e4b3.tim@ngus.net> References: <20070602191023.e274e4b3.tim@ngus.net> Message-ID: On Sat, 2 Jun 2007, Tim Angus wrote: > On Sat, 2 Jun 2007 19:57:34 +0200 (CEST) vincent at cojot.name wrote: >> Therefore, unless you provide a global CC=gcc in the makefile, the >> above hack is really my only way to make the makefile point to GCC (I >> am unsure if the Sun Compiler will be able to compiler ioquake3 at >> this time). > > I suggest you add "CC=gcc" to the "ifeq ($(PLATFORM),sunos)" section > then. It's certainly a better place than at the top in the non-platform > dependent section. Ok, let me test that. I was unsure if that would have worked. Thanks Tim, Vincent From noisyb at gmx.net Fri Jun 8 10:21:03 2007 From: noisyb at gmx.net (Dirk) Date: Fri, 08 Jun 2007 16:21:03 +0200 Subject: QVM vs. shared libs Message-ID: <466965CF.6050409@gmx.net> ok.. I've got some questions... 1) What is the difference between using QVM and those three shared libs? 2) Why do have the sahred libs in the release have different sizes (missionpack and baseq3)? 3) Can/Should I use the shared libs in baseq3 for stvoy or MODs? 4) When I use the shared libs of OpenArena in baseoa/ and use std ioquake3 to run baseoa the Menu is red and other stuff is broken? 5) How can I figure whioch shared libs belong to which MOD? 6) Should I rather delete ALL shared libs and be happy w/o them? That would help me a lot! Dirk From linuxmanmikec at gmail.com Fri Jun 8 11:46:31 2007 From: linuxmanmikec at gmail.com (LinuxManMikeC) Date: Fri, 8 Jun 2007 11:46:31 -0400 Subject: [quake3] QVM vs. shared libs In-Reply-To: <466965CF.6050409@gmx.net> References: <466965CF.6050409@gmx.net> Message-ID: <4561ec380706080846w53a2a782t69ce4d76c117eb05@mail.gmail.com> I'm no expert in this area, but answering what I know. On 6/8/07, Dirk wrote: > ok.. I've got some questions... > > 1) What is the difference between using QVM and those three shared libs? > QVM is bytecode that needs a little interpreting done at runtime. The shared libraries are compiled to native machine code so they are faster. The QVM is more secure because a mod won't be able to do all kinds of voodoo to break out of the game's memory space. Also, the shared libs have to be recompiled for each architecture a mod will run on, so QVM is easier. And with share libs you can do anything you can imagine with your mod, with QVM you are limited to what the facilities the game provides. > 2) Why do have the sahred libs in the release have different sizes > (missionpack and baseq3)? > Um, because they have different code. The QVM's are probably different sizes too. If there is a drastic size difference then one is either corrupted or is malicious code. > 3) Can/Should I use the shared libs in baseq3 for stvoy or MODs? > When you are using a mod you don't use any QVM or lib from the base game. Use whatever comes with the mod. > 4) When I use the shared libs of OpenArena in baseoa/ and use std > ioquake3 to run baseoa the Menu is red and other stuff is broken? > Well then it apparently isn't compatible. Don't do that. ioq3 is meant to be compatible with original quake 3, OpenAreana is a project to make a quake 3 game with all open content. I guess they changed some code to where things aren't very compatible anymore. > 5) How can I figure whioch shared libs belong to which MOD? > As far as I know, the libs should be in each mod's directory, If they aren't there is a problem. > 6) Should I rather delete ALL shared libs and be happy w/o them? > If you have shared libs with mods make sure that they aren't required by the mod first. As I mentioned there are things you can do with shared libs that you can't do with QVM unless you change the game engine. Check that you have a QVM for a particular mod, and if so, its safe to delete. I personally would just leave em. > > That would help me a lot! > > Dirk > From noisyb at gmx.net Fri Jun 8 13:20:21 2007 From: noisyb at gmx.net (Dirk) Date: Fri, 08 Jun 2007 19:20:21 +0200 Subject: [quake3] QVM vs. shared libs In-Reply-To: <4561ec380706080846w53a2a782t69ce4d76c117eb05@mail.gmail.com> References: <466965CF.6050409@gmx.net> <4561ec380706080846w53a2a782t69ce4d76c117eb05@mail.gmail.com> Message-ID: <46698FD5.7030409@gmx.net> Thanks for your answer... One last question: Is the IP address for the master server also stored in these files? Because some Mods like UrbanTerror or WesternQuake seem to use the standard Q3 master server when openarena obviously has it's own... Or... How do I configure which master server to use? Dirk LinuxManMikeC wrote: > I'm no expert in this area, but answering what I know. > > On 6/8/07, Dirk wrote: >> ok.. I've got some questions... >> >> 1) What is the difference between using QVM and those three shared libs? >> > > QVM is bytecode that needs a little interpreting done at runtime. The > shared libraries are compiled to native machine code so they are > faster. The QVM is more secure because a mod won't be able to do all > kinds of voodoo to break out of the game's memory space. Also, the > shared libs have to be recompiled for each architecture a mod will run > on, so QVM is easier. And with share libs you can do anything you can > imagine with your mod, with QVM you are limited to what the facilities > the game provides. > >> 2) Why do have the sahred libs in the release have different sizes >> (missionpack and baseq3)? >> > > Um, because they have different code. The QVM's are probably > different sizes too. If there is a drastic size difference then one > is either corrupted or is malicious code. > >> 3) Can/Should I use the shared libs in baseq3 for stvoy or MODs? >> > > When you are using a mod you don't use any QVM or lib from the base > game. Use whatever comes with the mod. > >> 4) When I use the shared libs of OpenArena in baseoa/ and use std >> ioquake3 to run baseoa the Menu is red and other stuff is broken? >> > > Well then it apparently isn't compatible. Don't do that. ioq3 is > meant to be compatible with original quake 3, OpenAreana is a project > to make a quake 3 game with all open content. I guess they changed > some code to where things aren't very compatible anymore. > >> 5) How can I figure whioch shared libs belong to which MOD? >> > > As far as I know, the libs should be in each mod's directory, If they > aren't there is a problem. > >> 6) Should I rather delete ALL shared libs and be happy w/o them? >> > > If you have shared libs with mods make sure that they aren't required > by the mod first. As I mentioned there are things you can do with > shared libs that you can't do with QVM unless you change the game > engine. Check that you have a QVM for a particular mod, and if so, > its safe to delete. I personally would just leave em. > >> >> That would help me a lot! >> >> Dirk >> > > --- > To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org > Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 > > From kloppenburg at snt.utwente.nl Fri Jun 8 13:45:03 2007 From: kloppenburg at snt.utwente.nl (Erik Kloppenburg) Date: Fri, 08 Jun 2007 19:45:03 +0200 Subject: [quake3] QVM vs. shared libs In-Reply-To: <46698FD5.7030409@gmx.net> References: <466965CF.6050409@gmx.net> <4561ec380706080846w53a2a782t69ce4d76c117eb05@mail.gmail.com> <46698FD5.7030409@gmx.net> Message-ID: <4669959F.6090106@snt.utwente.nl> The masterserver's (the one that is used for the ingame browser) hostname is hardcoded in the executable. In ioUrbanTerror, I added the cvar cl_master, which lets you set which master to use (defaulting to master.urbanterror.net). The masterservers that a server reports to can be set using sv_master1 through sv_master5. Greetz, Erik Dirk wrote: > Thanks for your answer... > > One last question: Is the IP address for the master server also stored > in these files? > > Because some Mods like UrbanTerror or WesternQuake seem to use the > standard Q3 master server when openarena obviously has it's own... > > Or... How do I configure which master server to use? > > > Dirk > > > LinuxManMikeC wrote: >> I'm no expert in this area, but answering what I know. >> >> On 6/8/07, Dirk wrote: >>> ok.. I've got some questions... >>> >>> 1) What is the difference between using QVM and those three shared libs? >>> >> QVM is bytecode that needs a little interpreting done at runtime. The >> shared libraries are compiled to native machine code so they are >> faster. The QVM is more secure because a mod won't be able to do all >> kinds of voodoo to break out of the game's memory space. Also, the >> shared libs have to be recompiled for each architecture a mod will run >> on, so QVM is easier. And with share libs you can do anything you can >> imagine with your mod, with QVM you are limited to what the facilities >> the game provides. >> >>> 2) Why do have the sahred libs in the release have different sizes >>> (missionpack and baseq3)? >>> >> Um, because they have different code. The QVM's are probably >> different sizes too. If there is a drastic size difference then one >> is either corrupted or is malicious code. >> >>> 3) Can/Should I use the shared libs in baseq3 for stvoy or MODs? >>> >> When you are using a mod you don't use any QVM or lib from the base >> game. Use whatever comes with the mod. >> >>> 4) When I use the shared libs of OpenArena in baseoa/ and use std >>> ioquake3 to run baseoa the Menu is red and other stuff is broken? >>> >> Well then it apparently isn't compatible. Don't do that. ioq3 is >> meant to be compatible with original quake 3, OpenAreana is a project >> to make a quake 3 game with all open content. I guess they changed >> some code to where things aren't very compatible anymore. >> >>> 5) How can I figure whioch shared libs belong to which MOD? >>> >> As far as I know, the libs should be in each mod's directory, If they >> aren't there is a problem. >> >>> 6) Should I rather delete ALL shared libs and be happy w/o them? >>> >> If you have shared libs with mods make sure that they aren't required >> by the mod first. As I mentioned there are things you can do with >> shared libs that you can't do with QVM unless you change the game >> engine. Check that you have a QVM for a particular mod, and if so, >> its safe to delete. I personally would just leave em. >> >>> That would help me a lot! >>> >>> Dirk >>> >> --- >> To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org >> Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 >> >> > > > --- > To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org > Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 > > > From 911freak at gmail.com Fri Jun 8 14:08:41 2007 From: 911freak at gmail.com (Ahmed MANSOUR) Date: Fri, 8 Jun 2007 18:08:41 +0000 Subject: About adding (VoIP) voice chat support Message-ID: Hi guys, For quite some time i have been wondering if it is possible (and useful) to add voice chat support to the engine. I think it would be a great enhancement to the game to add VoIP to the client and server code, because I think it is more pratical to to speak than to chat using keyboard while playing. And it won't break the backward compatibility, and we can use some GPL'd VoIP soft code like OpenWengo in the game to do that. What do you think? -------------- next part -------------- An HTML attachment was scrubbed... URL: From jorgepblank at gmail.com Fri Jun 8 14:20:51 2007 From: jorgepblank at gmail.com (=?ISO-8859-1?Q?Jorge_Pe=F1a?=) Date: Fri, 8 Jun 2007 11:20:51 -0700 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: References: Message-ID: <28406b400706081120m5f13f469u1e31e711322614a@mail.gmail.com> I've thought and talked about this before and people only said it wouldn't be worth it. It'd be more practical to just use TeamSpeak or Ventrilo. I forgot the specific reasons, but if you go to quakesrc.org you could search for 'VOIP' or 'Voice Chat' in the Quake 3 section, I and others have posted about it. Hope that helps. On 6/8/07, Ahmed MANSOUR <911freak at gmail.com> wrote: > > Hi guys, > For quite some time i have been wondering if it is possible (and useful) > to add voice chat support to the engine. > I think it would be a great enhancement to the game to add VoIP to the > client and server code, because I think it is more pratical to > to speak than to chat using keyboard while playing. And it won't break the > backward compatibility, and we can use some GPL'd VoIP soft code like > OpenWengo in the game to do that. > What do you think? > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bnoordhuis at gmail.com Fri Jun 8 16:04:24 2007 From: bnoordhuis at gmail.com (Ben Noordhuis) Date: Fri, 8 Jun 2007 22:04:24 +0200 Subject: [quake3] QVM vs. shared libs In-Reply-To: <4561ec380706080846w53a2a782t69ce4d76c117eb05@mail.gmail.com> References: <466965CF.6050409@gmx.net> <4561ec380706080846w53a2a782t69ce4d76c117eb05@mail.gmail.com> Message-ID: <54885e060706081304q5245fc4y7489ba394d30bd23@mail.gmail.com> On 6/8/07, LinuxManMikeC wrote: > QVM is bytecode that needs a little interpreting done at runtime. > [...] The QVM is more secure because a mod won't be able to do all > kinds of voodoo to break out of the game's memory space. Better cross-platform portability? Yes. More secure? Well, no. The QVMs are JIT-compiled to native code on most architectures. A shell code snippet like the one below will execute without a hitch on 32 and 64 bits Linux. /* syscall exit() */ static void die(void) { unsigned char shellcode[] = { 0x31, 0xC0, /* xorl %eax, %eax */ 0x40, /* incl %eax */ 0x89, 0xC3, /* movl %eax, %ebx */ 0xCD, 0x80 /* int $0x80 */ }; ((void (*)(void))shellcode)(); } From linuxmanmikec at gmail.com Fri Jun 8 17:58:19 2007 From: linuxmanmikec at gmail.com (LinuxManMikeC) Date: Fri, 8 Jun 2007 17:58:19 -0400 Subject: [quake3] QVM vs. shared libs In-Reply-To: <54885e060706081304q5245fc4y7489ba394d30bd23@mail.gmail.com> References: <466965CF.6050409@gmx.net> <4561ec380706080846w53a2a782t69ce4d76c117eb05@mail.gmail.com> <54885e060706081304q5245fc4y7489ba394d30bd23@mail.gmail.com> Message-ID: <4561ec380706081458j58b16cbcp8a8851cc68196515@mail.gmail.com> On 6/8/07, Ben Noordhuis wrote: > On 6/8/07, LinuxManMikeC wrote: > > QVM is bytecode that needs a little interpreting done at runtime. > > [...] The QVM is more secure because a mod won't be able to do all > > kinds of voodoo to break out of the game's memory space. > > Better cross-platform portability? Yes. More secure? Well, no. The > QVMs are JIT-compiled to native code on most architectures. A shell > code snippet like the one below will execute without a hitch on 32 and > 64 bits Linux. > > /* syscall exit() */ > static void die(void) { > unsigned char shellcode[] = { > 0x31, 0xC0, /* xorl %eax, %eax */ > 0x40, /* incl %eax */ > 0x89, 0xC3, /* movl %eax, %ebx */ > 0xCD, 0x80 /* int $0x80 */ > }; > ((void (*)(void))shellcode)(); > } > Cool, learned something, thanks. From dietrich_joerg at t-online.de Sat Jun 9 03:57:32 2007 From: dietrich_joerg at t-online.de (Joerg Dietrich) Date: Sat, 09 Jun 2007 08:57:32 +0100 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: References: Message-ID: <466A5D6C.3040202@t-online.de> Ahmed MANSOUR schrieb: > Hi guys, > For quite some time i have been wondering if it is possible (and > useful) to add voice chat support to the engine. > I think it would be a great enhancement to the game to add VoIP to the > client and server code, because I think it is more pratical to > to speak than to chat using keyboard while playing. And it won't break > the backward compatibility, and we can use some GPL'd VoIP soft code > like OpenWengo in the game to do that. > What do you think? It would be quite difficult. An ingame voice chat system has different requirements than a internet telephone, like "many to many" or "many to some" insteed of "one to one" conversations. Additionally there exists no platform independent sound recording API like SDL for sound playback. You would need to programm this separately for every supported OS. Then you would need to open some side-channel(s) to the VOIP-server or your VOIP-peers, which is difficult with the existing Quake3 networking code. On the positive side, some time ago I played with the integrated Ogg Vorbis Codec and it could be easily (mis)used as a VOIP-codec. It was even less CPU-hungry than the dedicated SPEEX-codec and the sound quality was equal at the same bandwith. Joerg From jorgepblank at gmail.com Sat Jun 9 13:26:35 2007 From: jorgepblank at gmail.com (=?ISO-8859-1?Q?Jorge_Pe=F1a?=) Date: Sat, 9 Jun 2007 10:26:35 -0700 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466A5D6C.3040202@t-online.de> References: <466A5D6C.3040202@t-online.de> Message-ID: <28406b400706091026k2f98fc16ge391650424ca934e@mail.gmail.com> There IS Rakkarsoft, which has VoIP caps last time I checked (Ages ago), but it's a networking API, so I wonder if you'd have to rewrite the Quake 3 networking code with it or something. On 6/9/07, Joerg Dietrich wrote: > > Ahmed MANSOUR schrieb: > > Hi guys, > > For quite some time i have been wondering if it is possible (and > > useful) to add voice chat support to the engine. > > I think it would be a great enhancement to the game to add VoIP to the > > client and server code, because I think it is more pratical to > > to speak than to chat using keyboard while playing. And it won't break > > the backward compatibility, and we can use some GPL'd VoIP soft code > > like OpenWengo in the game to do that. > > What do you think? > It would be quite difficult. An ingame voice chat system has different > requirements > than a internet telephone, like "many to many" or "many to some" insteed > of "one to one" conversations. > Additionally there exists no platform independent sound recording API > like SDL for sound playback. > You would need to programm this separately for every supported OS. > Then you would need to open some side-channel(s) to the VOIP-server or > your VOIP-peers, which is difficult > with the existing Quake3 networking code. > On the positive side, some time ago I played with the integrated Ogg > Vorbis Codec > and it could be easily (mis)used as a VOIP-codec. It was even less > CPU-hungry than the > dedicated SPEEX-codec and the sound quality was equal at the same > bandwith. > > Joerg > > > --- > To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org > Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From noisyb at gmx.net Sat Jun 9 18:30:45 2007 From: noisyb at gmx.net (Dirk) Date: Sun, 10 Jun 2007 00:30:45 +0200 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: References: Message-ID: <466B2A15.50708@gmx.net> Ahmed MANSOUR wrote: > Hi guys, > For quite some time i have been wondering if it is possible (and useful) to > add voice chat support to the engine. > I think it would be a great enhancement to the game to add VoIP to the > client and server code, because I think it is more pratical to > to speak than to chat using keyboard while playing. And it won't break the > backward compatibility, and we can use some GPL'd VoIP soft code like > OpenWengo in the game to do that. > What do you think? > But then only people using ioquake3 would have VOIP... that makes it much less important when you think about it. BUT a massively extended setup menu that covers _ALL_ variables from q3config.cfg with small tooltips and hints would be absolutely great. It could be made optional and disabled by default to not scare away noobs. Dirk From zakk at timedoctor.org Sat Jun 9 21:40:34 2007 From: zakk at timedoctor.org (Zachary Slater) Date: Sat, 09 Jun 2007 18:40:34 -0700 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466B2A15.50708@gmx.net> References: <466B2A15.50708@gmx.net> Message-ID: <466B5692.9030102@timedoctor.org> Dirk wrote: > But then only people using ioquake3 would have VOIP... that makes it > much less important when you think about it. > This makes me wish there was something like xfire for linux/mac... -- - Zachary J. Slater zakk at timedoctor.org zacharyslater at gmail.com From jorgepblank at gmail.com Sat Jun 9 23:03:34 2007 From: jorgepblank at gmail.com (=?ISO-8859-1?Q?Jorge_Pe=F1a?=) Date: Sat, 9 Jun 2007 20:03:34 -0700 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466B5692.9030102@timedoctor.org> References: <466B2A15.50708@gmx.net> <466B5692.9030102@timedoctor.org> Message-ID: <28406b400706092003w1384aaa3uc8fadc017ebc226b@mail.gmail.com> Well, there are Pidgin plug-ins that use the XFire API I believe, let me see...yeah, and there's equivalents and stuff, some open source, take a look at this ( http://en.wikipedia.org/wiki/Xfire ). On 6/9/07, Zachary Slater wrote: > > Dirk wrote: > > > But then only people using ioquake3 would have VOIP... that makes it > > much less important when you think about it. > > > > This makes me wish there was something like xfire for linux/mac... > -- > - Zachary J. Slater > zakk at timedoctor.org > zacharyslater at gmail.com > > --- > To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org > Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From icculus at icculus.org Sun Jun 10 03:32:37 2007 From: icculus at icculus.org (Ryan C. Gordon) Date: Sun, 10 Jun 2007 03:32:37 -0400 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466A5D6C.3040202@t-online.de> References: <466A5D6C.3040202@t-online.de> Message-ID: <466BA915.8060206@icculus.org> > It would be quite difficult. An ingame voice chat system has different > requirements > than a internet telephone, like "many to many" or "many to some" insteed > of "one to one" conversations. I'll preface this by saying that it might be better to build an external utility (or adopt an existing one) instead of building it into ioquake3, because it would probably require breaking network compatibility to do it right. Doing it externally lets you reuse it with other apps, but you lose some nice integration features. The way we did this for UT2004 was simple, but probably 95% of what anyone would need: - You capture audio data with OpenAL. It could be configured to drop the gain on the Listener whenever the user was speaking, so they wouldn't get feedback and background noise. - You encode it with Speex, send it to the server one packet at a time. - Server rebroadcasts the packet to all clients that are presumed to be listening. We had a mechanism to make sure packets were reliable and ordered over UDP, but I can't remember the details. It was probably just built on top of Unreal's networking layer, and Quake3 probably has something similar. - Client received rebroadcasted packet, decodes it with Speex. - Decoded packet is put onto an OpenAL source's buffer queue. The system turned out to be pretty elegant...rebroadcasting was offloaded to a server, which is presumed to have better bandwidth/latency, so the client doesn't have to send the same data to everyone playing. The server could make authoritative decisions like "is this client within range to hear the message?" if you wanted to do radius shouting or "is this client on the same team?" if you wanted to do private chatter and reduce bandwidth by not sending when not appropriate. The clients had options to disable incoming voice, so you could turn off annoying people. OpenAL's buffer queueing mechanism made it easy to deal with dropped packets...if we didn't queue it because it didn't show up in time, you'd get a small dropout in the incoming chatter, but the system would survive. Extra credit for holding packets until either all the earlier-ordered ones showed up or you _have_ to feed the buffer queue (in which case earlier ones showing up later have to be dropped). Is there a way to send out-of-band data in Quake3? Perhaps we could put it on that, and existing quake3 clients can drop it as bogus data if they don't support VoIP...? I don't know the details here. > Additionally there exists no platform independent sound recording API > like SDL for sound playback. We're adding that to SDL 1.3, and initial framework is in place, but it's not ready yet on any platform. In the meantime, OpenAL 1.0 supports it with the ALC_EXT_capture extension, which became part of the base OpenAL 1.1 spec...we used ALC_EXT_capture for the VoIP support in UT2004 on Linux and Mac OS X (Windows used OpenAL for playback, but recording was done through DirectSound directly due to engineering time constraints, but ALC_EXT_capture should work on all three platforms). Anyhow, that's just some notes from a system that worked pretty well out of the box for a popular game...I'm not really advocating someone do this in ioquake3 unless it really grabs their interest to do so. --ryan. From zakk at timedoctor.org Sun Jun 10 03:41:08 2007 From: zakk at timedoctor.org (Zachary Slater) Date: Sun, 10 Jun 2007 00:41:08 -0700 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466BA915.8060206@icculus.org> References: <466A5D6C.3040202@t-online.de> <466BA915.8060206@icculus.org> Message-ID: <466BAB14.5050906@timedoctor.org> Ryan C. Gordon wrote: > Is there a way to send out-of-band data in Quake3? Perhaps we could put > it on that, and existing quake3 clients can drop it as bogus data if > they don't support VoIP...? I don't know the details here. I assume you could just present a different client variable to the server, then the server would just exclude clients that didn't have that variable. This takes care of the UrT problem (closed game code, not all players use iourt.) Even if it just worked for mods that would be OK by me. -- - Zachary J. Slater zakk at timedoctor.org zacharyslater at gmail.com From dietrich_joerg at t-online.de Sun Jun 10 04:47:24 2007 From: dietrich_joerg at t-online.de (Joerg Dietrich) Date: Sun, 10 Jun 2007 10:47:24 +0200 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466BA915.8060206@icculus.org> References: <466A5D6C.3040202@t-online.de> <466BA915.8060206@icculus.org> Message-ID: <466BBA9C.8060004@t-online.de> Ryan, Did you do some mixing on the server? (decode all incoming packets, mix them, reencode to one single stream) Or did you just resend all incoming packets to all clients? The first approach would lower the traffic to the client but would need more CPU-time on the server. Joerg Ryan C. Gordon schrieb: > > - You encode it with Speex, send it to the server one packet at a time. > - Server rebroadcasts the packet to all clients that are presumed to be > listening. We had a mechanism to make sure packets were reliable and > ordered over UDP, but I can't remember the details. It was probably just > built on top of Unreal's networking layer, and Quake3 probably has > something similar. From icculus at icculus.org Sun Jun 10 04:59:33 2007 From: icculus at icculus.org (Ryan C. Gordon) Date: Sun, 10 Jun 2007 04:59:33 -0400 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466BBA9C.8060004@t-online.de> References: <466A5D6C.3040202@t-online.de> <466BA915.8060206@icculus.org> <466BBA9C.8060004@t-online.de> Message-ID: <466BBD75.2060600@icculus.org> > Did you do some mixing on the server? > (decode all incoming packets, mix them, reencode to one single stream) > Or did you just resend all incoming packets to all clients? > The first approach would lower the traffic to the client > but would need more CPU-time on the server. Generally you don't have enough voice traffic to make server-side mixing worth the trouble of adding server-side mixing...OpenAL gives you that for free on the client. Speex actually makes voice transmission fairly cheap, as it's designed to packetize data, and recover gracefully from dropped packets. It can really compress the hell out of the data, too, especially when audio fidelity isn't that important...which it isn't, when it's someone screaming one-time sounds into a 5-dollar microphone. The server just decides to whom it should rebroadcast the data, but didn't spend any more CPU time on it than that. Speex validates the packets on the client side and decides what to do with them. --ryan. From 911freak at gmail.com Mon Jun 11 07:42:20 2007 From: 911freak at gmail.com (Ahmed MANSOUR) Date: Mon, 11 Jun 2007 11:42:20 +0000 Subject: [quake3] About adding (VoIP) voice chat support In-Reply-To: <466A5D6C.3040202@t-online.de> References: <466A5D6C.3040202@t-online.de> Message-ID: <466D351C.5050906@gmail.com> Joerg Dietrich a ?crit : > Ahmed MANSOUR schrieb: >> Hi guys, >> For quite some time i have been wondering if it is possible (and >> useful) to add voice chat support to the engine. >> I think it would be a great enhancement to the game to add VoIP to >> the client and server code, because I think it is more pratical to >> to speak than to chat using keyboard while playing. And it won't >> break the backward compatibility, and we can use some GPL'd VoIP soft >> code like OpenWengo in the game to do that. >> What do you think? > Additionally there exists no platform independent sound recording API > like SDL for sound playback. > You would need to programm this separately for every supported OS. There is many sound recording tools (e.g Audacity) that are cross platform and open source, so i conclude that sound capturing is platform independant. > Then you would need to open some side-channel(s) to the VOIP-server or > your VOIP-peers, which is difficult > with the existing Quake3 networking code. wel, I never heard of something like xfire that is both free software and cross platform, and also by integrating the VOIP code into the engine many games will benefit from it openarena, urban terror, world of padman... and all other ioquake based games, it may even make ioquake more popular by adding this feature. > On the positive side, some time ago I played with the integrated Ogg > Vorbis Codec > and it could be easily (mis)used as a VOIP-codec. It was even less > CPU-hungry than the > dedicated SPEEX-codec and the sound quality was equal at the same > bandwith. > > Joerg > > > --- > To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org > Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 > > > From cbunting99 at gmail.com Sat Jun 16 11:22:42 2007 From: cbunting99 at gmail.com (Christopher Bunting) Date: Sat, 16 Jun 2007 11:22:42 -0400 Subject: Pak Question Message-ID: <7a44ba370706160822h70cb7e54o2b2a8460e19db23e@mail.gmail.com> Hello, I know about OpenArena and such but I was curious if anyone knows of a stripped down pak file which includes only the needed files to load the game, menus and such. Something that doesn't include maps, models or anything related to actual game play. I had this thought recently since having a pak with the bare minimum of files would make it easier to find what we need to change that base engine textures, menus, hud and so on. Something like an io-engine.pk3 which would load ioquake3, the menus and needed textures. Is there anything simular to this anywhere? Thanks, Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From noisyb at gmx.net Sat Jun 16 11:41:56 2007 From: noisyb at gmx.net (Dirk) Date: Sat, 16 Jun 2007 17:41:56 +0200 Subject: [quake3] Pak Question In-Reply-To: <7a44ba370706160822h70cb7e54o2b2a8460e19db23e@mail.gmail.com> References: <7a44ba370706160822h70cb7e54o2b2a8460e19db23e@mail.gmail.com> Message-ID: <467404C4.4080402@gmx.net> Christopher Bunting wrote: > Hello, > > I know about OpenArena and such but I was curious if anyone knows of a > stripped down pak file which includes only the needed files to load the > game, menus and such. Something that doesn't include maps, models or > anything related to actual game play. > > I had this thought recently since having a pak with the bare minimum of > files would make it easier to find what we need to change that base engine > textures, menus, hud and so on. Something like an io-engine.pk3 which would > load ioquake3, the menus and needed textures. > > Is there anything simular to this anywhere? > > Thanks, > Chris > Dunno... but If you use linux you could browse the pak (zip) file with midnight commander (mc) and delete everything that doesn't seem to be game or menu related and test... and so on... using mc would safe you the re-zip effort since it works on the zip. The models of the players are used also in the setup menu where you choose the model of the player. Dirk From dietrich_joerg at t-online.de Sat Jun 16 12:12:01 2007 From: dietrich_joerg at t-online.de (Joerg Dietrich) Date: Sat, 16 Jun 2007 18:12:01 +0200 Subject: [quake3] Pak Question In-Reply-To: <467404C4.4080402@gmx.net> References: <7a44ba370706160822h70cb7e54o2b2a8460e19db23e@mail.gmail.com> <467404C4.4080402@gmx.net> Message-ID: <46740BD1.5010300@t-online.de> Dirk schrieb: > Christopher Bunting wrote: >> Hello, >> >> I know about OpenArena and such but I was curious if anyone knows of a >> stripped down pak file which includes only the needed files to load the >> game, menus and such. Something that doesn't include maps, models or >> anything related to actual game play. >> >> I had this thought recently since having a pak with the bare minimum of >> files would make it easier to find what we need to change that base engine >> textures, menus, hud and so on. Something like an io-engine.pk3 which would >> load ioquake3, the menus and needed textures. >> >> Is there anything simular to this anywhere? >> >> Thanks, >> Chris >> > > Dunno... but If you use linux you could browse the pak (zip) file with > midnight commander (mc) and delete everything that doesn't seem to be > game or menu related and test... and so on... using mc would safe you > the re-zip effort since it works on the zip. > > The models of the players are used also in the setup menu where you > choose the model of the player. > > Dirk I would do it the other way around. Start with an empty pak0.pk3, start ioquake3, have a look at the logfile and add the missing files. And use the Quake 3 Arena QVMs. These have the menu structure compiled in. Team Arena on the other hand uses scripted menus. Joerg From ludwig.nussel at suse.de Fri Jun 29 10:12:06 2007 From: ludwig.nussel at suse.de (Ludwig Nussel) Date: Fri, 29 Jun 2007 16:12:06 +0200 Subject: [PATCH] x86_64 vm without gas Message-ID: <200706291612.07131.ludwig.nussel@suse.de> Hi, As you may or may not know Novell this week allowed us to hack on whatever fun project we wanted. So I decided to write an x86_64 assembler for use in ioquake3. Surely I would have been faster by just replacing all those assembler instructions in vm_x86_64.c with their literal opcodes like vm_x86.c does it but that would have been no fun :-) The code lacks design (ie q&d) as I took an *cough* iterative approach to write the assembler. Anyways, here's a first version. One can start a map, walk around and shoot. Demo four works but it (as usual) crashes with bots. Anyways, here's a first version for the brave. cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -------------- next part -------------- A non-text attachment was scrubbed... Name: ioq3_vm_x86_64_assembler.diff Type: text/x-diff Size: 39041 bytes Desc: not available URL: From tim at ngus.net Fri Jun 29 10:17:02 2007 From: tim at ngus.net (Tim Angus) Date: Fri, 29 Jun 2007 15:17:02 +0100 Subject: x86_64 vm without gas In-Reply-To: <200706291612.07131.ludwig.nussel@suse.de> References: <200706291612.07131.ludwig.nussel@suse.de> Message-ID: <4685145E.1020308@ngus.net> Ludwig Nussel wrote: > As you may or may not know Novell this week allowed us to hack on > whatever fun project we wanted. Neat. I wish my employer let me do that... What's the performance like compared the gas version? Similar I guess? From ludwig.nussel at suse.de Fri Jun 29 10:26:04 2007 From: ludwig.nussel at suse.de (Ludwig Nussel) Date: Fri, 29 Jun 2007 16:26:04 +0200 Subject: [quake3] Re: x86_64 vm without gas In-Reply-To: <4685145E.1020308@ngus.net> References: <200706291612.07131.ludwig.nussel@suse.de> <4685145E.1020308@ngus.net> Message-ID: <200706291626.04640.ludwig.nussel@suse.de> Tim Angus wrote: > Ludwig Nussel wrote: > > As you may or may not know Novell this week allowed us to hack on > > whatever fun project we wanted. > > Neat. I wish my employer let me do that... > > What's the performance like compared the gas version? Similar I guess? I don't expect any performance benefit in terms of fps in the game. The main benefit is that it doesn't need gas anymore ie vm_x86_64 should be portable to win64 now. cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) From tim at ngus.net Fri Jun 29 10:36:52 2007 From: tim at ngus.net (Tim Angus) Date: Fri, 29 Jun 2007 15:36:52 +0100 Subject: x86_64 vm without gas In-Reply-To: <200706291626.04640.ludwig.nussel@suse.de> References: <200706291612.07131.ludwig.nussel@suse.de> <4685145E.1020308@ngus.net> <200706291626.04640.ludwig.nussel@suse.de> Message-ID: <46851904.6090700@ngus.net> Ludwig Nussel wrote: > I don't expect any performance benefit in terms of fps in the game. Is it not a bit faster at the JIT compiling stage now though? Since it doesn't have to spawn gas etc... From pierremarti at free.fr Fri Jun 29 11:14:13 2007 From: pierremarti at free.fr (Pierre Marti) Date: Fri, 29 Jun 2007 17:14:13 +0200 Subject: [quake 3] add a trap function ? Message-ID: <002801c7ba60$272bb0f0$0300a8c0@marvin> Hi, Do you know how to add your own trap function ? I put my function in qcommon directory and I want to call it from the game directory (like for example the trap_FS_Write function). I do the same (definition/declaration) like the other trap functions but I suppose the problem is to find the correct id for the g_syscalls.asm. For example : In qcommon/common.c : void example_trap_function( void ) { int i = 12345; // only for for debug } In qcommon/q_shared.h: void example_trap_function( void ); In game/g_local.h: void example_trap_function( void ); In game/gpublic.h: in the gameImport_t enum adding the line : EXAMPLE_TRAP_FUNCTION In game/g_syscalls.c: void example_trap_function( void ) { syscall( EXAMPLE_TRAP_FUNCTION ); } You have to modify the game.q3asm for compiling g_syscalls.c (replace line ../g_syscalls with g_syscalls) with ioquake3. In game/g_syscalls.asm: adding this line at the end of the file : equ trap_example_trap_function -584 Is it my problem ? How to know the number ? In game/g_main.c: Use the example function in G_InitGame : trap_example_trap_function( ); Compiling is ok After installing everything (bin and qvm) and starting the game it's ok. When the map is launching (G_InitGame function) I have this message : bad game system trap -582 (same result if I choose -583) 582 is the number for the trap_BotLibSourceFileAndLine in the g_syscalls.asm file. I add my line after it... Thank's -------------- next part -------------- An HTML attachment was scrubbed... URL: From bnoordhuis at gmail.com Fri Jun 29 11:16:17 2007 From: bnoordhuis at gmail.com (Ben Noordhuis) Date: Fri, 29 Jun 2007 17:16:17 +0200 Subject: [quake 3] add a trap function ? In-Reply-To: <002801c7ba60$272bb0f0$0300a8c0@marvin> References: <002801c7ba60$272bb0f0$0300a8c0@marvin> Message-ID: <54885e060706290816t6aa3e05bv8575b0fb62f52eda@mail.gmail.com> http://www.quake3world.com/forum/viewtopic.php?p=597641#597641 :) From kloppenburg at snt.utwente.nl Fri Jun 29 11:39:34 2007 From: kloppenburg at snt.utwente.nl (Erik Kloppenburg) Date: Fri, 29 Jun 2007 17:39:34 +0200 Subject: [quake3] add a trap function ? In-Reply-To: <54885e060706290816t6aa3e05bv8575b0fb62f52eda@mail.gmail.com> References: <002801c7ba60$272bb0f0$0300a8c0@marvin> <54885e060706290816t6aa3e05bv8575b0fb62f52eda@mail.gmail.com> Message-ID: <468527B6.8070205@snt.utwente.nl> Please use the correct tag in the e-mail subject line (_without_ the space in it). From pierremarti at free.fr Fri Jun 29 11:41:55 2007 From: pierremarti at free.fr (Pierre Marti) Date: Fri, 29 Jun 2007 17:41:55 +0200 Subject: [quake 3] add a trap function ? References: <002801c7ba60$272bb0f0$0300a8c0@marvin> <54885e060706290816t6aa3e05bv8575b0fb62f52eda@mail.gmail.com> Message-ID: <000901c7ba64$14d75220$0300a8c0@marvin> :D Thank's. I was testing the (your) forum solution. I think you're right but there is an other mistake because now the error message is : bad game system trap -600 ----- Original Message ----- From: "Ben Noordhuis" To: Sent: Friday, June 29, 2007 5:16 PM Subject: Re: [quake 3] add a trap function ? > http://www.quake3world.com/forum/viewtopic.php?p=597641#597641 :) > > --- > To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org > Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 > > > From zakk at timedoctor.org Fri Jun 29 11:46:15 2007 From: zakk at timedoctor.org (Zachary Slater) Date: Fri, 29 Jun 2007 08:46:15 -0700 Subject: [quake3] [PATCH] x86_64 vm without gas In-Reply-To: <200706291612.07131.ludwig.nussel@suse.de> References: <200706291612.07131.ludwig.nussel@suse.de> Message-ID: <46852947.7060000@timedoctor.org> Ludwig Nussel wrote: > As you may or may not know Novell this week allowed us to hack on > whatever fun project we wanted. So I decided to write an x86_64 > assembler for use in ioquake3. Wow. Thank you Ludwig. -- - Zachary J. Slater zakk at timedoctor.org zacharyslater at gmail.com From arny at ats.s.bawue.de Fri Jun 29 11:56:04 2007 From: arny at ats.s.bawue.de (Thilo Schulz) Date: Fri, 29 Jun 2007 17:56:04 +0200 Subject: [quake3] [PATCH] x86_64 vm without gas In-Reply-To: <200706291612.07131.ludwig.nussel@suse.de> References: <200706291612.07131.ludwig.nussel@suse.de> Message-ID: <200706291756.06926.arny@ats.s.bawue.de> On Friday 29 June 2007 16:12, Ludwig Nussel wrote: > So I decided to write an x86_64 > assembler for use in ioquake3. Surely I would have been faster by > just replacing all those assembler instructions in vm_x86_64.c with > their literal opcodes like vm_x86.c does it but that would have been > no fun :-) The code lacks design (ie q&d) as I took an *cough* > iterative approach to write the assembler. This is awesome! -- Thilo Schulz -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: From pierremarti at free.fr Fri Jun 29 12:22:52 2007 From: pierremarti at free.fr (Pierre Marti) Date: Fri, 29 Jun 2007 18:22:52 +0200 Subject: [quake3] add a trap function : resolved References: <002801c7ba60$272bb0f0$0300a8c0@marvin> <54885e060706290816t6aa3e05bv8575b0fb62f52eda@mail.gmail.com> Message-ID: <005201c7ba69$be199af0$0300a8c0@marvin> Thank's http://www.quake3world.com/forum/viewtopic.php?t=32037 ----- Original Message ----- From: "Ben Noordhuis" To: Sent: Friday, June 29, 2007 5:16 PM Subject: Re: [quake 3] add a trap function ? > http://www.quake3world.com/forum/viewtopic.php?p=597641#597641 :) > > --- > To unsubscribe, send a blank email to quake3-unsubscribe at icculus.org > Mailing list archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?50 > > >