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]

Moderator: Developers

Re: GZStats: A quick rundown

Postby drfrag » Tue Mar 13, 2018 7:15 am

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 7:54 am, edited 2 times in total.
User avatar
drfrag
I.R developer, I.R smart
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain

Re: GZStats: A quick rundown

Postby Graf Zahl » Tue Mar 13, 2018 7:37 am

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: GZStats: A quick rundown

Postby Rachael » Tue Mar 13, 2018 7:49 am

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.
User avatar
Rachael
QZDoom + Webmaster
 
Joined: 13 Jan 2004

Re: GZStats: A quick rundown

Postby _mental_ » Tue Mar 13, 2018 8:28 am

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).
_mental_
 
 
 
Joined: 07 Aug 2011

Re: GZStats: A quick rundown

Postby Rachael » Tue Mar 13, 2018 8:37 am

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.
User avatar
Rachael
QZDoom + Webmaster
 
Joined: 13 Jan 2004

Re: GZStats: A quick rundown

Postby _mental_ » Tue Mar 13, 2018 8:49 am

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.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: GZStats: A quick rundown

Postby Rachael » Tue Mar 13, 2018 8:57 am

@ 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.
User avatar
Rachael
QZDoom + Webmaster
 
Joined: 13 Jan 2004

Re: GZStats: A quick rundown

Postby _mental_ » Tue Mar 13, 2018 9:20 am

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.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: GZStats: A quick rundown

Postby Rachael » Tue Mar 13, 2018 10:04 am

Let's create a branch for this, then, and if everyone is happy with the implementation we'll merge it.
User avatar
Rachael
QZDoom + Webmaster
 
Joined: 13 Jan 2004

Re: GZStats: A quick rundown

Postby _mental_ » Tue Mar 13, 2018 10:50 am

Pushed confirmation of stats collection using in-game menu here.
_mental_
 
 
 
Joined: 07 Aug 2011

Re: GZStats: A quick rundown

Postby Graf Zahl » Tue Mar 13, 2018 11:54 am

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: GZStats: A quick rundown

Postby Rachael » Tue Mar 13, 2018 12:02 pm

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
Rachael
QZDoom + Webmaster
 
Joined: 13 Jan 2004

Re: GZStats: A quick rundown

Postby Graf Zahl » Tue Mar 13, 2018 12:45 pm

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: GZStats: A quick rundown

Postby Marisa Kirisame » Tue Mar 13, 2018 4:49 pm

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
Marisa Kirisame
ZScript Magician
 
Joined: 08 Feb 2008
Location: Vigo, Galicia
Discord: Marisa Kirisame#4689
Twitch ID: magusmarisa

Re: GZStats: A quick rundown

Postby Graf Zahl » Tue Mar 13, 2018 5:15 pm

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?
User avatar
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

PreviousNext

Return to Developer Blog

Who is online

Users browsing this forum: No registered users and 1 guest