GZStats: A quick rundown

Here, developers communicate stuff that does not go onto the main News section or the front page of the site.
[Dev Blog] [Development Builds] [Git Change Log] [GZDoom Github Repo]

Moderator: GZDoom Developers

User avatar
drfrag
Vintage GZDoom Developer
Posts: 3146
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain

Re: GZStats: A quick rundown

Post by drfrag »

Graf Zahl wrote:All these are big progress blockers. The biggest one is actually OpengL 2.x support, because it completely blocks any desperately needed refactoring of the GL 4.x renderer. It is entirely impossible to modernize the renderer without scrapping legacy support, because that legacy hardware is missing all the features that are necessary to optimize the renderer
Then the answer is obvious, just go ahead and remove all that stuff. Actually this has been discussed before and if i remember right dpJudas came with a solution. People would keep complaining about graphic problems and low performance anyway on old hardware. Also keep in mind that many of those retro systems are not connected to the internet.
I'm myself on an old 2008 W7 laptop with intel graphics and only GL 2.1 support. What dpJudas proposed if i memember right is to add an OpenGL 2 canvas for the software renderer and remove DDraw and D3D9. The poly renderer runs well enough here @640x400 with truecolor and also there's the Carmack renderer. Sure there will be missing features (there are already on the legacy render path) but future mods will mostly run even slower on old hardware and version 3.3 will still run on that old hardware.
Also for playing retro lan games on XP or even 98 there's already ZDoom LE and as long as it runs BD many will be happy. :)
Just my two cents.
Last edited by drfrag on Tue Mar 13, 2018 6:54 am, edited 2 times in total.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49130
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZStats: A quick rundown

Post by Graf Zahl »

drfrag wrote: Then the answer is obvious, just go ahead and remove all that stuff. Actually this has been discussed before and if i remember right dpJudas came with a solution. People would keep complaining about graphic problems and low performance anyway on old hardware. Also keep in mind that many of those retro systems are not connected to the internet.
The last time I tried to ditch OpenGL 2.x the feedback was so negative that I had to backpedal. So this time, before removing anything I'd like to know how many users will be affected before doing anything.

With stuff like this and working off mere assumptions I'd like to reiterate the story about an old project I have been working on 8 years ago:

This was a mobile phone gaming collection, and we had 80 SKUs overall, due to the awful fragmentation of the Java Mobile market. Can you imagine how much work went into these 80 SKUs? They were all deemed equally important and it was only due to my constant nagging that the web people finally implemented a statistics counter. Now take a guess how many SKUs were actually relevant. It was actually less than 10: iOS, Android small and large screen, a few Blackberries and Nokia Symbian. And these were the good ones. But > 80% of all work went into the rest that made up 5% of our market.

And that's exactly the same numbers Steam's HWSurvey tells us: Less than 5% of gamers use an underpowered old rig. Should we go by that number or should we run a survey of our own first to see if these numbers actually hold up before taking some action? I really don't get that attitude: On the one hand you would like to see efficient development, but on the other hand you are essentially unwilling to provide the information that is needed to efficiently develop. You cannot have it both ways!
User avatar
Rachael
Posts: 13716
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZStats: A quick rundown

Post by Rachael »

I would just like to add that my name is all over the code that is doing this. You can trust and believe that I have enough self-respect that if I didn't think this was a good idea or see the merits of it, I would never have helped Graf with this project in the first place. He never paid me a single cent for it, so what motivation did I have to contribute to something that was so potentially devastating and invasive?

The simple answer is: It's not that devastating, nor is it that invasive. To be honest, I am quite glad that Graf has decided to allow for a prompt at start-up to allow for opt-out/in. I think we need to focus all of our efforts towards completing that, now.

I have no idea why actual companies (Microsoft/Google/Apple and the like) have such a desperate need for every little piece of info they can get their hands on, nor do I approve of such practices, my only guess is so they can sell it to a bunch of littler companies for marketing schemes. We do not pull that shit here. Offer to buy what little information I have and you will probably get an extremely fiery and passionate hostile response to me. You'd probably be shown the door quicker than any person I have ever banned here. Unlike most people who work in the corporate world nowadays it seems, I still have a soul, I still have integrity, and I am not going to sell it out just to make a quick buck.

That being said - let's find a way to do this. We can probably easily do it for the Windows' Winforms dialog box for this, and possibly ask for help to get it on Mac OS's Cocoa backend. The Linux version still uses GTK+ but if that is not present it will use the terminal window. That's potentially the most complicated part of it, but it can still be done even there. Failing that, it was also suggested that this be done in-game as the game is starting up, before the main menu is shown. That would work, too.

Commercial game developers can easily hardwire this to "off" or "already asked/completed", etc, so that it does not affect development of their game.
_mental_
 
 
Posts: 3814
Joined: Sun Aug 07, 2011 4:32 am

Re: GZStats: A quick rundown

Post by _mental_ »

Rachael wrote:We can probably easily do it for the Windows' Winforms dialog box for this, and possibly ask for help to get it on Mac OS's Cocoa backend. The Linux version still uses GTK+ but if that is not present it will use the terminal window.
For native dialog on startup we can use MessageBox() on Windows, SDL_ShowMessageBox() on Linux, CoreFoundation or Cocoa alert on macOS (I can write this one if needed).
User avatar
Rachael
Posts: 13716
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZStats: A quick rundown

Post by Rachael »

I'll try and wrangle the SDL_ShowMessageBox() version then.

But first we need to decide on a standard set of CVARs for this so that the CVARs are the same on all platforms.
_mental_
 
 
Posts: 3814
Joined: Sun Aug 07, 2011 4:32 am

Re: GZStats: A quick rundown

Post by _mental_ »

Rachael wrote:But first we need to decide on a standard set of CVARs for this so that the CVARs are the same on all platforms.
Just one boolean CVAR: agree to send, yes or no, like sys_statenabled for example. Or was it about something else?

Also, this condition should check for empty string. I see no way for string CVAR to have nullptr value.

Am I right that both implementations of stats sending don't support HTTP(S) proxy?
I guess it's a known limitation but still it's worth asking.
User avatar
Rachael
Posts: 13716
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZStats: A quick rundown

Post by Rachael »

@ the conditional: That should definitely be fixed. I was coding that when I was first learning how to do TCP in both Windows and Linux, and admittedly neither of those conditionals actually work. (Would a simple [0] at the end do it?)

@ CVAR: Perhaps an "int" value instead. "sys_statsenabled" - 0 is ask first, 1 is declined, 2 is accepted

@ proxy: Correct, proxy is not supported. If that needs to be explained in the pop-up then we should do so.
_mental_
 
 
Posts: 3814
Joined: Sun Aug 07, 2011 4:32 am

Re: GZStats: A quick rundown

Post by _mental_ »

Rachael wrote:@ the conditional: That should definitely be fixed. I was coding that when I was first learning how to do TCP in both Windows and Linux, and admittedly neither of those conditionals actually work. (Would a simple [0] at the end do it?)
Actually, let's keep nullptr check along with zero string one, like in non-Windows version.
Rachael wrote:@ CVAR: Perhaps an "int" value instead. "sys_statsenabled" - 0 is ask first, 1 is declined, 2 is accepted
OK.

By the way, we already have in-game message box that can be used for this purpose. All actions that require confirmation uses it, so this can be good alternative to native UI.
User avatar
Rachael
Posts: 13716
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZStats: A quick rundown

Post by Rachael »

Let's create a branch for this, then, and if everyone is happy with the implementation we'll merge it.
_mental_
 
 
Posts: 3814
Joined: Sun Aug 07, 2011 4:32 am

Re: GZStats: A quick rundown

Post by _mental_ »

Pushed confirmation of stats collection using in-game menu here.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49130
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZStats: A quick rundown

Post by Graf Zahl »

I'm not sure if that's a good idea. I've been thinking for a long time that the bitmap fonts are essentially unusable for a well readable in-game menu and really would like to replace them with some system generated text graphics, if I didn't know that many users would react badly to such a change. Having to read a lengthy text in that fonts is just ... ugh...
User avatar
Rachael
Posts: 13716
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZStats: A quick rundown

Post by Rachael »

Might be a good excuse to finally implement an official vector text system, possibly even with TrueType and OTF support? We might be able to use X11's rasterizer, since I'd rather not risk patent infringement with Microsoft's ClearType.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49130
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZStats: A quick rundown

Post by Graf Zahl »

I'd rather use the system's own text generation facilities, even if those may not always render the text identically. Rendering text properly is a very tricky proposition which I do not really want to bother with to implement myself.
I don't know how things are on Linux, but on Windows and macOS I would get full Unicode text support for free, including Asian languages and those newfangled text-based icons that seem to be so popular right now.
In any case, ClearType and rendering to external bitmaps isn't compatible anyway, so even if some library implemented it, it wouldn't be usable.
User avatar
Marisa the Magician
Posts: 3886
Joined: Fri Feb 08, 2008 9:15 am
Preferred Pronouns: She/Her
Operating System Version (Optional): (btw I use) Arch
Graphics Processor: nVidia with Vulkan support
Location: Vigo, Galicia

Re: GZStats: A quick rundown

Post by Marisa the Magician »

Eh, there's a SDL third party lib for handling TTF/OTF fonts (SDL_ttf/SDL2_ttf). I've used it many times and it works okay (even supports UTF-8).
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49130
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZStats: A quick rundown

Post by Graf Zahl »

So Linux has no native font rendering capabilies and one has to rely on third party software that may or may not be good enough for the job?

Return to “Developer Blog”