Nexuiz startup vs network stability

Developer discussion of experimental fixes, changes, and improvements.

Moderators: Nexuiz Moderators, Moderators

Fri Mar 27, 2009 8:55 pm

  • alpha wrote:Alright, so to fix this problem, we have 3 options:

    1. "Download server list" button aka warsow style
    2. Download server list on "multiplayer" window click ([-z-]'s idea)
    3. Manually mess with autoexec config and play with console on every game launch

    How about we don't enforce a use of solution #3 ?


    Solution 3 works fine.
    Just make another nexuiz starup script the executes a cfg file that has the addional option and then executes your normal stuff.
    tundramagi
    Forum addon
     
    Posts: 974
    Joined: Sun Jan 04, 2009 4:53 pm

Fri Mar 27, 2009 9:10 pm

  • That button would be an improvement for 1%, and slow 99% down. No.
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sat Mar 28, 2009 12:15 am

  • divVerent wrote:That button would be an improvement for 1%, and slow 99% down. No.


    Slow down how much :shock: 1 button click?
    quit for good
    alpha
    Alien trapper
     
    Posts: 492
    Joined: Tue Jun 17, 2008 7:18 pm

Sat Mar 28, 2009 6:33 am

  • alpha wrote:
    divVerent wrote:That button would be an improvement for 1%, and slow 99% down. No.


    Slow down how much :shock: 1 button click?


    I've played some games with the update button rather than nexuiz's automatic list. They feel much less polished. You can't just jump into a game, you have to press the damned button first before anything. With the automatic list the list populates while maybe you are editing your player info, your settings, etc.
    tundramagi
    Forum addon
     
    Posts: 974
    Joined: Sun Jan 04, 2009 4:53 pm

Sat Mar 28, 2009 11:44 am

Sat Mar 28, 2009 11:47 am

  • [-z-] wrote:I agree, warsow pisses me off for this very reason.

    Does every other game that does not connect to internet at start piss you off? (half life ?)
    quit for good
    alpha
    Alien trapper
     
    Posts: 492
    Joined: Tue Jun 17, 2008 7:18 pm

Sat Mar 28, 2009 12:29 pm

  • Heck, whatever you say, the current method of querying for servers on startup will stay. It is user friendly, and fits well with the game, and saves lots of players about 5 to 10 seconds every time they start the game.

    As stated before, the real way to solve this would be to use a thread for querying the server list, at least to get timeout functionality.

    I can implement that for Linux and OS X, but someone else would have to do it for Windows.

    As simple as that...
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sat Mar 28, 2009 3:24 pm

  • I have working server timeout code here:

    http://emptyset.endoftheinternet.org/~r ... meout.diff

    The Windows part got tested only on wine.

    This limits the waiting time to 2 seconds per DNS resolve, that is, a total of 8 seconds on Nexuiz startup.

    I can't commit it without clearance from LH though.
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sat Mar 28, 2009 3:39 pm

  • well NOW we're getting somewhere 8)
    quit for good
    alpha
    Alien trapper
     
    Posts: 492
    Joined: Tue Jun 17, 2008 7:18 pm

Sat Mar 28, 2009 3:44 pm

Sat Mar 28, 2009 3:45 pm

Sat Mar 28, 2009 4:15 pm

  • Anyone tried it?
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sat Mar 28, 2009 5:26 pm

  • divVerent wrote:Anyone tried it?


    It works like a charm
    User avatar
    mand1nga
    Alien trapper
     
    Posts: 321
    Joined: Mon May 12, 2008 12:19 am

Sat Mar 28, 2009 7:49 pm

  • You should use _WIN32 for MSVC.

    I haven't seen the hardcoded Master Server IP, but fallback might be already there, so sorry for bothering if that's the case.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Sat Mar 28, 2009 9:06 pm

  • We don't use MSVC, and I just used the same define also used in other places.
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sat Mar 28, 2009 9:47 pm

  • I mean you (darkplaces) still provide MSVC project files (not that you use it) and MSVC uses _WIN32. WIN32 is defined internally by some windows header files and those aren't included one needs to use /DWIN32 to compile. Same can be said about NetRadiant.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Sun Mar 29, 2009 6:21 pm

  • I have no idea about this, and won't dare to change this as this MAY break compilation with mingw, or even cause subtle runtime issues.

    I would however take a patch changing this from someone who actually TESTED it (but then, with mingw too!).

    BTW, NetRadiant is ONLY compiled with mingw, and has no MSVC support. But, feel free to create project files for it if you want.
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sun Mar 29, 2009 6:37 pm

Sun Mar 29, 2009 7:16 pm

  • Anyway, all existing DP code uses the WIN32 macro, and I'm not going to change this without LH's okay, as the existing code works fine. WHY it works fine, I don't care.
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Sun Mar 29, 2009 7:27 pm

  • It works because it includes windows.h, which includes windef.h

    I'm not asking to remove anything from dp, but you could use #ifdef (WIN32) || (_WIN32) in NetRadiant.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Mon Mar 30, 2009 6:16 am

  • Against, as NetRadiant aims to be mostly code compatible with GtkRadiant, as long as there are other GtkRadiant forks out there that may have features NetRadiant could use.

    If I did a batch change to change all these ifdefs, patches will be unlikely to still apply.

    What I can do is add robustness by adding -DWIN32 to the compiler command line when building a Win32 build.

    Actually, I just checked: the Makefile, which is an 1:1 port of the previous SCons based build system, always adds -DWIN32 when doing a Windows build. So in NetRadiant, this is just fine. Anyone adding a Visual Studio project has to read the Makefile anyway, as NetRadiant consists of lots of subprojects that need different compile settings (e.g. because there are multiple header files of the same name). I know it's ugly, but it matches what Id Software released as GtkRadiant and I'm not going to change that as long as there are other merge-worthy Radiant forks like DarkRadiant.

    BTW, I just merged NetRadiant's q3map2 with VorteX's changes to the Urban Terror map compiler fork.
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Mon Mar 30, 2009 6:44 am

  • divVerent wrote:BTW, I just merged NetRadiant's q3map2 with VorteX's changes to the Urban Terror map compiler fork.


    What new goodies does that bring :D :D :D?
    tundramagi
    Forum addon
     
    Posts: 974
    Joined: Sun Jan 04, 2009 4:53 pm

Mon Mar 30, 2009 11:46 am

  • Should have I expected more? :mrgreen:
    Code: Select all
    libs\math\vector.h(98) : fatal error C1001: An internal error has occurred in the compiler.
    1>(compiler file 'msc1.cpp', line 1411)
    1> To work around this problem, try simplifying or changing the program near the locations listed above.
    1>Please choose the Technical Support command on the Visual C++
    1> Help menu, or open the Technical Support help file for more information
    Btw,
    Code: Select all
    #ifndef boolean
    #ifdef __cplusplus
    #define   boolean   bool
    #else
    #define boolean int
    #endif
    #endif
    should be after
    Code: Select all
    #ifdef _WIN32
    #include "windows.h"
    #include "stdio.h"
    #endif
    in radiant_jpeglib.h otherwise it overrides internal windows header boolean definitions.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Mon Mar 30, 2009 11:54 am

  • That file is unmodified from idsoftware's :P

    And what does it override? How does windows.h define boolean?

    If windows.h does define boolean, I rather suggest that this block should be skipped instead. So I moved the windows.h include more up. Please test.
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Mon Mar 30, 2009 12:04 pm

Mon Mar 30, 2009 12:26 pm

  • STLPort instead of what?

    Why can't you just use STLPort too?
    1. Open Notepad
    2. Paste: ÿþMSMSMS
    3. Save
    4. Open the file in Notepad again

    You can vary the number of "MS", so you can clearly see it's MS which is causing it.
    User avatar
    divVerent
    Site admin and keyboard killer
     
    Posts: 3809
    Joined: Thu Mar 02, 2006 4:46 pm
    Location: BRLOGENSHFEGLE

Mon Mar 30, 2009 12:46 pm

  • They use stlport in zeroradiant (it was required last time i compiled it) instead of relying of correct microsoft stl implementation.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Mon Mar 30, 2009 10:33 pm

  • Tested your commit. jpeg6 now builds correctly.
    Alien
    Forum addon
     
    Posts: 1212
    Joined: Tue Apr 22, 2008 7:12 am

Previous


Return to Nexuiz - Development




Information
  • Who is online
  • Users browsing this forum: No registered users and 1 guest