Forum

CSQC: Global Implementation Project

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Postby Baker » Thu Dec 10, 2009 3:25 am

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.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Spike » Thu Dec 10, 2009 3:34 am

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?).
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby Spike » Thu Dec 10, 2009 3:37 am

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.
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby Baker » Thu Dec 10, 2009 3:49 am

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
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Thu Dec 10, 2009 3:23 pm

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.

Image

Image

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 78),
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?
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby avirox » Thu Dec 10, 2009 4:10 pm

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..
avirox
 
Posts: 137
Joined: Wed Aug 16, 2006 3:25 pm

Postby Baker » Thu Dec 10, 2009 6:11 pm

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.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Trickle » Thu Dec 10, 2009 7:14 pm

I want in ezQuake and QRACK
Image
User avatar
Trickle
 
Posts: 66
Joined: Thu Mar 26, 2009 11:20 pm

Postby Baker » Thu Dec 10, 2009 7:27 pm

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!
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby avirox » Thu Dec 10, 2009 8:58 pm

Baker wrote:
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?
avirox
 
Posts: 137
Joined: Wed Aug 16, 2006 3:25 pm

Postby Baker » Thu Dec 10, 2009 9:28 pm

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

Image

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.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby avirox » Fri Dec 11, 2009 2:08 am

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
avirox
 
Posts: 137
Joined: Wed Aug 16, 2006 3:25 pm

Postby Baker » Fri Dec 11, 2009 2:17 am

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 ...

Image

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 ...


Image
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Trickle » Fri Dec 11, 2009 4:54 am

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.
Image
User avatar
Trickle
 
Posts: 66
Joined: Thu Mar 26, 2009 11:20 pm

Postby Baker » Fri Dec 11, 2009 5:09 am

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.
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

PreviousNext

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest