Direct 3D 9.0c Quake

Discuss programming topics for the various GPL'd game engine sources.
Labman
Posts: 62
Joined: Fri Nov 05, 2004 2:39 am
Location: Brisbane, Australia
Contact:

Post by Labman »

I just tried the 1.7.1 version, it's really starting to look polished. the customisable HUD is very cool.
Stroggos
Posts: 50
Joined: Tue Apr 14, 2009 11:40 am
Location: Australia

Post by Stroggos »

I will second that. But when 1.8 is released I'm gonna create a whole game with it!!!
xaGe
Posts: 465
Joined: Wed Mar 01, 2006 8:29 am
Location: Upstate, New York
Contact:

Post by xaGe »

..Having graphical issues after closing out DirectQ 1.7.3 The screen goes all neon pinky vomit..lol Its not something I can take a screen shot of because it looks normal when I try to printscreen. I'll take a shot with my camera in a minute and update this post...

Image

..If I run FTE or DP after this then quit the screen returns to normal.
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

DirectQ isn't restoring your monitor gamma properly on exit. Have you a custom gamma ramp set on your monitor? It may also be a driver issue or a failure to do some error checking on my part. Can you confirm what hardware you're on so that I can check for any known bugs?
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
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

I think I've resolved this one. DirectQ was doing funky stuff with gamma, basically using Direct3D functions to read gamma ramps but GDI functions to write gamma ramps. It worked so I saw no reason to change.

I've switched to pure GDI (Direct3D gamma writing sucks), and have also added a "vid_defaultmonitorgamma" command to revert your monitor gamma to a linear ramp if things go badly wrong. It's a "panic button", in other words.
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
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Post by Spike »

the GDI one sucks in that it only supports a limited range of values, and locks up for a second or so whenever its changed.

I had hoped the d3d one didn't do that...
xaGe
Posts: 465
Joined: Wed Mar 01, 2006 8:29 am
Location: Upstate, New York
Contact:

Post by xaGe »

..Intel GMA 4500M HD with no custom gamma...
mh wrote:DirectQ isn't restoring your monitor gamma properly on exit. Have you a custom gamma ramp set on your monitor? It may also be a driver issue or a failure to do some error checking on my part. Can you confirm what hardware you're on so that I can check for any known bugs?
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

Spike wrote:the GDI one sucks in that it only supports a limited range of values, and locks up for a second or so whenever its changed.

I had hoped the d3d one didn't do that...
It looks to be just a wrapper around the GDI one (you can even pass the same data pointer between the two and have things work) with some added restrictions and awkwardness. :evil:
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
c0burn
Posts: 208
Joined: Fri Nov 05, 2004 12:48 pm
Location: Liverpool, England
Contact:

Post by c0burn »

If this engine had CSQC and some QW style netcode I would marry it.
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

c0burn wrote:If this engine had CSQC and some QW style netcode I would marry it.
I've yet to see a usage of CSQC outside of tech demos, but I might not have looked hard enough. Unfortunately porting the sample implementation (which I have studied) is a non-trivial task. It needs a conversion to C++, cvars and commands need working over, and integration with the renderer needs to be heavily reworked. Add in the test/debug cycle and we're looking at a time scale that may possibly be measured in months, during which nothing else would get done. :(

It is something that I want to do however, and yeah, it's a pain in the ass to me that these things exist that prevent me.
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
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Post by frag.machine »

Call me an heretic if you want, but I never felt any real need for CSQC in any mod experiment I ever implemented/imagined. I mean, most features we see in CSQC actually could (and should) be implemented with some kind of markup language, which means great advantage to modding teams where programming resources are not always available(or, at least, not with the required skills). That said, I am NOT BASHING Spike's (and others) efforts; I reckon there's a lot of cool features in CSQC right now. BUT they are not EASY to use. And all this effort may end up meaning nothing more than a curiosity, a lonely programmer experiment to the average joe if a) there's no good documentation and standards ensuring to the modder his works stills behaving as expected across engines; and b) it requires non trivial programming skills to do relatively simple things like creating menus, an in-game mouse cursor or using alias/BSP models in a HUD.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Post by Spike »

Logically, there are two sorts of CSQC mod.
Hud-only (perhaps including in-game menus), and full mods.

Hud only mods need stats builtins, and 2d drawing builtins. String manipulation builtins are a real bonus. Anything else isn't strictly required for them. The 3d builtins can be nooped safely enough tbh.
Avirox has a TF mod using such a csqc progs. If the client supports csqc, they get slightly richer menus and an extended hud. If the client doesn't support it, then they don't get any of that.
Extra info is sent via stats, the csqc doesn't need to do anything about any entities at all. Just pure reading stats and drawing 2d stuff.
With the basic example code that was on the wiki ages ago you get one QC file which is basically a black box. Which calls into the hud code to draw some stuff.

The other sort is more complete, with full ent/scene/property/spawning/traces/etc. There is muuuch more work needed here to get everything working.
The black box that was present in the other sort of csqc mod is opened up, and the modder can start using the draw functions to add entities to the 3d scene.

But yeah, an engine could potentially add partial support and treat the builtins that form the black-box part as a no-op. The mods could use custom huds to provide custom bits and bobs which would not always be dependant upon (even partial) csqc support itself.
But yeah, a partial csqc implementation can still be useful, which would not involve breaking apart the renderer at all. Full and complete support would require that, however, but most mods would never need it, tbh.

You can find an example of models-on-hud in FTE's svn at trunk/quakec/csqctest, as part of my attempt to make a q3 hud.

Even the sample implementation is not complete. :/
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

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
Chip
Posts: 575
Joined: Wed Jan 21, 2009 9:12 am
Location: Dublin, Ireland
Contact:

Post by Chip »

mh wrote:1.8.0 Alpha release is out. ;)

http://directq.codeplex.com/Release/Pro ... seId=38544
Got it! Started testing it already on my new mod.
QuakeWiki
getButterfly - WordPress Support Services
Roo Holidays

Fear not the dark, but what the dark hides.
Monster
Posts: 101
Joined: Sat Jan 07, 2006 10:27 pm
Location: North Carolina

Post by Monster »

So I believe I've found the reason why DirectQ was giving me a grey screen of death. After updating my video card drivers and updating directX drivers, I downloaded DirectQ 1.8.1 and installed it into a fresh quake folder, with nothing but the two .pak files. I loaded it up and it seemed to work fine.

When I was turning off all the cl_bob settings, cl_bobcycle 0 made the screen completely grey again. It seems anything above 0 fixes it. my autoexec.cfg and config.cfg files before had cl_bobcycle 0 in them, explaining why the screen was always grey until I did a fresh install.

So cl_bobcycle 0 seems to be my problem. oddly enough.

I noticed upon connecting to a server with a custom map I don't have, the engine crashes. Also it'd be nice to show the rankings at the end of a multiplayer game. The customize controls menu doesn't seem to respond to my mouse clicks, so I have to do a bind mouse1 "+attack" command in the console. It does, however, respond to mousewheel. Is there a way to adjust the size of the gun model? I'm on 1680x1050x32 resolution, using fov 110 and the gun model still looks quite big as compared to other engines like Darkplaces or Fitzquake.

I'm glad I finally discovered the reason for all my directq problems! Awesome engine. A timedemo of demo1.dem gives me 600 fps with 1.6 seconds. loving it so far.
Post Reply