News | Forum | People | FAQ | Links | Search | Register | Log in
Coding Help
This is a counterpart to the "Mapping Help" thread. If you need help with QuakeC coding, or questions about how to do some engine modification, this is the place for you! We've got a few coders here on the forum and hopefully someone knows the answer.
First | Previous | Next | Last
 
I think the right question is: in order to do a total conversion, what can I actually replace without touching engine code? 
Everything 
 
Separation Anxiety 
Quake actually has a really good segregation of duties between the engine and the QC code - I've heard how much harder it is to decouple gameplay and visual modifications in DooM. A good example to have in mind is the total conversion Malice, which replaced every graphical and audio asset in Quake, with completely different enemy behaviour and gameplay. All of this was accomplished without any modification of the engine (it predates the source being published).

There are some places where changes are more difficult/impossible to make, like the HUD or the fundamental physics or the rendering of surfaces. But if you want a monster with all new animations, behaviours and attacks, that's easily in reach of QC.

It's a shame Inside3d has been hacked, as that used to be a good place to start. However, the best resource for a new coder who wants to modify monsters is AI Cafe, and although the original site is long gone there's a mirror at:

http://www.quakewiki.net/archives/aicafe/tutorial/main.htm

Although I love promoting my own site, unfortunately it's pitched at the vanishingly small "experienced QC" crowd, so go do the AI Cafe tutorials first. 
 
Funny you should mention that today... with AtomicGamer going down, Inside3d is in the process of relocating to insideqc.com FrikaC registered it today and already migrated the forums. Hopefully less... hacked at, this time. 
Subculture 
While playing Criterion's "SubCulture" underwater adventure I found in the data bank a file called scen1.bsp.

I know it's a stupid question, but in my attempt to break it open, hoping to make my own levels, is a bit top off my hat.

Sureley it's a complete diferent bsp file as the regular quake maps, but I feel I'm not the first one to try.

Is there any chance of luck making this happen, or is it the same dead end as trying to decompile the Malice progs? 
I LOVE THAT GAME 
It has nothing to do with Quake's bsp format, it uses an early version of Renderware. I once managed to persuade Rich to reverse engineer the format of the models, so Noesis supports those. But I think not the map itself, always wanted to try that. 
Anchor 
I had my old 3dxf vodoo card,
and saw there was a retexturing project in 2008.
Games like Unreal and Rune have a fine look with it.

So I'm not the only tin can in the ocean, but I sure would like to make
maps for it. It would make the game's potential so much larger. 
Hi Warren! 
 
 
WTF? Couldn't find it.

Anyway ... thanks!

My question for those who are in the know is this ... in the monster death routines, does it add any efficiency to change this:

void() wiz_death8 =[ $death8, wiz_death8 ] {};

Into this:

void() wiz_death8 =[ $death8, SUB_Null ] {};

It seems like in the original code it will just loop forever on the corpse setting the last death frame for all time.

Why is SUB_Null a terrible idea? 
 
you are correct, it does loop forever.

doing sub_null is a good idea and I don't know why ID chose not to do that. it's possible that at the time they were doing the scripts that entities had to be 'active' with a nextthink and valid think to be able to move (this is how bsp movers work, for example).

what i prefer doing is to make an ai_dead() method that i run at the end of any monsters death anim. this way I can hook things in easily to all monsters and in this method, i'd just do a self.think = SUB_NULL; along with a self.nextthink = 0.

if you really want to be nuts, doing self.nextthink = 0 is probably the most efficient because that will cause it to never think with a single operation. but that's just getting silly. ;) ;) 
Deez Nuts! 
Got eeeem! 
 
So, here we are again ... Is there any way to use the "cvar_set" function without it spamming to the screen?

For example:
cvar_set ("sv_gravity", ftos(self.count));

Works great but it spams the fact that's changing it to the screen... 
 
is using stuffcmd an option? 
 
Good idea, but it spams the results too.

I mean, it's not terrible but it's less clean looking ... 
??? 
/n /n /n

/n
/n 
 
/not 
 
it does? i have used stuffcmd a lot, i honestly don't remember it doing that. :( 
 
Maybe changing the gravity is a special case ... it actually lies too. It says gravity has been set to the older value instead of the current one. It's a major troll. 
 
stuffcmd ( player, "sv_gravity " );
stuffcmd ( player, ftos(self.count) );
stuffcmd ( player, "\n" ); 
Technical Tip 
You should use servercmd instead of stuffcmd, because in coop the player may not have the rights to change server settings. Not sure if it spams the console less... 
 
My QuakeC has never heard of servercmd or server_cmd ... ?? Google is coming up pretty dry as well. 
 
i think he meant localcmd. executes commands as if they were typed on the server's console. (stuffcmd is like if the player types it) 
Oh Cool 
http://www.gamers.org/dEngine/quake/spec/quake-spec34/qc-menu.htm

is useful. i remember printing this out way back... lots of nice info in there and easy to sort through. see 8.10 for localcmd. 
 
Thanks for trying but, no, same ... 
 
Might be that changing gravity is just one of those things that Quake feels the need to tell everyone about. :) 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.