Duke4.net Forums: I've been experimenting with QuakeC, while waiting for Wrath: Aeon of Ruin... - Duke4.net Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

I've been experimenting with QuakeC, while waiting for Wrath: Aeon of Ruin...

#1

I've read that the new 3DRealms-branded game would use QuakeC for game logic (I don't know if it's easier that way or it's just to better convey the spirit of 1990s games, but I don't care). That made me wonder: just how powerful is QuakeC for the creation of new content in a Quake engine-based game?

So I gathered the necessary tools, to see what I could do with QuakeC. I decided I would use Darkplaces, so I would not be affected by palette and geometry limitations, and also because I had already made a partial recreation of a Lameduke map which I decided to use as a test sandbox.

And the results... well, I found out that QuakeC is surprisingly flexible.

Posted Image
Golden Desert Eagle with custom scope, which replaces the standard shotgun. The model comes from Soldier of Fortune 2 (the gun, the scope) and the Duke3D HRP (the hand). It shoots 7 traces just like the original shotgun, but their spread is zero.

Posted Image
This and a couple more weapons now have an alt-fire mode. In this case, the Desert Eagle is used as a sniper rifle and delivers double damage, while taking twice the time for reloading.

Posted Image
Shotgun, which replaces the double-barreled shotgun. The model comes from the Duke3D HRP. It shoots 14 traces like the original double-barreled shotgun, with half the spread because I don't like feeling like I'm shooting cotton candy when I shoot a distant enemy.

Posted Image
M16, which replaces the nailgun. The model comes from Soldier of Fortune 2 (the gun), the Duke3D HRP (the hand) and I modeled the flag. It shoots nails (or "spikes", like they are called in QuakeC) like the normal nailgun, but the shooting offset has been modified to be coherent with how the weapon is held.

Posted Image
Alt-fire mode for the M16: it fires pipebombs. Not only I have changed the model from the standard Quake grenades, but now they explode when the player detonates them, rather than after a fixed time.

Posted Image
RPG, replacing the rocket launcher. I made the model from scratch, although I based it on the first official DNF screenshot. The shooting offset has been altered from the Quake rocket launcher to be coherent with how the weapon is held.

Posted Image
Alt-fire for the RPG. Why shoot a rocket, when you can shoot two?

Posted Image
Brand new object! The model comes from the Duke3D HRP. This trashcan shares part of the code with the small exploding box, but it can contain an object (which object depends on the spawnflags value) which can then be picked up.

Posted Image
The trashcan explodes into pieces when it's shot. This particular trashcan contained a six-pack of Coke (model made from scratch by me) which gives +30 health, like in Lameduke.

Posted Image
The gas bottles and the barrels share part of their code with the big exploding box, spawnflags decide the model to use. The gas bottle model comes from the Hollywood Holocaust Rethinked mod, while I made the barrel models.

Posted Image
The barrels also explode into pieces when shot.

Posted Image
Another object I added is a jetpack. It's based on Harlequin's jetpack mod, but I didn't like how it used the original backpack model and it basically replaced the biosuit (and even worse, if you wanted to have both jetpacks and biosuits in a level, you could only randomize their appearance), so I fixed that. I made a brand new model, and I modified the code so the biosuit object can either be a biosuit or a jetpack, depending on the spawnflags value.

Posted Image
And here we go up up and away!

After this experience, I can say that I like QuakeC, I will keep experimenting with it, and I agree with a joke I read in a QuakeC forum: the Quake engine is awesome, it's the mod called "id1" that sucks. :o

This post has been edited by Altered Reality: 28 October 2019 - 06:10 PM

8

#2

Interesting, very interesting. How difficult would it be for someone not familiar with it to pick it up? Based on other games made with the Quake engine adding in an interact key and a 3rd person mode wouldn't be too hard. Is there the potential framework for adding in actions that directly interact with the enviroment? Like say, jumping up a cliff and then grabbing the edge of it and then climbing up it. I have no reason for asking this at all, I'm not curious at all. :o
0

#3

View PostMorpheus Kitami, on 28 October 2019 - 08:18 PM, said:

Interesting, very interesting. How difficult would it be for someone not familiar with it to pick it up?

How well do you know C? If you're at least familiar with its constructs, you'll immediately notice that the syntax to create a function is a little different, and there are no switch and for constructs, but it's still pretty easy to understand.

View PostMorpheus Kitami, on 28 October 2019 - 08:18 PM, said:

Based on other games made with the Quake engine adding in an interact key and a 3rd person mode wouldn't be too hard.

An interact key would be trivial, and it's gonna be the second thing I'm gonna try next (the first is breakable architecture). I think it would be enough to dedicate a key to a new "impulse" command, which calls a function that shares code with the axe hit function, except that it uses a new animation and only deals damage to func_buttons. Environmental interaction would then be managed from the level editor, with triggers that activate what you want to move.
A rudimentary third person view is already in place, it's only the movement of the camera that should be changed. Since that is managed by cvars, QuakeC can certainly do it.

View PostMorpheus Kitami, on 28 October 2019 - 08:18 PM, said:

Is there the potential framework for adding in actions that directly interact with the enviroment? Like say, jumping up a cliff and then grabbing the edge of it and then climbing up it. I have no reason for asking this at all, I'm not curious at all. :o

Grabbable ledges would be a little more complex, and they would need an interact key already in place, and maybe a crouch key too. You would then need a custom object for the ledge (another variation of func_button, maybe), which, when activated, influences how the player moves: no forward or backward movement, jumping over the ledge if the jump key is pressed, and letting go if the crouch key is pressed. l still don't know how to implement this, because I haven't read yet how to modify the way the player character moves.
0

#4

View PostAltered Reality, on 29 October 2019 - 06:02 AM, said:

How well do you know C? If you're at least familiar with its constructs, you'll immediately notice that the syntax to create a function is a little different, and there are no switch and for constructs, but it's still pretty easy to understand.

Uh, not very well. My coding tends to be like chopping down a tree with a hammer.

Quote

An interact key would be trivial, and it's gonna be the second thing I'm gonna try next (the first is breakable architecture). I think it would be enough to dedicate a key to a new "impulse" command, which calls a function that shares code with the axe hit function, except that it uses a new animation and only deals damage to func_buttons. Environmental interaction would then be managed from the level editor, with triggers that activate what you want to move.
A rudimentary third person view is already in place, it's only the movement of the camera that should be changed. Since that is managed by cvars, QuakeC can certainly do it.

I kind of figured both of those were possible. Quake-derived games have both of those features, just not Quake itself IIRC.

Quote

Grabbable ledges would be a little more complex, and they would need an interact key already in place, and maybe a crouch key too. You would then need a custom object for the ledge (another variation of func_button, maybe), which, when activated, influences how the player moves: no forward or backward movement, jumping over the ledge if the jump key is pressed, and letting go if the crouch key is pressed. l still don't know how to implement this, because I haven't read yet how to modify the way the player character moves.

That sounds like it would be a pain to add the special ledges to every possible ledge. Then again, that isn't exactly a problem unique to QuakeC...

Now that I think of it, the first question I should have asked is how hard is it to add in your own models and animations. I understand that the animation is quite different than the usual bone-based animation. I take it I can't just plop something in from Blender?
0

#5

View PostMorpheus Kitami, on 29 October 2019 - 01:51 PM, said:

Now that I think of it, the first question I should have asked is how hard is it to add in your own models and animations.

Quake (and Darkplaces) does not support bones directly, but you can use bones to create frame-based animated .MD3 models, which you will be able to use in the game.

Anyway, I tried to use 3D Studio Max and Gmax to animate a Duke Nukem model made by Commando Nukem that reproduces the appearance of Dirk A. Jones's Duke model for DNF. The intention was to use it instead of the default Quake player model. For the love of me, I can't figure out how to tell the program exactly which vertices are supposed to connect to which bone.

This post has been edited by Altered Reality: 29 October 2019 - 04:32 PM

0

User is offline   Micky C 

  • Honored Donor

#6

IIRC DarkPlaces is open source, so even if QuakeC is powerful, if there was something they weren't able to do, I'm sure they'd find a way to get it done on the engine side.

I haven't been following Wrath closely. Is it the case that they're basically trying to do the full game in QuakeC, like how Voidpoint tried to do all of Ion Fury in con?
0

User is offline   OpenMaw 

  • Judge Mental

#7

View PostAltered Reality, on 29 October 2019 - 04:28 PM, said:

Quake (and Darkplaces) does not support bones directly, but you can use bones to create frame-based animated .MD3 models, which you will be able to use in the game.

Anyway, I tried to use 3D Studio Max and Gmax to animate a Duke Nukem model made by Commando Nukem that reproduces the appearance of Dirk A. Jones's Duke model for DNF. The intention was to use it instead of the default Quake player model. For the love of me, I can't figure out how to tell the program exactly which vertices are supposed to connect to which bone.


I know this is a long way back now, but the way to attach a mesh to bones is via a "skin" at which point you can then paint the weights of each bone ot the verts. though I cant remember if MD3 supports soft assignment or if each vert has to be hard assigned to particular vertices. Soft assignment allows for verts to be weighted between two bones and give you a softer bend at joints. Not really needed for a Quake-level model, but it can be useful for certain things as well.

Did you keep developing this or did you put it on the shelf?
0

#8

View PostCommando Nukem, on 17 January 2020 - 03:52 PM, said:

I know this is a long way back now, but the way to attach a mesh to bones is via a "skin" at which point you can then paint the weights of each bone ot the verts. though I cant remember if MD3 supports soft assignment or if each vert has to be hard assigned to particular vertices. Soft assignment allows for verts to be weighted between two bones and give you a softer bend at joints. Not really needed for a Quake-level model, but it can be useful for certain things as well.

Did you keep developing this or did you put it on the shelf?

I put it on the backburner and started working on a Prey level instead, due to my inability to make bones do what I want with 3D Studio Max and GMax. Do you have screenshots of the correct procedure?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options