Programming FAQ

Release and discuss things you've made, including mods.
User avatar
kharnov
Granger
Posts: 1851
Joined: Tue Mar 06, 2012 10:54 pm UTC
Clan: GT
Location: New York City

Programming FAQ

Post by kharnov »

Welcome to the programming board! There are two purposes behind it:

  • First, to answer questions that the community has about programming for Unvanquished.

  • Second, to discuss code releases by programmers that have made code modifications.

Feel free to ask your questions in this thread. As time goes on, this post will be updated with the questions that we've answered.

FAQ

Which programming language is Unvanquished coded in?

The vast majority of the engine, around three quarters of it, is coded in C. A much smaller percentage of the code is in C++.

Where is the source code hosted? How do I download it?

We utilize a Git repository. You can find it here. Instructions on downloading the source can be found here.

Compiling sounds really scary. How can I do this?

It's not particularly hard. If you're not used to compiling things, it will take longer on your first try, but it won't take long to get the hang of. It's a lot more intuitive than it seems. Plus, you'll have access to the latest changes to the engine, instead of the static builds provided by the installers. Guides for compiling on the three major operating systems can be found here.

What is the Unvanquished engine based off of?

Ultimately, Quake 3. However, we have additions from ETXreaL, mainly for graphical things.

How is the engine structured?

Due to our descent from Quake 3, any review of the Quake 3 engine code applies. A particularly good one can be found here, but others can be found easily through a quick Google search.

How can I keep track of engine changes?

Very easily. Just watch the activity on this page. Several interesting charts can also be generated for you to look at, through the graphs button on the menu.

I'd like to help out! Who should I contact?

Either me or `Ishq. You can also submit pull requests on our Git repository if you just want to contribute a patch occasionally. Even if you don't know C or don't want to deal with the engine, we may still have use for other programming languages.

User avatar
poVoq
Mantis
Posts: 67
Joined: Tue Oct 09, 2012 5:01 pm UTC

Re: Programming FAQ

Post by poVoq »

Are there plans to support a script engine (like LUA) for modding?

User avatar
Ishq
Project Head
Posts: 1145
Joined: Tue Mar 06, 2012 8:32 pm UTC

Re: Programming FAQ

Post by Ishq »

Eventually.

User avatar
ViruS
Granger
Posts: 1020
Joined: Sun Mar 11, 2012 4:24 am UTC
Location: Antartica - West Australian Post shore
Contact:

Re: Programming FAQ

Post by ViruS »

Isn't it called 'QuakeC'? (Their modified C language or something didn't they? I don't even know why "true" doesn't work yet "qtrue" is its replacement :S)
I'd like to learn it btw, I'm failing school I'd at least like to learn how to code properly (I only know basic terms, excluding arrays and stuff like that)
FYI this is also interesting, it's more of a diary entry but oh well: http://fd.fabiensanglard.net/doom3/pdfs ... n_1999.pdf

ImageImageYou[TubeImage

User avatar
velociostrich
Dragoon
Posts: 318
Joined: Thu Mar 08, 2012 6:24 pm UTC

Re: Programming FAQ

Post by velociostrich »

ViruS wrote:

Isn't it called 'QuakeC'?

No. QuakeC was Q1 or Q2 (or both, I don't recall).

I don't even know why "true" doesn't work yet "qtrue" is its replacement

"true" is not defined in C.

I'm failing school I'd at least like to learn how to code properly

Stay in school! That's far more important.

I only know basic terms, excluding arrays and stuff like that

You have a long way to go.

FYI this is also interesting, it's more of a diary entry but oh well: http://fd.fabiensanglard.net/doom3/pdfs ... n_1999.pdf

I've known about that for a while but I should add a link to it on the wiki.

User avatar
ViruS
Granger
Posts: 1020
Joined: Sun Mar 11, 2012 4:24 am UTC
Location: Antartica - West Australian Post shore
Contact:

Re: Programming FAQ

Post by ViruS »

"true" is not defined in C.

Why name it 'qtrue' then? Also, If i type "true" in g-edit, g-edit recognises it. The colour code is 'C' not 'CPP' etc.

Stay in school! That's far more important.

I have the top 1% attendance at my school with an average of one half day missed out (dental appointments usually)
I've been sick dozens of times, but I often ignore my body and just get along with it, unless it's actual physical pain such as cuts and bruises. I haven't had a serious injury for quite a while actually.

You have a long way to go.

Yeah. I've already ported about 40% (random guess) of gpp's gameplay into a trem 1.1 qvm based off lakitu7's or something, well it's actually fuma's (outdated) CoW source.. I realised about 2 months ago that tremfusion actually already has gpp-like gameplay but I have no idea how to make it compile qvms, so fak it and I decided to continue anyway. One major thing I'm missing out is turret wind-ups but I want it to be compatible with standard trem 1.1 clients as much as possible, so I can't just do something like add a new event flag, rather I have to make a silent timer variable. But my problem is throughout multiple files, well smooth healing regeneration has been done but I can't think of a way to get the turret spinup to work.

ImageImageYou[TubeImage

User avatar
Anomalous
Programmer
Posts: 318
Joined: Wed Mar 07, 2012 3:51 pm UTC

Re: Programming FAQ

Post by Anomalous »

ViruS wrote:

Why name it 'qtrue' then? Also, If i type "true" in g-edit, g-edit recognises it. The colour code is 'C' not 'CPP' etc.

It is defined in C – more accurately, in C99. We're using C89 mostly because of one somewhat backward M$ compiler.

Debian and Ubuntu packages (squeeze, wheezy, sid; 12.04, 12.10, 13.04) may work on derivatives

OFFEND! … no, that's not right… ATTACK!

vcxzet
Dretch
Posts: 31
Joined: Tue Sep 24, 2013 3:08 pm UTC

Re: Programming FAQ

Post by vcxzet »

update this please

User avatar
kharnov
Granger
Posts: 1851
Joined: Tue Mar 06, 2012 10:54 pm UTC
Clan: GT
Location: New York City

Re: Programming FAQ

Post by kharnov »

What would you like to see added or changed?

User avatar
Viech
Project Head
Posts: 2139
Joined: Fri Aug 03, 2012 11:50 pm UTC
Location: Berlin

Re: Programming FAQ

Post by Viech »

It's probably best to move this to the wiki. There might already be a relevant article there.

Responsible for: Arch Linux package & torrent distribution, Parpax (map), Chameleon (map texture editor), Sloth (material file generator), gameplay design & programming, artistic direction

Post Reply