Site Navigation
QuakeOne News
» Latest News
» News Archives
» QuakeOne Movies

QuakeOne Help
» File Downloads
» Quake Help
» Quake Servers

QuakeOne Community
» Forums
» Chat *new*
» Poll Booth
» Memberlist
» Member Map

Site Info
» Community Rules
» Moderator List

» Buy Quake

Visit QuakeOne.com On Facebook!Visit QuakeOne
on Facebook

Log in
User Name:

Password:

Not a member yet?
Register Now!
Online Users: 185
8 members and 177 guests
Mathuzzz, MostWanted, Mr.Burns, nahuel, Six-Shoota, SourceSkyBoxer
Most users ever online was 2,542, 06-04-2016 at 12:58 AM.
Go Back Home > Forums > Quake Talk > Quake Central > QuakeC Developer Tools? Search Forums

Closed Thread
LinkBack Thread Tools
Unread 04-28-2015, 11:44 AM   #1 (permalink)
Axe Man
QuakeKid's Avatar
USER INFO »
Posts: 15
+/-  Reputation: QuakeKid is on a distinguished road
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!
Unread 04-28-2015, 12:47 PM   #2 (permalink)
Zop
Chthon
Zop's Avatar
USER INFO »
Posts: 853
+/-  Reputation: Zop will become famous soon enough
Join Date: Jan 2006
Currently: Offline
Contact:  Send a message via ICQ to Zop Send a message via AIM to 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?
Unread 04-28-2015, 01:08 PM   #3 (permalink)
The man who sold the world
MadGypsy's Avatar
USER INFO »
Posts: 5,104
+/-  Reputation: MadGypsy has a spectacular aura aboutMadGypsy has a spectacular aura aboutMadGypsy has a spectacular aura about
Join Date: Feb 2011
Currently: Offline
http://www.gamers.org/dEngine/quake/...c34/index2.htm

and

QuakeC basics - Quake Wiki
http://www.aegidian.org/gqt/relics/qcrm.pdf
MODSonline - Tutorials, Scripting for QuakeC Defined (part 1)
https://gitlab.com/xonotic/xonotic/w...tion_to_QuakeC
Quake-C Specificacions v1.0
QuakeC Manual

You don't need all of these links. In some cases there is direct duplication within those links. Just pick one or 2. The first one is as close as you are gonna get to something modern which explains the entire source. The rest are manuals, specs, cheatsheets, etc...

I'm not really sure what info you couldn't find on QC, these links are a "shotglass" of QuakeC from the gallon jug that google provides you with upon searching.

Of course if you are gonna mess with QC it helps to actually use a QC source. Click here and select the QuakeC tab/button. You will be presented with source code and compilers to choose from.

Want to learn how to learn using Quake C as the focus? Click here and take my tutorial.
__________________
X_Michael

Last edited by MadGypsy; 04-28-2015 at 01:30 PM..
Unread 04-28-2015, 01:49 PM   #4 (permalink)
Chthon
golden_boy's Avatar
USER INFO »
Posts: 2,464
+/-  Reputation: golden_boy will become famous soon enoughgolden_boy will become famous soon enough
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.
Unread 04-28-2015, 01:54 PM   #5 (permalink)
Axe Man
QuakeKid's Avatar
USER INFO »
Posts: 15
+/-  Reputation: QuakeKid is on a distinguished road
Join Date: Apr 2015
Currently: Offline
Originally Posted by Zop View Post
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.
Unread 04-28-2015, 01:57 PM   #6 (permalink)
Axe Man
QuakeKid's Avatar
USER INFO »
Posts: 15
+/-  Reputation: QuakeKid is on a distinguished road
Join Date: Apr 2015
Currently: Offline
Originally Posted by MadGypsy View Post
http://www.gamers.org/dEngine/quake/...c34/index2.htm

and

QuakeC basics - Quake Wiki
http://www.aegidian.org/gqt/relics/qcrm.pdf
MODSonline - Tutorials, Scripting for QuakeC Defined (part 1)
https://gitlab.com/xonotic/xonotic/w...tion_to_QuakeC
Quake-C Specificacions v1.0
QuakeC Manual

You don't need all of these links. In some cases there is direct duplication within those links. Just pick one or 2. The first one is as close as you are gonna get to something modern which explains the entire source. The rest are manuals, specs, cheatsheets, etc...

I'm not really sure what info you couldn't find on QC, these links are a "shotglass" of QuakeC from the gallon jug that google provides you with upon searching.

Of course if you are gonna mess with QC it helps to actually use a QC source. Click here and select the QuakeC tab/button. You will be presented with source code and compilers to choose from.

Want to learn how to learn using Quake C as the focus? Click here and take my tutorial.
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.
Unread 04-28-2015, 02:02 PM   #7 (permalink)
Axe Man
QuakeKid's Avatar
USER INFO »
Posts: 15
+/-  Reputation: QuakeKid is on a distinguished road
Join Date: Apr 2015
Currently: Offline
Originally Posted by golden_boy View Post
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..
Unread 04-28-2015, 02:11 PM   #8 (permalink)
Chthon
golden_boy's Avatar
USER INFO »
Posts: 2,464
+/-  Reputation: golden_boy will become famous soon enoughgolden_boy will become famous soon enough
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..
Unread 04-28-2015, 02:38 PM   #9 (permalink)
Death Lord
gnounc's Avatar
USER INFO »
Posts: 540
+/-  Reputation: gnounc is on a distinguished road
Join Date: Jan 2009
Currently: Offline
for thread prosperity (gitorious is shutting down) here are those same links on gitlab.

https://gitlab.com/quakec-v1-01-clea...ec-v1-01-clean

https://gitlab.com/clean_csqc/cleancsqc
Unread 04-29-2015, 02:33 PM   #10 (permalink)
Axe Man
QuakeKid's Avatar
USER INFO »
Posts: 15
+/-  Reputation: QuakeKid is on a distinguished road
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..
Closed Thread

Bookmarks


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

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -6. The time now is 02:06 PM.


eXTReMe Tracker