Match controls (ready, notready) to the engine + admin
Moderator: InsideQC Admins
3 posts
• Page 1 of 1
Match controls (ready, notready) to the engine + admin
This is a blue sky thread, clearly.
Mods like CRMOD or CAx had sophisticated match joining logic that is far too high of a burden of expertise on the average modder.
The average modder should be concerned about game-flow, not administrative controls.
Any loose or vague ideas on how this could be done in the engine. Or whether it should be done. The engine supplies cvars like deathmatch 0/1/2/3 and teamplay and samelevel.
I'm not saying the engine would be the whole solution, as the above cvars live mostly or entirely in the QuakeC. At the same time, it seems like voting, match participation and even admin controls are rather uniform in how they work and topics that a very finite number (like can count on fingers on both hands not using them all?) really are experts with.
I guess I'm asking, in an ideal world how could these be implemented in a way that represents the lowest burden on a modder. You might make a freeze tag game or dodgeball or some fun mod, but the work required to make them "multiplayer dedicated professionally hosted public server ready" is rather steep. Issues like a new player connects, or an existing player disconnects that was in the match, controls for allowing a new connecting player in the game and so forth. (FFA is simple, whoever is present plays.)
[Hosting a multiplayer server is different than single player or LAN, obviously. Case in point, in stock id1, if you get the silver key and disconnect --- the key is gone forever! No connecting players can ever complete the current map. One example. Which is one reason I dislike closed-source Quake mods, they never think of stuff like that or other multiplayer problems. Mostly out of a lack of expertise in the area, but nevertheless the problems are real and absolutely terminal. Anyway, since that isn't the subject. I'm just trying to think of ways that more mods can become truly server friendly without imposing unfair burdens on a QuakeC guy]
Mods like CRMOD or CAx had sophisticated match joining logic that is far too high of a burden of expertise on the average modder.
The average modder should be concerned about game-flow, not administrative controls.
Any loose or vague ideas on how this could be done in the engine. Or whether it should be done. The engine supplies cvars like deathmatch 0/1/2/3 and teamplay and samelevel.
I'm not saying the engine would be the whole solution, as the above cvars live mostly or entirely in the QuakeC. At the same time, it seems like voting, match participation and even admin controls are rather uniform in how they work and topics that a very finite number (like can count on fingers on both hands not using them all?) really are experts with.
I guess I'm asking, in an ideal world how could these be implemented in a way that represents the lowest burden on a modder. You might make a freeze tag game or dodgeball or some fun mod, but the work required to make them "multiplayer dedicated professionally hosted public server ready" is rather steep. Issues like a new player connects, or an existing player disconnects that was in the match, controls for allowing a new connecting player in the game and so forth. (FFA is simple, whoever is present plays.)
[Hosting a multiplayer server is different than single player or LAN, obviously. Case in point, in stock id1, if you get the silver key and disconnect --- the key is gone forever! No connecting players can ever complete the current map. One example. Which is one reason I dislike closed-source Quake mods, they never think of stuff like that or other multiplayer problems. Mostly out of a lack of expertise in the area, but nevertheless the problems are real and absolutely terminal. Anyway, since that isn't the subject. I'm just trying to think of ways that more mods can become truly server friendly without imposing unfair burdens on a QuakeC guy]
The night is young. How else can I annoy the world before sunsrise?
Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
-

Baker - Posts: 3666
- Joined: Tue Mar 14, 2006 5:15 am
"READY", "NOTREADY", "OBSERVER", "AFK" etc are just impulse ALIAS commands. Depending on the MOD, these impulse commands might have different numbers. When someone connects to CRMOD for instance the 1st thing it tries to do is stuffcmd (self,"ignorethis\n");
On the server's end, IGNORETHIS, is an alias to an impulse. 128 for example (not sure which number it is off hand atm). So when a client connects, and that stuffcmd is sent to the client's console (as if they typed it, the server reads the impulse and if it points to the "IGNORETHIS" command, then it does nothing, it assumes the client has the alias commands already "stuffed". Otherwise the server sends all of the ALIAS commands that are impulse commands for the MOD's menu commands, like READY, NOTREADY etc..
One way an engine could provide a global READY command would be to use a SETINFOKEY or stuffcmd (self, "READY 128\n"); or as a clc_READY that the server engine would catch. Since CRMOD, CRCTF, CAx all use READY with different IMPULSE commands, the CVAR for READY could just send that alias back to the server and let the server provide the impulse #...
On the server's end, IGNORETHIS, is an alias to an impulse. 128 for example (not sure which number it is off hand atm). So when a client connects, and that stuffcmd is sent to the client's console (as if they typed it, the server reads the impulse and if it points to the "IGNORETHIS" command, then it does nothing, it assumes the client has the alias commands already "stuffed". Otherwise the server sends all of the ALIAS commands that are impulse commands for the MOD's menu commands, like READY, NOTREADY etc..
One way an engine could provide a global READY command would be to use a SETINFOKEY or stuffcmd (self, "READY 128\n"); or as a clc_READY that the server engine would catch. Since CRMOD, CRCTF, CAx all use READY with different IMPULSE commands, the CVAR for READY could just send that alias back to the server and let the server provide the impulse #...
- r00k
- Posts: 1110
- Joined: Sat Nov 13, 2004 10:39 pm
not really much an engine can do. mods are too varied.
a built in spectator mode might help, and is already present in quakeworld, and provide mods with a way to choose whether the new player should be a spectator or a player, but there's not really much else an engine can do.
you can give engines some sort of "alias ready cmd ready" alias/bind by default, but that would conflict with half the mods out there.
a built in spectator mode might help, and is already present in quakeworld, and provide mods with a way to choose whether the new player should be a spectator or a player, but there's not really much else an engine can do.
you can give engines some sort of "alias ready cmd ready" alias/bind by default, but that would conflict with half the mods out there.
- Spike
- Posts: 2892
- Joined: Fri Nov 05, 2004 3:12 am
- Location: UK
3 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest