News | Forum | People | FAQ | Links | Search | Register | Log in
Quake Custom Engines
Discuss modified Quake engines here, I guess. What engines do you use? What are the pros/cons of existing engines? What features would you like to see implemented/removed?
First | Previous | Next | Last
Rcon 
Noticed in legacy PQ if you rcon to a non std port other than 26000, initially you appear to be connected ok, however any further rcon commands except "status" are diverted to port 26000 somehow. So far the only client that correctly routes to the initial port and stays there seems to be Qrack.

Decided to try this tool which seems to be mostly designed for Q3 era games [ http://www.ruckman.net/downloads-1 ] and after modifying a line of code, seems to be able to rcon ok into Darkplaces servers, but still cant seem to get it to rcon to a PQ type server. Would anyone have an idea why or what has to be done so it works? 
 
LordHavoc was quite inspired by Quake 3 in the early days which is why DarkPlaces and Nexuiz used the Quake 3 model format, the Quake 3 .bsp format and a master server strategy similar to Quake 3.

ProQuake's author seemed to just want regular Quake to have some features that Quakeworld had for those who preferred NetQuake physics.

It isn't surprising that DarkPlaces rcon is very similar to Quake 3, as Nexuiz in many ways was very Quake 3-like.

ProQuake's author probably used a method very similar to what was in the Quakeworld source code (I'm guessing, but its an educated guess). 
@Baker 
Thanks for that info. I too have noticed the similarities, and I like how it uses the pk3 file system with curl for connecting players to get all the assets to play the mod. It really is a modder friendly engine in that regard.

After reading what you said, I decided to revert the altered code back to the original that came with the above download, and in that form, it wont rcon to my dp server. So the changes we made to rcon_code.php allow DP rcons to happen but so far with PQ, no dice. We changed line 27 or thereabouts as follows:

// $query = "xFFxFFxFFxFFx02 rcon "" . $PASSWORD . "" " . $COMMAND;
$query = "xFFxFFxFFxFFrcon " . $PASSWORD . " $COMMANDn";

Sorry of this is turning into a coding thread, but I didnt get any response to my other rcon issue in the coding area.

Also if anyone is interested in modding said dl so that it covers all the legacy Quake / qw engines with me that would be great. I thought maybe we could have a session manager of sorts with this and add icons up there for all the quake engines so that when you click on one, the "mode" changes so you can rcon into those kinds of servers too. The author was contacted but hes got not much time to help mod it and has ok'd me to modify it to cover other games / engines. 
QW Rcon 
Just a side note since Baker refered to QW rcon maybe being used in PQ, when you rcon into a DP server and successfully send a command that prints something to its con, it will lead with : "QW print command from " , which tends to maybe say that DP is using QW type rcon code?

Another tidbit - DP uses rcon_address as opposed to rcon_server. During my tests this seemed to be incompatable when using DP to try and rcon to a PQ type server. However DP does have a "PQRCON" command, which seems to claim it can rcon to a PQ type server, and also does not work. Weather or not its related to the differences in the 2 cvars for the server address, not sure. 
 
However, if you want to understand network code you really have to be willing to get your hands dirty. There are no shortcuts.

Search for rcon in the source, it is precious few lines in precious few files. Find out how it sent, received, the packaging.

If you end up not being able to figure it out, I wouldn't be too worried.

Engine coding is hard, requires very strong determination and it isn't for everyone. For network, this is doubly true. 
 
Another way of thinking about this: rcon is sending and receiving a text string telling the server to do something.

And considering how few instances of the word "rcon" there is the source, shouldn't you find out how the client sends it, what code it sends (CCREQ_RCON for ProQuake) and where the server receives it.

And I'm not claiming it is "easy".

However, this is the kind of challenge where everything is sitting right out in the open and you can say "This sucks, but if I make up my mind I can read it line by line" in the applicable places -- or the other option is not doing it.

It is just kind of binary decision. 
Rant... 
NQ's netchan sucks.
Its the reason that quake can't easily be played through NATs. Yes, there are hacks that mitigate that in a few engines (like proquake), but not all (like quakespasm), and those hacks don't work for the serverside parts.
Any reliable data that is sent requires two extra udp packets at a minimum - one for the data, and one as an ack.
Its just undesirable in general.
Which is why DP switched at least part of its netchan towards the qw/q2/q3 style for connectionless packets (shame about those reliables really).

rcon is insecure. passwords are sent as plain text for a start. Most engines have no throttling against bad packets (just spam everything you can). If you have rcon passwords embedded in your config then its just a simple stuffcmd(self,"cmd rcp $rcon_password\n"); away from any server that wants to exploit you.
You're probably better off using 'screen' or some equivelent tool to admin your server, although yes, these are slightly more hassle to use (yay! less inclination for admins to interrupt games!).
sending an rcon command to a server that you're not connected to should imho be considered bad form. It may be useful if you just want to kick someone, but chances are you'd want more than that anyway, and it'd be a shame if you eg got the IP wrong and didn't notice.
The response is unreliable, so you have no idea whether the server actually got your command or nor when the response doesn't arrive, and if the response is too long then you also have issues
So yeah, rcon sucks. There are better alternatives, even without modding a server.

I personally tend to enjoy writing networking code. It requires you to follow two 'threads' at once, but unlike actual threads they generally have much better defined sync points.
Tbh at the end of the day, ALL code is just passing messages around the place. Whether its across a network or between cpu cores or just between two sides of an API, for a LOT of people coding is pretty much all just message passing. Even QC has thinks and touches and other events.
Yes, it can take a while to familiarise yourself with the various concepts, but its also very useful if you intend to program anything.
Most of the time, the challenge is figuring out where to start. For NQ that would be CCREQ_* for client->server requests, CCREP_* for server->client responses. Those are all the out-of-band things you can send. Actual connections uses more stuff, of course, so I'm going to gloss over all of that and end the rant here. 
SW! 
So, there's not a single engine with software rendering that has modern netcode for decent multiplayer? ppl just care about damn gfx :( 
What's Wrong With Fodquake? 
Rcon, Cont'd 
I was told by the author of Qtracker, [ https://www.qtracker.com ] the intended Gamespy replacement...that its capable of rcon for other gameservers, but he did not include rcon for Quake. He intends to code it in for the next release, so was glad to hear that. As long as there is something that can rcon based on the server type, Ill be satisfied.

As for engine coding, yea have meant to have a go at it again, but something like a video showing how to do it would clear up alot of things for me. So far after asking on other forums no ones interested in making a video, and another idea would be some kind of site that uses an api of sorts to work with and or experiment compiling the engines based on the material uploaded. Probably asking for alot, but at least that way there is some kind of centralized point where its easier to learn and with some real engine coders like we see here having access, it could lead to some interesting new ideas or improvements. 
No You Won't, And You Know It. 
People who make things are determined types that don't get stopped easily.

They don't get stopped by the lack of a video. It isn't like there aren't a million tutorials, books, videos and game dev sites and places like insideqc, gamedev.net, moddb and the other zillon sites.

A developer is someone with a strong determination.

You aren't going to be making anything and you broadcast the "I'm a helpless snowflake" vibe in every post.

If you wanted to get into this stuff ---

-- there are so many resources on the internet that you'd already be doing it.

Real developers overcome obstacles and every real developer has overcome so many obstacles they don't even keep track. 
Coding 
is something I have tried for a long time to get a grasp of and I just don't have the mind for it.

Mapping however is second nature 
Trial And Error 
might be the way some people do things, but its not for everyone.

So far the most professional helpful engine developers that have ever inspired me, dont make condescending or patronizing posts such as above ^^^

Thats about all Im gonna say regarding it. I rather see the discussion stay on track about Quake Engines instead of taking snipes at how people decide to tackle certain problems or gain knowledge. If you have a system that works for you , wondeful. Not everyone has the same way of doing things. 
Teknoskillz 
Maybe something on Philip Buuk's channel would help you out?

Also, I don't think baker is insulting you, rather, giving you some tough love.

Listen to baker, you probably are putting out the "helpless snowflake" vibe unknowingly. I'm guilty of it and it's an easy trap to fall into when you're stuck and really don't know where to begin. Ultimately, that's going to 1) cause people to be disinterested in your cause and 2) distract you from what you ought to be doing. Also, don't dismiss advice because you find its content or presentation repugnant. This shit is hard and, more often than not, the truth of the matter is usually what you don't want to hear.

might be the way some people do things, but its not for everyone.

I can relate, but that way of thinking is ultimately a crutch. There is no shortcut from a to z. You're going to have to put your nose to the grindstone and work your way through. If I had taken this advice some time ago I would be in a much better position now. Maybe my advice isn't applicable to your scenario, maybe it is, who knows. Just my 2 cents. Best of luck! 
@KP 
Thanks for your link, started watching it, seems very appropriate. Something like that may "fill in the blanks" for me perhaps. Thats more like proactive posting and providing possible solutions based on the real common goal, which is definitely more constructive.

As for the "helpless snowflake" insinuation, it all depends on how much research you do on me. Check my profile, I have a website though outdated regarding a QC mod. I am an active QC coder and also just recently started a Quake C support Email list fr the casual newcomer if need be. Im active in Quake as best as I can possibly be given its hurting circumstances. I have interacted with Baker before on other sites, but obviously theres only so much cooperation possible there. Aside from Quake, sometimes I get to have a real life, and Im not ashamed to say its been a lousy one lately for lots of reasons I could lay out here, which would most likely make people sick to their stomachs, so I wont do it. Its also off topic as well. There is a tendency on the internet in general these days for forget there is an actual imperfect human being on the other side who may feel "helpless" or "powerless" at times. To me, thats fine and despite me feeling that way lately , Im still able to help people if asked, and also do things for the possible new person trying Quake, so I think Im not as helpless as was implied. Thanks. 
 
good, I hope that material will prove useful!

It sounded as though you may have been going down a familiar path. I just wanted to take the opportunity to save you some time and grief if that were actually the case. No insult was intended. 
Interesting 
No problemo KP, understood.

Already watching the 2nd vid, and it does make me remember part of what may be my "special snowflake mental block" here so to speak. Its regarding Visual Studio. I have 2008 and 2010 installed on my main desktop PC, and when I tried compiling an eng straight from original known good src, (without making a single change) I could never get a good compile without an error. Checking further, I saw LOTS of complaints and remarks about inconsistencies back and fourth from different versions, and its well known I guess in the coder communities about these problems. I guess I could have gone to those sites and waded through tons of material to find my particular issue, but since I have been a sorta active member in some Quake Websites where there are real actual engine coders, made more sense to ask for the help there. But I think this video will def help alot for me. Glad to see some poeple are making vids about modding or coding Quake, could not find any when I looked. The internet is becoming a real vast place packed with so much content, sometimes its pretty easy to get lost...or overwhelemed. Maybe thats also part of it.

In case you or anyone else wants to see some of my Quake modding experiments etc, heres my Quake only youtube
[ https://www.youtube.com/user/teknoskillz/videos ]

Maybe we can 1 day create Quaketube? :o) 
 
Sadly, Fodquake doesn't have a server implementation. Only client. :( 
 
technically it does... it just doesn't work. :)
even if it did, it still wouldn't run mods properly (being a qw engine) without a huge amount of work. Even getting the official mission packs working properly wouldn't be trivial. 
Quake In 1996 Vs 2016 
Posted by Sgt-PieFace [108.63.148.236] on 2016/06/28 18:16:56
I made a short video show the changes that have been made to Quake via client updates and mods over then 20 years of its existence.

https://www.youtube.com/watch?v=ImlgOmSUF4M 
Well Then 
Sgt-PieFace can take a faceful of poo pie. 
 
Kinn you might explain why ... he's not going to know unless you give him the "straight up" from the level designer point of view. 
 
Both look bad.

1996 seems to have been made at a lower resolution and/or picmipped down, probably the latter judging by the relative size of the sbar. The original Quake textures may have been low-res but they were also quite crisp. no fullbrights or overbrights either; GLQuake may not have had them, but software Quake did and software Quake came first.

2016 looks even worse. It's the typical DarkPlaces baby setup: a horrible mixture of high-res textures and low-res content. Looks in no way cohesive and the whole setup just seems to be designed to appeal to those who want to look at the pretty normal maps rather than play the game. The Quake high-res mod community still doesn't seem to understand that if you have normal maps then you need flat diffuse maps.

Yuck. Next. 
 
Well, if you have a Mac with Xcode and the latest version of everything, you could switch the left part of the video with my soft-rendered OSX port. You would get the crispiness of low resolution textures as rendered on a 2880x1800 screen (or whatever resolution you have) - or even in a small window if you prefer. Might make for a fairer comparison. 
 
Kinn you might explain why ... he's not going to know unless you give him the "straight up" from the level designer point of view.

It's like mapping a hi-res photograph of a person onto a minecraft character model. I really don't have the energy to step people through why this looks bad. 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.