Index | FAQ | Search | Memberlist | Usergroups | Profile | Log in to check your private messages | Log in | Register

CSQC: Global Implementation Project Goto page Previous 1, 2, 3 Next

| Inside3d Forums Forum Index -> Engine Programming

View previous topic :: View next topic
Author | Message
--- | ---
Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Dec 10, 2009 3:25 am Post subject: |

I ended up making the csprogsvers folder, operating on the assumption that it couldn't make the folder somehow. I get "csqc closed" messages in the console. Not sure what that means ... but I'll continue playing around.

Back to top |

Spike Joined: 05 Nov 2004 Posts: 944 Location: UK |

Posted: Thu Dec 10, 2009 3:34 am Post subject: |

Downsider wrote:
I remember creating a topic about movement prediction in CSQC. How can that be done without modification to Quake's network protocol? Well, I can imagine it could be done, but you'd end up chopping about every few frames..

not sure, but I'm guessing Baker didn't notice the svc_indep_clientdata stuff.
There is some extra stuff, but there's no reason it couldn't work without actual networking.
Networking differences: clientdata has a sequence number in it, and stats are cleaned up and extended. There's some extra client->server bits too.
csqctest supports clientside prediction, but it does use a builtin to get the default physics, which is basically no-op in non-qw protocols. You'd need to provide your own physics logic to replace that, but csqcwinquake should support the rest (and tracebox, so you can actually implement it). also there's the csqc ents stuff, and two additional client requests, one is a replacement clc_move which has additional sequence info, the other is a qcrequest request to send explicit args to the server in a reasonably clean way.
That's all I can remember.
There is also stuff at the transport level, to serve as a handshake as to the features the client supports (so the server doesn't send extensions to a client which does not support csqc).
Adding a download feature would be a wise decision, but doing so is complicated and bug prone (qrack+friends support curl already?).
_________________
What's a signature?

Back to top |

Spike Joined: 05 Nov 2004 Posts: 944 Location: UK |

Posted: Thu Dec 10, 2009 3:37 am Post subject: |

Baker wrote:
I ended up making the csprogsvers folder, operating on the assumption that it couldn't make the folder somehow. I get "csqc closed" messages in the console. Not sure what that means ... but I'll continue playing around.

Tbh, that's an eroneous message. It'll be printed when csqc is shut down at the end of a map, even if you had no csqc loaded. As well as the start of a map too, as paranoia. :s
Look for stuffcmds. The server *must* tell the client the csprogs version+size to use, or the client will load anything at all.
_________________
What's a signature?

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Dec 10, 2009 3:49 am Post subject: |

Spike wrote:
Adding a download feature would be a wise decision, but doing so is complicated and bug prone (qrack+friends support curl already?).

Yep. And for NQ many of the mods would be single player or you could have the expectation that the player actually installed the mod.
Uses:
1. single player (you should have everything)
2. traditional NQ client + server (CURL download)
3. non-traditional NQ client (non-CURL supporting platform) = have the mod or the files or they are in the "game" download

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Dec 10, 2009 3:23 pm Post subject: |

So far I am having some back luck with trying to get CSQC to run. This is with Spike's csqctest compiled via compiling FTEQCCGUI from the SVN.

Quote:
Source file: progs.src nothing to write ------------------------------------- Source file: csprogs.src outputfile: ../csprogs.dat
compiling optscsqc.qc
compiling optsall.qc
compiling cs/system.qc
cs/system.qc:19: warning: Unknown pragma 'noref'
cs/system.qc:192: warning: Unknown pragma 'noref'
compiling cs/defs.qc
compiling common/classes.qc
compiling common/combuiltins.qc
compiling cs/csbuiltins.qc
compiling common/extensions.qc
compiling common/econstants.qc
compiling cs/constants.qc
compiling common/pmovedefs.qc
compiling common/pmove.qc
compiling cs/keys.qc
compiling common/makeallstatic.qc
compiling cs/prediction.qc
compiling cs/q3playerm.qc
compiling cs/hlpm.qc
cs/hlpm.qc:7: warning: Unknown pragma 'noref'
cs/hlpm.qc:23: warning: Unknown pragma 'noref'
compiling cs/player.qc
in function RemovePlayer (line 10),
cs/player.qc:283: warning: ~ or % prefixes to denote integers are deprecated. Please use a postfix of 'i'
compiling cs/hud.qc
in function Hud_CoopScores_SBar (line 134),
cs/hud.qc:138: warning: Local "mins" defined with name of a global
in function Hud_Draw (line 354),
cs/hud.qc:369: warning: Hud_Q3: Too few parameters
cs/hud.qc:343: Hud_Q3 is defined here
compiling cs/movetypes.qc
compiling cs/map.qc
compiling cs/menu.qc
compiling cs/fun/tetris.qc
compiling cs/fun/osgk.qc
compiling cs/weapons.qc
compiling common/classes.qc
at global scope,
common/classes.qc:42: warning: ~ or % prefixes to denote integers are deprecated. Please use a postfix of 'i'
common/classes.qc:45: warning: initialisation of function arrays must be placed after the body of all functions used (ParseBody)
common/classes.qc:47: warning: ~ or % prefixes to denote integers are deprecated. Please use a postfix of 'i'
compiling cs/test.qc
compiling cs/fun/skinchooser.qc
compiling cs/entrypoints.qc
common/classes.qc:9: warning: function ParseBody was not defined
Recognised progs as a CSQC module
Warning: There are some functions without bodies.
Progs should run on any Quake executor
common/classes.qc:9: warning: ParseBody no references
cs/hlpm.qc:13: warning: baseframe2time no references
cs/map.qc:3: warning: mangle no references
common/classes.qc:43: warning: ParseEntityClass no references
warning: Model progs/eyes.mdl was used but not precached
warning: Model progs/player.mdl was used but not precached
warning: Model progs/missile.mdl was used but not precached
84944 strofs (of 1000000)
38009 numstatements (of 524288)
340 numfunctions (of 16384)
8695 numglobaldefs (of 32768)
123 numfielddefs (108 unique) (of 2048)
8760 numpr_globals (of 65536)
Writing ../csprogs.dat
507028 TOTAL SIZE
Writing ../csprogs.lno
3 unique precache_models
Compile Complete
optres_shortenifnots 25
optres_overlaptemps 12002
optres_constantarithmatic 30
optres_nonvec_parms 1347
optres_assignments 184
optres_unreferenced 184
optres_dupconstdefs 86
numtemps 72
18 warnings
-------------------------------------
Source file: ssqc.src
outputfile: ../progs.dat
compiling optsssqc.qc
compiling optsall.qc
compiling ss/defs.qc
compiling ss/builtins.qc
compiling common/combuiltins.qc
compiling common/extensions.qc
common/extensions.qc:134: warning: #warning: no gecko
compiling common/econstants.qc
compiling common/classes.qc
compiling common/pmovedefs.qc
compiling common/pmove.qc
compiling ss/subs.qc
compiling ss/fight.qc
compiling ss/ai.qc
compiling ss/combat.qc
compiling ss/items.qc
compiling ss/weapons.qc
compiling ss/world.qc
compiling ss/client.qc
in function ClientDisconnect (line 7,
ss/client.qc:1250: warning: ~ or % prefixes to denote integers are deprecated. Please use a postfix of 'i'
in function SV_RunClientCommand (line 1553),
ss/client.qc:1559: warning: too many parameters
ss/client.qc:12: DefaultPlayerPhysics is defined here
compiling ss/player.qc
compiling ss/monsters.qc
compiling ss/doors.qc
compiling ss/buttons.qc
compiling ss/triggers.qc
compiling ss/plats.qc
compiling ss/misc.qc
compiling ss/ogre.qc
compiling ss/demon.qc
compiling ss/shambler.qc
compiling ss/knight.qc
at global scope,
ss/knight.qc:32: warning: Duplicate macro defined (attackb1)
compiling ss/soldier.qc
compiling ss/wizard.qc
compiling ss/dog.qc
compiling ss/zombie.qc
compiling ss/boss.qc
compiling ss/tarbaby.qc
compiling ss/hknight.qc
compiling ss/fish.qc
compiling ss/shalrath.qc
compiling ss/enforcer.qc
compiling ss/oldone.qc
ss/oldone.qc:29: warning: Duplicate macro defined (shake12)
common/classes.qc:9: warning: function ParseRocketClass was not defined
common/classes.qc:9: warning: function ParseGibbing was not defined
common/classes.qc:9: warning: function ParsePlayer was not defined
common/classes.qc:9: warning: function ParseExplosion was not defined
common/classes.qc:9: warning: function ParseBody was not defined
common/classes.qc:9: warning: function ParseNailClass was not defined
Recognised progs as NetQuake server gamecode
Warning: There are some functions without bodies.
Progs should run on any Quake executor
common/econstants.qc:3: warning: false no references
common/econstants.qc:4: warning: true no references
common/classes.qc:9: warning: ParseRocketClass no references
common/classes.qc:9: warning: ParseGibbing no references
common/classes.qc:9: warning: ParsePlayer no references
common/classes.qc:9: warning: ParseExplosion no references
common/classes.qc:9: warning: ParseBody no references
common/classes.qc:9: warning: ParseNailClass no references
ss/player.qc:623: warning: b no references
91176 strofs (of 1000000)
20545 numstatements (of 524288)
2153 numfunctions (of 16384)
4384 numglobaldefs (of 32768)
220 numfielddefs (197 unique) (of 2048)
4386 numpr_globals (of 65536)
Writing ../progs.dat
387608 TOTAL SIZE
Writing ../progs.lno
225 unique precache_sounds
95 unique precache_models
104 unique precache_files
Compile Complete
optres_shortenifnots 117
optres_overlaptemps 7301
optres_constantarithmatic 21
optres_nonvec_parms 3803
optres_assignments 409
optres_unreferenced 35
optres_dupconstdefs 114
numtemps 121
20 warnings

The I toss the csprogs.dat and the progs.dat into c:\quake1\gui
I start c:\quake1\csqcglquake.exe -game gui +map start
I get CSQC closed.
If I start FTEQW with the same command line, it crashes.
Then I tried running a "csqcwinquake.exe -dedicated -game gui" as a dedicated server and connecting the csqcglquake client to it with -game gui in the command line parameters. I still get csqc closed.

Server console wrote:
Host_Init Added packfile C:\quake1/id1/pak0.pak (339 files) Added packfile C:\quake1/id1/pak1.pak (85 files) Added packfile C:\quake1/id1/pak2.pak (17 files) PackFile: C:\quake1/id1/pak1.pak : gfx/pop.lmp
Playing registered version.
PackFile: C:\quake1/id1/pak0.pak : gfx.wad
Console initialized.
Winsock TCP/IP Initialized
WIPX_Init: Unable to open control socket
Exe: 13:36:43 Dec 9 2009
16.0 megabyte heap
========Quake Initialized=========
PackFile: C:\quake1/id1/pak0.pak : quake.rc
execing quake.rc
PackFile: C:\quake1/id1/pak0.pak : default.cfg
execing default.cfg
Unknown command "viewsize"
Unknown command "volume"
Unknown command "sensitivity"
FindFile: C:\quake1/gui/config.cfg
execing config.cfg
Unknown command "joystick"
Unknown command "m_side"
Unknown command "m_forward"
Unknown command "m_yaw"
Unknown command "m_pitch"
Unknown command "sensitivity"
Unknown command "lookstrafe"
Unknown command "lookspring"
Unknown command "cl_backspeed"
Unknown command "cl_forwardspeed"
Unknown command "_cl_color"
Unknown command "_cl_name"
Unknown command "_snd_mixahead"
Unknown command "bgmvolume"
Unknown command "volume"
Unknown command "gl_triplebuffer"
Unknown command "viewsize"
Unknown command "_windowed_mouse"
Unknown command "vid_stretch_by_2"
Unknown command "vid_config_y"
Unknown command "vid_config_x"
Unknown command "_vid_default_mode_win"
Unknown command "_vid_default_mode"
Unknown command "_vid_wait_override"
Unknown command "vid_nopageflip"
Unknown command "gl_subdivide_size"
FindFile: C:\quake1/id1/autoexec.cfg
execing autoexec.cfg
FindFile: C:\quake1/gui/progs.dat
FindFile: C:\quake1/gui/csprogs.dat
PackFile: C:\quake1/id1/pak0.pak : maps/start.bsp
PackFile: C:\quake1/id1/pak0.pak : progs/player.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/eyes.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/h_player.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/gib1.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/gib2.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/gib3.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/s_bubble.spr
PackFile: C:\quake1/id1/pak0.pak : progs/s_explod.spr
PackFile: C:\quake1/id1/pak0.pak : progs/v_axe.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/v_shot.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/v_nail.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/v_rock.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/v_shot2.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/v_nail2.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/v_rock2.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/bolt.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/bolt2.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/bolt3.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/lavaball.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/missile.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/grenade.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/spike.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/s_spike.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/backpack.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/zom_gib.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/v_light.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/flame2.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/flame.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/armor.mdl
PackFile: C:\quake1/id1/pak0.pak : progs/g_nail2.mdl
PackFile: C:\quake1/id1/pak0.pak : maps/b_nail1.bsp
PackFile: C:\quake1/id1/pak0.pak : progs/g_rock2.mdl
PackFile: C:\quake1/id1/pak0.pak : maps/b_rock0.bsp
PackFile: C:\quake1/id1/pak0.pak : progs/g_rock.mdl
PackFile: C:\quake1/id1/pak0.pak : maps/b_rock1.bsp
PackFile: C:\quake1/id1/pak0.pak : progs/g_shot.mdl
PackFile: C:\quake1/id1/pak0.pak : maps/b_shell1.bsp
PackFile: C:\quake1/id1/pak0.pak : progs/g_nail.mdl
PackFile: C:\quake1/id1/pak0.pak : maps/b_bh25.bsp
PackFile: C:\quake1/id1/pak0.pak : maps/b_bh10.bsp
PackFile: C:\quake1/id1/pak0.pak : progs/g_light.mdl
PackFile: C:\quake1/id1/pak0.pak : maps/b_batt1.bsp
PackFile: C:\quake1/id1/pak0.pak : progs/quaddama.mdl
PackFile: C:\quake1/id1/pak0.pak : maps/b_shell0.bsp
PackFile: C:\quake1/id1/pak0.pak : maps/b_nail0.bsp
PackFile: C:\quake1/id1/pak0.pak : maps/b_bh100.bsp
status
host: Main-PC
version: 1.09
tcp/ip: 192.168.1.103
map: start
players: 0 active (8 max)
player entered the game
Read error
SV_ReadClientMessage: NET_GetMessage failed
Client player removed

I'm going to return to integrating the source into the 3 initial target engines.
Advancing the frontier always involves a few arrows in the back and a couple of curves.
Btw ... I have not done this to the engine yet ..

Spike wrote:
I just noticed, you'll need to remove entries from QSG_Extensions in pr_bgcmd.c

Would that make a difference for the above?

Back to top |

avirox Joined: 16 Aug 2006 Posts: 109 |

Posted: Thu Dec 10, 2009 4:10 pm Post subject: |

Can it be a crc thing? I know DP is picky about that, but FTE is not. Not sure how Spike's implementation to winquake relates to the pickiness of one or the other, though..

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Dec 10, 2009 6:11 pm Post subject: |

avirox wrote:
Can it be a crc thing? I know DP is picky about that, but FTE is not. Not sure how Spike's implementation to winquake relates to the pickiness of one or the other, though..

Whatever the answer is, I'm going to trudge on with my work here.
I was just excited to try some CSQC and see it in action and, well, it didn't happen.
I'd even be satisfied if you messaged me a gamedir folder of your CSQC GUI tutorial with a compiled csprogs.dat and progs.dat for me to try in FTE.

Back to top |

Trickle Joined: 26 Mar 2009 Posts: 44 |

Posted: Thu Dec 10, 2009 7:14 pm Post subject: |

I want in ezQuake and QRACK _________________

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Dec 10, 2009 7:27 pm Post subject: |

Trickle wrote:
I want in ezQuake and QRACK

Qrack will happen after I do JoeQuake.
Rook is always changing his source code so I'm doing it after the other ones. No sense of adding it into Qrack 2 or 3 times, ya know!

Back to top |

avirox Joined: 16 Aug 2006 Posts: 109 |

Posted: Thu Dec 10, 2009 8:58 pm Post subject: |

[quote="Baker"]

avirox wrote:
I'd even be satisfied if you messaged me a gamedir folder of your CSQC GUI tutorial with a compiled csprogs.dat and progs.dat for me to try in FTE.

CSQC GUI doesn't need a progs.dat. It's meant to be a plug-in mod extension. It can, of course, interact with ssqc though, but it doesn't in that mod. The csprogs.dat you already compiled should work in FTE now, should it not?

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Dec 10, 2009 9:28 pm Post subject: |

avirox wrote:
I'd even be satisfied if you messaged me a gamedir folder of your CSQC GUI tutorial with a compiled csprogs.dat and progs.dat for me to try in FTE.

CSQC GUI doesn't need a progs.dat. It's meant to be a plug-in mod extension. It can, of course, interact with ssqc though, but it doesn't in that mod. The csprogs.dat you already compiled should work in FTE now, should it not?[/quote]
Both your CSQC GUI 10 and Spike's CSQCTest compiled with FTEQCCGUI and using only the csprogs.dat give me this with FTEGLQW 3343 using -game gui +map start
I pretty much get this in FTEQW with any of the self-compiled csprogs.dat using any version of fteqcc and any combination of fteqw version (2770, 3343). (fteswgl -game gui simply crashes).
I don't have any answers. Is it possible I am compiling wrong (seems hella unlikely, but I don't know)?
The above screenshot is with the map running.
Here is the whole game -gui directory:
http://www.quake-1.com/docs/csqc/gui.rar
With that directory, I do fteglqw (3343) -game gui +map start and get the above screen.

Back to top |

avirox Joined: 16 Aug 2006 Posts: 109 |

Posted: Fri Dec 11, 2009 2:08 am Post subject: |

Baker; Have you tried connecting to megatf coop (74.54.186.230:27500) in FTE? If that doesn't work then I think you need to update your build of FTE

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Fri Dec 11, 2009 2:17 am Post subject: |

avirox wrote:
Baker; Have you tried connecting to megatf coop (74.54.186.230:27500) in FTE? If that doesn't work then I think you need to update your build of FTE

I downloaded it off FTEQW.com earlier today! At least the fteglqw one for absolute certain.
But I'll follow your advice and try some different ones and test connect to your server.
Ok ... how is it possible to be this lucky ...
I've tried to connect to your server 6 times and get the above message or similar (I re-downloaded fteglqw off the FTE site before connecting). I even created a new Quake folder with only pak0 and pak1 in id1 and tried connecting again.
I'm not exactly prone to having irregular issues with a Quake client.
I guess I'll downgrade to from 3343 to 2770 and try again ...
Ok, and guess what 2770 works just fine ...

Back to top |

Trickle Joined: 26 Mar 2009 Posts: 44 |

Posted: Fri Dec 11, 2009 4:54 am Post subject: |

Baker, I'm excited for the Qrack csqc addition! but SOMEONE has to add this to ezQuake..because lets face it. its the most popular qw engine. if FTE has a big release sometime soon though, I think more players will notice the power of this code.
this would also benefit the megatf coop server, as like at least 90% of players use ezquake and will see the awesomeness.
_________________

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Fri Dec 11, 2009 5:09 am Post subject: |

Trickle wrote:
Baker, I'm excited for the Qrack csqc addition! but SOMEONE has to add this to ezQuake..because lets face it. its the most popular qw engine. if FTE has a big release sometime soon though, I think more players will notice the power of this code.
this would also benefit the megatf coop server, as like at least 90% of players use ezquake and will see the awesomeness.

I don't have enough knowledge of how the Quakeworld works at this point and ezQuake's code is radically different from, say, FuhQuake. It is heavily reorganized which can be both a good thing and bad.
And I suspect Spike's test implementation for NQ doesn't translate to Quakeworld directly.

Back to top |

Display posts from previous:

| Inside3d Forums Forum Index -> Engine Programming | All times are GMT Goto page Previous 1, 2, 3 Next
Page 2 of 3

Jump to:

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2004 phpBB Group