Announcement

Collapse
No announcement yet.

Qrack 2.01 beta public release

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Qrack 2.01 beta public release

    Well I've finally gotten around to building a release and what better way to find bugs than to just toss it in the water and see if it floats .

    Download (includes source): http://www.quakeone.com/qrack/dist/qrack2.01beta.zip

    What's new since 1.90:


    Added: Inability to (accidentally) load multiple versions of Qrack to save resources..
    Can be overridden with "-multipleinstance" command line parameter.

    Changed: MAX_ENT_LEAFS to 256 from 16

    Changed: Typing changelevel with no mapname will pick a random map for you. Nice for playing wih FrikBots.

    Added: gl_decal_count cvar sets maximum number of decals to be drawn at one time.

    Fixed: remove oldest decal from list if max decal limit hit, always drawing new decals.

    Added: random decal sizes when created.

    Added: decal alpha channel support.

    Fixed: if cl_web_download fails because of file not found Qrack should not crash.

    Fixed: reconnect command works now, just type reconnect if you get disconnected.

    fixed: old bug with pq_teamscores when a team had a negative score!

    added: gl_powerupshell_size, to control the size of a model's polygon shell effect.
    (default 0), range: 0 to 10.

    fixed a bug with m_filter.

    fixed: if sv_defaultmap is null ("") then Qrack will return with error :
    Couldn't load map: 'mymap.bsp'. if map not found.

    modified: gl_fogenable is set in worldspawn for maps that wish to autoload fog settings,
    using gl_fogenable 2 forces current fog settings to carry over if the next map doesnt
    have a fog key in worldspawn. This basically forces fog ON all the time.

    added: scr_bloodsplat 0 | 1
    shows bloodsplats on player's screens when being hurt.

    Fixed: gl_rain is now alot faster.

    Fixed: R_Celshading 1 & 2 with cl_teamskins 1.

    Fixed: Decals are not added to animated textures.

    Added: When recording a demo, show_rec will display "[*REC]" on screen.
    usage:
    show_rec 0|1 to toggle
    show_rec_x horizontal positioning
    show_rec_y vertical positioning

    Added: Enhanced BuiltIn Function System (EBFS) by Maddes

    Added: FrikFile Support

    Added: cl_levelshots 0 |1
    Displays an image between level loads and fades out of view with the name of the map centerprinted.
    (custom levelshot images should be placed in "/textures/levelshots" )

    Added: scr_centerprint_levelname 0|1
    Displays a centerprint of the map's worldspawn key "message" at map start.

    Fixed: if a server model is not found, or can't be downloaded use null.mdl instead.

    Fixed: Fullbright skins on 8 bit player models only illuminate the original fullbright colors (>224)
    This allows gl_fb_models 1 to correctly work for player models without making the entire skin fullbright!
    Originally in Quake the player skin had a fullbright little RED dot on the gun, which was broken in glQuake.

    Added: CL_TEAMSKIN support for md3 models!

    fIXED: if transparent then no entity shadow!!

    Added: cl_viewbob 0|1 default 0, bobs the pov as a player walks.
    This allows the gun to sway with cl_bob but keeping the pov steady.

    Fixed: coronas are not visable through doors/platforms

    Fixed chase_active so the view never pokes into the wall!

    added MOVETYPE_FOLLOW for Nehahra support (oops! was missing!)

    added LordHavoc's implementation of rotation on MOVETYPE_FOLLOW objects.

    added gl_free_world_textures cvar to clear out loaded texture before each map load...
    + saves texture memory
    + reloads color pallete (and/or bpp)
    + resets the mipmap level

    Changed how the screen aspect was hard coded in SCR_CalcRefdef.

    Tweaked CalcFov again, hopefully for good!

    Added: Rotating BMODELS from DarkPlaces.

    added preliminary support for HalfLife 1 maps with 24bit texture support
    www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

  • #2
    Thanks for the updates rook

    I tried it out on Rquake coop this morning. It kicks me out to observer every time i progress to the next level or map change...
    Last edited by turtlevan; 06-29-2010, 02:48 PM.
    Originally posted by Magnus
    Apology accepted.

    Comment


    • #3
      awesome! whats bit.mdl for?


      PLAY QUAKE DODGEBALL!

      http://www.moddb.com/mods/quake-dodgeball

      Trickle's VWeps

      Comment


      • #4
        a few questions & suggestions

        nice to see an update of qrack a here are my notes:

        - what is the variable that controls maximal distance that is still rendered by the engine. i have tried some big maps and the level geometry in the distance sometimes disappears behind the sky or a skybox.

        - some big maps still don't work e.g. one map in soul of evil - indian summer. i don't know if it is just the matter of its sheer size or some new mod content issue. same problem with engine-killer warspasm or tme masque of the red death - i'm not a coder so i have no idea whether it is even possible to make qrack compatible with these monster maps but it would be sweet.

        -quoth compatibility: qrack crashs when using plasma gun, the same problem with the rocket luncher with guided missiles from indian summer and attack of some new monsters from indian summer causes the crash too.

        everything else is fine, i like particle effects in qrack, especially laser shots, lightning beam and my personal favorite: charging shambler :-)
        my projects so far:
        Travail retextured
        Tronyn in high definiton
        Ab
        yss of Pandemonium HD textures
        Nehahra rtlights and other experiments

        Comment


        • #5
          Originally posted by turtlevan View Post
          I tried it out on Rquake coop this morning. It kicks me out to observer every time i progress to the next level or map change...
          That is beacuse the reconnect command has a purpose in the NetQuake protocol that (for some reason) isn't reconnecting to the server if the connection is dropped.

          The server will send you the reconnect command on every new map and QRack having it like this will cause you to get disconnected and then reconnected to the server, ending up in observer mode on an RQuake/RuneQuake server.

          Comment


          • #6
            Yes, it's possible to make Qrack compatible with these maps, but it's a LOT of work. You need to fix some small bugs in the BSP loader and clipnode checking, that's easy. The hard part is that you need to devise a new protocol (or preferably pick one of the currently existing standards - I suggest FitzQuake's) and make it peacefully coexist with protocol 15. THEN you need to extend maximums on a lot of stuff that Quake currently keeps in static arrays without using too much memory.

            Anyway, back on topic. Congrats on this so far. I'm loving the way that you don't need a "-game qrack" to include your custom content (is that new?)

            Some hopefully constructive feedback:

            Animated lightstyles dropped my FPS to under 10, even on start.bsp. I'd suggest uploading them in bulk rather than per-surface.

            Running with -nomtex crashed. Not a big deal, but I did want to see if it would make animated lightstyles faster, as otherwise I couldn't test gameplay much.

            I'd also suggest starting in a windowed mode and then switching to fullscreen (rather than the other way around - quite disconcerting!) if that's the mode selected in the user's config.

            And you might leave the NCB out of the source distribution!

            Anyway, I can compile this baby OK, so prepare for some more in-depth feedback!
            IT LIVES! http://directq.blogspot.com/

            Comment


            • #7
              Congrats ! That's a lof of work with many neat ideas !

              And you're right, it's definitely the most effective way to find bugs
              engine: quore.free.fr

              Comment


              • #8
                Some really neat features there r00k! Nice work, I should check it out

                - what is the variable that controls maximal distance that is still rendered by the engine. i have tried some big maps and the level geometry in the distance sometimes disappears behind the sky or a skybox.
                That would be r_farclip (set to 16384 if you want to make sure that all of what's visible on the map is rendered at all times, but beware of potential performance loss)

                Comment


                • #9
                  Nice! I'll check to see if the packet overflow bugs still exist.

                  Comment


                  • #10
                    Originally posted by LockNLoad View Post
                    awesome! whats bit.mdl for?
                    I've included the 3wave hook models (required for connecting to ctf servers).

                    Originally posted by MHQuake
                    Animated lightstyles dropped my FPS to under 10, even on start.bsp. I'd suggest uploading them in bulk rather than per-surface.

                    Running with -nomtex crashed. Not a big deal, but I did want to see if it would make animated lightstyles faster, as otherwise I couldn't test gameplay much.

                    I'd also suggest starting in a windowed mode and then switching to fullscreen (rather than the other way around - quite disconcerting!) if that's the mode selected in the user's config.

                    And you might leave the NCB out of the source distribution!
                    Ya, animated (interpolated) lightstyles needs an overhaul.

                    I've almost ignored cards without multiple TMUs, ie geforce2MX.
                    There's alot of refining to do especially with player skins.

                    The .ncb file was an oversight oops!

                    Big map support needs to be done properly. In 1.90 I just blindly increased the values in the header files to make some maps load. I've reverted back to Quake Standard values and I'm working on the proper way of doing this...

                    About the reconnect command I'll back track through that portion, I thought I had it worked out that *if* you were connected and the message to "reconnect" came from the server to handle it the standard way, but if the message had been typed in console, and you were disconnected it would fill in the server's DNS for you replacing "reconnect" with "connect thelastserverIwason.com"...

                    Thanks for the feedback! back to work..
                    www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                    Comment


                    • #11
                      re: reconnect

                      if (cmd_source == src_client) { // src_client = "came in over a net connection ..."
                      // don't do the new stuffs
                      }

                      ?
                      Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                      So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                      Comment


                      • #12
                        Anything less that 2 TMUs I don't think is an issue at all. OpenGL 1.3 requires a minimum of 2, and for an engine like your's I think it's reasonable to set that as a baseline. No need to be concerned. There is a need to be concerned about 2 TMU cards; a lot of GeForce 4MXs out there only have 2, and I've been burned by that one before myself.

                        Me, I've 8 on the machine I tested on, but was just curious to try the -nomtex path as I has found the multitextured path to be so slow.

                        But then again that's the reason for this release, isn't it?
                        IT LIVES! http://directq.blogspot.com/

                        Comment


                        • #13
                          Code:
                          typedef enum
                          {
                          	src_client,		// came in over a net connection as a clc_stringcmd
                          					// host_client will be valid during this state.
                          	src_command		// from the command buffer
                          } cmd_source_t;
                          void SV_SendReconnect (void)
                          {
                          char data[128];
                          sizebuf_t msg;

                          msg.data = data;
                          msg.cursize = 0;
                          msg.maxsize = sizeof(data);

                          MSG_WriteChar (&msg, svc_stufftext);
                          MSG_WriteString (&msg, "reconnect\n");
                          NET_SendToAll (&msg, 5);

                          if (cls.state != ca_dedicated)
                          Cmd_ExecuteString ("reconnect\n", src_command);
                          }
                          Unfortunately, a stuffcmd fakes a src_command, instead of a src_client.
                          The fubar'd behavior of Host_Reconnect_f is that if you type reconnect in the console when you are connected will stall the client, eventually causing a lagout. I wanted to make it instead to DC then reconnect, or if you were already disconnected to just connect. But, since this throws u out of the game for some mods, I'll have to meet this half way.
                          Basically if you get lagged out just type reconnect, and it will work.
                          Otherwise if you are connected then it will behave like normal and wait for signons from the server, which will also lock your connection if you blatantly typed reconnect in console
                          A simpler solution would be to create a whole NEW command called relogin or just have it fill in the last hostname if connect has no parameters?

                          @MH: Actually version 1.90 doesnt work with -nomtex either!
                          www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                          Comment


                          • #14
                            ok I think i've got this working now....

                            Code:
                            /*
                            ==================
                            Host_Reconnect_f
                            
                            This command causes the client to wait for the signon messages again.
                            This is sent just before a server changes levels
                            ==================
                            */
                            
                            void Host_Reconnect_f (void)
                            {		
                            	SCR_BeginLoadingPlaque ();
                            	cls.signon = 0;
                            }
                            
                            extern char server_name[MAX_QPATH];
                            
                            void Host_ConnectToLastServer_f (void)
                            {
                            	char host[MAX_QPATH];
                            	
                            	if (!sv.active)
                            	{
                            retry:
                            		SCR_BeginLoadingPlaque ();
                            		cls.signon = 0;
                            
                            		if (cls.state == ca_disconnected)
                            		{
                            			Q_strncpyz(host, va("%s:%u\n",server_name,net_hostport), sizeof(host));
                            			if (server_name[0])
                            			{
                            				Con_Printf("reconnecting to %s...\n",host);
                            				CL_EstablishConnection(host);
                            			}
                            			else
                            				Con_Printf("No server connection previously established this session.\n");
                            		}
                            		else
                            		{
                            			CL_Disconnect ();
                            			goto retry;
                            		}
                            	}
                            }
                            /*
                            =====================
                            Host_Connect_f
                            
                            User command to connect to server
                            =====================
                            */
                            void Host_Connect_f (void)
                            {
                            	char	name[MAX_QPATH];
                            	
                            	cls.demonum = -1;		// stop demo loop in case this fails
                            	if (cls.demoplayback)
                            	{
                            		CL_StopPlayback ();
                            		CL_Disconnect ();
                            	}
                            
                            	SCR_BeginLoadingPlaque ();
                            	cls.signon = 0;		// need new connection messages //R00k redundant?
                            
                            	if (!Q_strcasecmp(Cmd_Argv(1), "last"))
                            	{
                            		Host_ConnectToLastServer_f();
                            	}
                            	else
                            	{
                            		Q_strncpyz (name, Cmd_Argv(1), MAX_QPATH);
                            		CL_EstablishConnection (name);	
                            		Q_strncpyz (server_name, name, MAX_QPATH);	// added from ProQuake
                            	}
                            }
                            Basically RECONNECT is standard.
                            I've added a new command called lastconnect that will 'reconnect' to the last valid connection. Or you can type 'connect last' and it will do the same thing.
                            www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                            Comment


                            • #15
                              Just copied over the new Qrack, getting the WSOD!



                              Uploaded with ImageShack.us

                              &



                              Uploaded with ImageShack.us

                              Any suggestions on how to fix this?

                              Running 7800GT on AMD64bit and stuff.
                              Thanks!
                              QuakeOne.com
                              Quake One Resurrection

                              QuakeOne.com/qrack
                              Great Quake engine

                              Qrack 1.60.1 Ubuntu Guide
                              Get Qrack 1.60.1 running in Ubuntu!

                              Comment

                              Working...
                              X