Author Topic: Semipure: Now testing!  (Read 10241 times)

Lakitu7

  • Tremulous Developers
  • *
  • Posts: 1002
  • Turrets: +120/-73
Semipure: Now testing!
« on: July 03, 2008, 07:05:15 pm »
Dear Tremulous modders and players,

It's time once again for me to bring you a new revolution in how we play Tremulous 1.1: Semipure!

Semipure, in short, allows servers to create optional downloads. Thus, people who want to can download stuff and enjoy new features, while noobs and luddites who' can still join the server and play anyway, which means you can allow people to use new things without forcing them to in order to play. It's win-win for everybody. And, you can do this all with sv_pure 1, only allowing people to use either the cgame that comes with 1.1, or the cgame that you've put up for download, which beats the free-for-all haxfest of sv_pure 0. The modification is to the tremded server executable and works without changing client or game.qvm code.

On most servers, this means offering a newer cgame. Cgames built from later revisions of the Trem SVN offer much, much more efficiency (higher FPS), right-mouse-button MD zoom, better behavior of glitch-built buildings (more of them are displayed where the bbox is) and some other minor interface changes.

On mod servers, this means that mods that don't really *require* new assets can also run a dual system (Instagib, I'm looking at you!). Thus, people with new clients can have a scoreboard that doesn't say "humans" and "aliens" anymore, but those who refuse to upgrade can play anyway. Awesome!

But Laky, couldn't you already do this with models and sounds and other minor mods? Yes, yes you could. Granted, most of us didn't even know that until circa a few weeks ago, but it's true. That ability is completely unaffected, of course. However, the cgame and ui vms were specifically disallowed from behaving in that way, and that's what my patch changes.

The Semipure system is currently undergoing its first real testing on the Puretremulous servers, which are offering a backported cgame + a few bugfixes and otherwise no other changes. After a week or two, if there's still no issues found, I will release semipure to the world. So, go test it out, and report any bugs to me. Enjoy :)
« Last Edit: July 04, 2008, 07:11:27 am by Lakitu7 »

Pete

  • Posts: 112
  • Turrets: +9/-6
    • Cheese Media
Re: Semipure: Now testing!
« Reply #1 on: July 03, 2008, 07:13:55 pm »
Woo! Sounds awesome. Nice work, Lakitu.

Plague

  • Posts: 238
  • Turrets: +13/-13
Re: Semipure: Now testing!
« Reply #2 on: July 03, 2008, 10:01:18 pm »
Very interesting, this really opens the door to a lot of new idea's that have been aborted in the past because of the nuisances involved in distributing client vm's.

Lakitu7

  • Tremulous Developers
  • *
  • Posts: 1002
  • Turrets: +120/-73
Re: Semipure: Now testing!
« Reply #3 on: July 04, 2008, 04:39:56 am »
Alright guys, after doing some more hacking to the server, PT is now using pk3s named aaa_ instead of zzz_ which will stop them from loading after you've restarted trem (thus, now they will ONLY load when you are playing on a server that requests them, unlike the zzz_ ones). Delete your zzz_ pk3s if they are giving you trouble with huds or whatever else, and that will be no more. :)
« Last Edit: July 04, 2008, 04:44:57 am by Lakitu7 »

Overdose

  • Posts: 396
  • Turrets: +52/-47
Re: Semipure: Now testing!
« Reply #4 on: July 04, 2008, 05:23:06 am »
Alright guys, after doing some more hacking to the server, PT is now using pk3s named aaa_ instead of zzz_ which will stop them from loading after you've restarted trem (thus, now they will ONLY load when you are playing on a server that requests them, unlike the zzz_ ones). Delete your zzz_ pk3s if they are giving you trouble with huds or whatever else, and that will be no more. :)

Thank you, now it won't interfere with my HUD/menu system.
I take that back as it seems that it still borks it.
« Last Edit: July 04, 2008, 05:28:45 am by YourMama »
Chocolate Milk.

Lakitu7

  • Tremulous Developers
  • *
  • Posts: 1002
  • Turrets: +120/-73
Re: Semipure: Now testing!
« Reply #5 on: July 04, 2008, 07:09:47 am »
Yeah, you caught the last thread I haven't updated yet.

Move it from HOME (where it autodownloaded to) to BASE.
Meaning you want something like:

C:\Program Files\Tremulous\Base
or
~/tremulous/base

NOT:
C:\documents and settings\blahblah or ~/.tremulous/base

If you put file in the wrong place, the client will load it instead of the default stuff and your custom menus etc. won't work anymore.

Unfortunately, the client always puts it in said wrong-place and there's not a damn thing I can do about it.

Thus, we on Puretrem will only be offering this as a manual download, not an automatic one, from now on. See the other threads for download locations.

Overdose

  • Posts: 396
  • Turrets: +52/-47
Re: Semipure: Now testing!
« Reply #6 on: July 04, 2008, 08:23:37 am »
Aha, I didn't bother moving it from the default download location thinking it would be loaded just the same. Thanks for the clarification.
Chocolate Milk.

Lakitu7

  • Tremulous Developers
  • *
  • Posts: 1002
  • Turrets: +120/-73
Re: Semipure: Now testing!
« Reply #7 on: July 04, 2008, 08:56:39 am »
I could easily write a few paragraphs just trying to explain all I've learned over the past few days regarding what files the client loads when. It's that complicated, hence all the confusion. :(

==Troy==

  • Posts: 440
  • Turrets: +65/-67
Re: Semipure: Now testing!
« Reply #8 on: July 04, 2008, 10:07:15 am »
Very nice to see it finally done!

On the other note. Will it be possible to make an optional download biased on the GUID? If the player has guid, force the download, if not, do not prompt him the download.


(Combined with this patch, I will possibly going to write a voice-chat server-side mod, which only requires client to download the pk3 with sound files, If I will have a bit more spare time and will be definitely sure if it is possible (no promises, I just have an idea of how to do it)).

Edit : And another question, if you still have my old pm, example :

Server has a map changing the dretch texture. (map A)
Server has map B loaded
Client has map B loaded and does not have map A  = dretch texture is default
Client has map B loaded and he does have the map A = dretch texture is non default (taken from map A).

Does it still apply to this patch?


Edit2: semipure is actually possible even now, if you have a z_ pk3 in your server folder, any client with that pk3 will have it loaded, and any client without the pk3 will not be prompted to download it.
« Last Edit: July 04, 2008, 10:41:48 am by ==Troy== »

Lava Croft

  • Guest
Re: Semipure: Now testing!
« Reply #9 on: July 04, 2008, 02:28:28 pm »
Edit2: semipure is actually possible even now, if you have a z_ pk3 in your server folder, any client with that pk3 will have it loaded, and any client without the pk3 will not be prompted to download it.
I think this exact situation is what triggered Lakitu to do some research.

Amanieu

  • Posts: 647
  • Turrets: +135/-83
    • Amanieu
Re: Semipure: Now testing!
« Reply #10 on: July 04, 2008, 02:35:05 pm »
On the other note. Will it be possible to make an optional download biased on the GUID? If the player has guid, force the download, if not, do not prompt him the download.
The client checks sv_referencedPaks & sv_referencedPakNames to figure out which pk3s it doesn't have and then asks the server to download them. If downloads are disabled (1.1 client) then the client doesn't check for downloads and just continues on to the server.
Quote
< kevlarman> zakk is getting his patches from shady frenchmen on irc
< kevlarman> this can't be a good sign :P

==Troy==

  • Posts: 440
  • Turrets: +65/-67
Re: Semipure: Now testing!
« Reply #11 on: July 04, 2008, 03:51:21 pm »
On the other note. Will it be possible to make an optional download biased on the GUID? If the player has guid, force the download, if not, do not prompt him the download.
The client checks sv_referencedPaks & sv_referencedPakNames to figure out which pk3s it doesn't have and then asks the server to download them. If downloads are disabled (1.1 client) then the client doesn't check for downloads and just continues on to the server.

Great, exactly what is needed. Not being able to access the Tremulous atm, could you please also clarify whether it will force to download the optional pack? or prompt a dialog to ask to do so?

And the example, which I gave above, does the server still allow the client to load the "inactive" packs into the memory?

Lakitu7

  • Tremulous Developers
  • *
  • Posts: 1002
  • Turrets: +120/-73
Re: Semipure: Now testing!
« Reply #12 on: July 04, 2008, 05:34:33 pm »
Originally I had it set up to prompt a download if the client was able. That caused problems posted above, so I don't really recommend it if your download has cg/ui vms (which is the point, considering you could always do other types of downloads without this patch).

Yeah, like I said, you could always do this for everything but vms. People just didn't really know about it until rather recently. This ability is unchanged**.

**Actually, what I did in the latest revision is reverse the order that the pk3 list is sent to the client. This forces them to load aaa_ if they have it despite the fact that the server didn't load it. Naming it aaa_ instead of zzz_ stops it from loading over the default vms in situations where the server DIDN'T ask for it (assuming it's in basepath instead of homepath. If it's in homepath it will override basepath, the reason why I had to kill it as a download). However, I imagine that before I release this I'll just make it put things with "aaa_" in the title at the head of the list, as opposed to doing the whole thing in reverse, so that the order crap loads is (marginally) less confusing. I was just in a bit of a hurry to fix puretrem so I went with the easier route.