Page 1 of 2

Programming FAQ

Posted: Tue Oct 09, 2012 10:43 pm UTC
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.


Re: Programming FAQ

Posted: Wed Mar 13, 2013 11:15 am UTC
by poVoq

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


Re: Programming FAQ

Posted: Wed Mar 13, 2013 3:39 pm UTC
by Ishq

Eventually.


Re: Programming FAQ

Posted: Thu Mar 14, 2013 11:44 am UTC
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


Re: Programming FAQ

Posted: Thu Mar 14, 2013 1:48 pm UTC
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.


Re: Programming FAQ

Posted: Sat Mar 16, 2013 10:00 am UTC
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.


Re: Programming FAQ

Posted: Sun Mar 17, 2013 8:53 pm UTC
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.


Re: Programming FAQ

Posted: Wed Oct 02, 2013 8:10 pm UTC
by vcxzet

update this please


Re: Programming FAQ

Posted: Thu Oct 03, 2013 4:15 pm UTC
by kharnov

What would you like to see added or changed?


Re: Programming FAQ

Posted: Thu Oct 03, 2013 4:34 pm UTC
by Viech

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