Standalone game

Discuss programming topics for any language, any source base. If it is programming related but doesn't fit in one of the below categories, it goes here.
Post Reply
Hazematman
Posts: 54
Joined: Thu Jul 15, 2010 1:58 am
Location: Canada

Standalone game

Post by Hazematman »

I had the idea of creating a small standalone quake mod, that would just add new guns and things like iron sights, but after reading this forum post I now have some questions.

My first question is how limited would I be modding quake using Darkplaces specifically, and I mean by modding it with csqc and svqc. Using csqc+svqc could I create a standalone game? I know I would have to do a little engine modification to load my game instead normal quake, but would I need to do anymore than that to make it standalone? (I've written small 2D games in C++ before so doing some engine code in c shouldn't be too bad, but I'd rather just working on csqc+svqc)

My second question is about the quake progs data stuff. I know if I'm making a standalone game I can't use any of quake's assets which is fine as I plan to create all my assets myself, but am I allowed to use the qc files provided on the getting started page here, or do I have to essentially recreate all those files like the scratch tutorials?

My third question directly correlates with the forum post above, would I be better off creating the standalone game in a quake3 engine like ioquake3? From that post they made modding quake sound unforgiving when just using qc, but after looking at some csqc stuff it looks pretty powerful. Both Darkplaces and ioquake3 support the file formats I would be using (IQM/MD3 and q3bsp), but Darkplaces seems a lot more mature and advance when compared to ioquake3.

My fourth and final question is about modern quake modding. From the looks of it quake modding looks to separated into two groups that I will refer to as "Legacy" and "Modern". "Legacy", would be all the mods that are most likely supported by every single quake engine as they use pure engine features."Modern" would be the use on new things like csqc and modern file formats that give you much more control over what you're doing, but are only supported by a handful on engines. So my question is using some of that legacy stuff bad when you have the option to use more modern stuff like csqc? Also would tutorials like these ones be good to follow, or are they considered out-of-date now that some things can be more effectively done using csqc?

Note: Right now I am a novice to quake modding so I do plan on doing some modding work first to get the hang of things. This would be considered my "Ultimate" project, when I finally know what I'm doing :P
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Re: Standalone game

Post by Spike »

1: csqc is quite powerful really. its a little more procedural than ssqc though (there is only one local player), but should otherwise be equivelent to q3's cgame.
the lack of pointers and stuff is the largest restriction. you're forced to use entities for things such as that, which may not be desirable.

2: I am not a lawyer.

3: ioquake3 does not attempt to be a heavily graphical engine, as far as I'm aware. It seems to focus on bugfixes rather than major overhauls that might be incompatible. really the choice comes down to realtime lighting vs quake3-level rendering, and csqc/progs vs c/qvm.
qfusion is also an option.

4: legacy features generally are more limited and/or more network heavy. They are typically much easier to use however, so you probably shouldn't rule them out entirely. If it does what you want, you might as well use it. Just note that doing things in csqc instead of ssqc can reduce apparent latency, bandwidth requirements, and just be generally smoother, purely by virtue of not needing to network as much.
performance-wise, legacy features are sometimes faster, sometimes slower. Either way this should not be significant (especially if you've got realtime lighting etc killing your framerates).
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: Standalone game

Post by goldenboy »

Regarding QC for a standalone game, I'm pretty sure you can because id re-released the progs source under the GPL. You can sell GPL software, you just need to provide the source code as well.

There are two versions of the progs source code (at least), you'd probably want to use the GPL version.
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Re: Standalone game

Post by mh »

The biggest problem with modding Quake is limitations of the formats. Much of Quake is designed around saving memory and saving storage on an 8 MB MS-DOS machine from the mid 90s, and as such it's formats have a lot of hard limits built in. Any reasonable modern Quake engine will extend these to their utmost, but that utmost is still appallingly low, and beyond that you cannot go. Consider even something like id's self-imposed 1.4 MB size limit on BSP files in the original game - is it a coincidence that this was the typical floppy disk capacity at the time? These limits are no longer relevant on modern hardware and may hit you sooner than you'd like.

Yes, there is a certain fun to be had in pushing against these limits, seeing how far you go while still keeping within them, but that fun comes at the expense of the more practical matter of getting stuff done. This is part of the trap that Quake sets for you - on the surface it seems so simple and so accessible, but as soon as you hit that wall things start to suffer and it stops being fun. Of course you can use different formats, add CSQC, use a more efficient and flexible protocol, but by then are you really modding Quake anymore or are you modding something else? And would it have been better (and easier) for you if you had started out with that something else in the first place?
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: Standalone game

Post by goldenboy »

If I were starting a new project today, I would use Cryengine if my game needed realistic outdoor / nature settings, and UDK for everything else.
Hazematman
Posts: 54
Joined: Thu Jul 15, 2010 1:58 am
Location: Canada

Re: Standalone game

Post by Hazematman »

Cryengine and UDK would not be an option for me as I use linux almost entirely.

I would like to use the quake engine to create a small co-op game, that I can just give to my friends so we can play together. I would like to use the quake engine or something similar, because I would rather not I have to do all the networking stuff and other things in my own game using just c++ with opengl (or something similar to that).

Regrading what mh said, I guess that is more or less my real question. Would it be easier to create a standalone mod in another engine (such as ioquake3 or qfusion), and in that same engine would it be easier to make a mod?

A note on the GPL thing: I don't plan on selling the game, I just want to be able to legally give it to people for free. I'm also a firm believer in FOSS so anything I do will be opensource to begin with.
mikehayes85
Posts: 2
Joined: Mon Aug 27, 2012 1:19 am
Location: Louisville, KY

Re: Standalone game

Post by mikehayes85 »

If you're considering using Quake as a base, I would deeply consider the idTech 4/Doom 3 engine which was recently GPLed. I think you'd have a lot more flexibility and ability to create graphics which can really push the limits of the hardware, rather than the game engine. I would suggest reading some articles on how idTech 4 renders its graphics, particularly with lighting and shadows (you do want to avoid rewriting it with Carmack's reverse, as Creative currently holds the patent on z-fail). As an added bonus, it comes with Radiant built-in :)

Even if you did it entirely on a vanilla Doom 3 core, it would crush anything you could create using the original Quake engine.
revelator
Posts: 2621
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Re: Standalone game

Post by revelator »

Only problem for linux builds is that the built in radiant is disabled in code as its based on mfc not gtk like the old one :/ darkradiant should work fine though.
Doom3 itself works fine in linux though :) and theres been some ports allready to other architectures. Theres also a port called dhewm3 that uses cmake instead of the old scons build script and has numerous fixes to the code.
Productivity is a state of mind.
Post Reply