|
|
 |
|
04-28-2015, 11:44 AM
|
#1 (permalink)
|
|
Axe Man
USER INFO »
Posts: 15
Reputation:
Join Date: Apr 2015
Currently: Offline
|
QuakeC Developer Tools?
I'm having difficulties finding information online about QuakeC in general. Lots of links that go nowhere. Everytime I think I've found the jackpot, I get very little. It's been a bit discouraging.
What I would like is a good Quake compiler, and instructions on how to use to compile the Open Source files (found here: https://github.com/id-Software/Quake) into a development environment to do stuffs like this for example: Inside3D (I'm using Windows 7 64 bit)
Normally I wouldn't beg for help like this, but I've hit so many dead ends. Lurking on the forums you all seem helpful so I thought I'd ask.
Keep Playing Quake!
|
|
|
|
04-28-2015, 12:47 PM
|
#2 (permalink)
|
|
Chthon
USER INFO »
Posts: 853
Reputation:
Join Date: Jan 2006
Currently: Offline
| Contact: |
|
|
There is no repository like you would find with Java/python/anything made within 10 years, so it seems like everyone needs to learn the hard way. I don't mind answering questions, since it seems to be the only way to get quakec info passed on.
The two main compilers I use are frikqcc and qccx. I'd recommend frik since it's newer, and explaining how qccx could be useful would be confusing right now. FTEqcc is also important if you want to get into fancy client-side qc (csqc). I have never worked with csqc, since it requires people to use a certain quake engine, but it gives many options that aren't practical or possible with regular qc. Anyway, with the original, vanilla .qc files, any compiler will work just fine.
You will NOT be compiling ANY code at that github link if you are looking to just compile quakec. The code you linked is used to make a quake engine, which, in this case, is winquake.exe. Perhaps that is your goal?
|
|
|
|
04-28-2015, 01:49 PM
|
#4 (permalink)
|
|
Chthon
USER INFO »
Posts: 2,464
Reputation: 
Join Date: Mar 2006
Currently: Offline
|
FTEQCC is the compiler I'll recommend, it supports a lot of extensions like classes, arrays, struct arrays, and pointers (the latter only supported by FTE, the engine.)
One thing to understand is that there have been a lot of extensions created since QuakeC/Quake was released, everything from string handling to file loading to client-side QC. The two standard engines that provide all those extensions are FTE and Darkplaces.
But for simply starting out with QC, I recommend a good text editor (such as vim or notepad++), the FTEQCC compiler ( from here) and the Clean QC source code.
For QC questions, I recommend IRC: irc.anynet.org #qc That's where several active (and many not very active, but knowledgeable) QC programmers hang out. The community is so small that asking people personally is the best way to go.
I'll gladly answer questions as well.
|
|
|
|
04-28-2015, 01:54 PM
|
#5 (permalink)
|
|
Axe Man
USER INFO »
Posts: 15
Reputation:
Join Date: Apr 2015
Currently: Offline
|
Originally Posted by Zop
There is no repository like you would find with Java/python/anything made within 10 years, so it seems like everyone needs to learn the hard way. I don't mind answering questions, since it seems to be the only way to get quakec info passed on.
The two main compilers I use are frikqcc and qccx. I'd recommend frik since it's newer, and explaining how qccx could be useful would be confusing right now. FTEqcc is also important if you want to get into fancy client-side qc (csqc). I have never worked with csqc, since it requires people to use a certain quake engine, but it gives many options that aren't practical or possible with regular qc. Anyway, with the original, vanilla .qc files, any compiler will work just fine.
You will NOT be compiling ANY code at that github link if you are looking to just compile quakec. The code you linked is used to make a quake engine, which, in this case, is winquake.exe. Perhaps that is your goal?
I was hoping to make a DOS flavored Quake so it could be used (without too much tweaking) on multiple platforms. So - barring a full source rebuild.
How do I use frikqcc to compile a workable Progs.dat?
For Example: listed here Inside3D - is a "Scratch Tutorial" it gives steps for making the files with the code/variables to make a very basic Progs.dat.
But it fails to tell you where to get a compiler, or how to use it to make a working Progs.dat file.
|
|
|
|
04-28-2015, 01:57 PM
|
#6 (permalink)
|
|
Axe Man
USER INFO »
Posts: 15
Reputation:
Join Date: Apr 2015
Currently: Offline
|
Very nice. This is the jackpot I was looking for 
I'm going to download these resources. I'm sure it's only going to be a few months before some of them are defunct. I wonder how many others will wander by years from now and go,
"Awwww! I was hoping those links were still active!"
Heh. Thanks MadGypsy.
|
|
|
|
04-28-2015, 02:02 PM
|
#7 (permalink)
|
|
Axe Man
USER INFO »
Posts: 15
Reputation:
Join Date: Apr 2015
Currently: Offline
|
Originally Posted by golden_boy
FTEQCC is the compiler I'll recommend, it supports a lot of extensions like classes, arrays, struct arrays, and pointers (the latter only supported by FTE, the engine.)
One thing to understand is that there have been a lot of extensions created since QuakeC/Quake was released, everything from string handling to file loading to client-side QC. The two standard engines that provide all those extensions are FTE and Darkplaces.
But for simply starting out with QC, I recommend a good text editor (such as vim or notepad++), the FTEQCC compiler ( from here) and the Clean QC source code.
For QC questions, I recommend IRC: irc.anynet.org #qc That's where several active (and many not very active, but knowledgeable) QC programmers hang out. The community is so small that asking people personally is the best way to go.
I'll gladly answer questions as well.
You guys are just GREAT. I've run into many communities where asking questions just attracted sharks and ridicule. This is a great site.
Fantastic resources, thank you Golden Boy.
I'll hop on that IRC channel soon.
EDIT: The link to the "Clean QC source code" appears to be dead  any other options to download it?
Last edited by QuakeKid; 04-28-2015 at 02:34 PM..
|
|
|
|
04-28-2015, 02:11 PM
|
#8 (permalink)
|
|
Chthon
USER INFO »
Posts: 2,464
Reputation: 
Join Date: Mar 2006
Currently: Offline
|
My mistake.
https://gitorious.org/quakec-v1-01-clean
Click on the repository, then Download.
To make a progs.dat, put the QC files and the compiler binary in the same directory, then run the compiler. It looks for a file called progs.src that contains a list of the QC files to be compiled into the progs, and the output path for the progs.
https://gitorious.org/cleanqc
Here's the 1.06 source (which is not GPL, unlike the 1.01 Clean QC.) It's fine to make mods with though.
https://gitorious.org/clean_csqc
Here's a clean CSQC source, note that you need a CSQC capable engine and it will expect it as a "csprogs.dat." This is good for custom HUDs and the like.
Last edited by golden_boy; 04-28-2015 at 02:17 PM..
|
|
|
|
04-28-2015, 02:38 PM
|
#9 (permalink)
|
|
Death Lord
USER INFO »
Posts: 540
Reputation:
Join Date: Jan 2009
Currently: Offline
|
|
|
|
|
04-29-2015, 02:33 PM
|
#10 (permalink)
|
|
Axe Man
USER INFO »
Posts: 15
Reputation:
Join Date: Apr 2015
Currently: Offline
|
OK, next question. This might seem a bit basic, but my brain will break if I don't understand it.
If I understand correctly, Quake requires 11 functions to be properly configured before spawning a map/level/world whatchamathing. These 11 functions need to be in the code and correctly configured, as the engine must reference each item when the world is in motion. These functions are the basic mechanics that make the engine run continuously.
I'm trying to define the following functions, as many of the places I'm looking do a half-assed job of it.
Worldspawn: Initiates the world spawning process.
Main: Called immediately after for base subroutines, basic variables and entities.
StartFrame: Called to start each frame.
ClientConnect: Called when players connect to the server, and when a new level loads (for each player playing in the new level). It’s used to announce to current players when a new player connects.
ClientKill: Called when a player suicides (this happens when players accidentally blow themselves up with rocket or grenade launcher – Fun Times!).
PutclientInServer: Called when the client player entity spawns in game.
PlayerPreThink: Called at every frame before physics.
PlayerPostThink: Called at every frame after physics.
SetNewParms: Called when level changes and the players in-game connect to the server, when the level loads.
SetChangeParms: Called when level changes to set parms for self to be restored.
I don't get the three definitions listed below ▼, that I yoinked from the list above ^ but I can't find resources to explain them:
StartFrame: Called to start each frame.
PlayerPreThink: Called at every frame before physics.
PlayerPostThink: Called at every frame after physics.
For StartFrame - what do they mean by frame? Animation? What is their reference for frame?
For PlayerPre & Post think - when frame is referenced here is it the same frame mentioned in StartFrame? If it is what is it? And how is the frame called before or after physics? What is the physics they are referring to?
I like physics... without it there'd be no Lava Lamps.
Last edited by QuakeKid; 04-29-2015 at 02:45 PM..
|
|
|
|
 |
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|