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
Chris
Posts: 2949
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: GZStats: A quick rundown

Post by Chris »

Graf Zahl wrote: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?
libfreetype is the defacto standard for font rendering on Linux. I've never used it myself so I can't say exactly what's involved, but most stuff I've seen that handle fonts directly uses it.
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 »

The main issue is that to my knowledge, FreeType is a font rendering engine but not a text layout engine. That's a major difference because the native font renderers in both Windows and macOS can substitute missing characters from other fonts and automatically choose alternate glyphs or ligatures if appropriate. I once did check FreeType for its capabilities and it looks a lot more low level than the other OS's native text rendering functions.
User avatar
Rachael
Posts: 13717
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZStats: A quick rundown

Post by Rachael »

In my understanding, very little on Linux actually is native. The windowing system is entirely userland, unlike with Windows, and done by client/server setups. While the X11 server can run as root and often does, it does not actually have to. The X11 server handles everything - from windows, widgets, to font and image rendering, and also passing OpenGL calls to the system's driver.

Windows only recently started doing this with DWM.exe - but originally this was all handled directly by the kernel and revealed extremely major security flaws. (Remember the scroll bar escalation bug?)
User avatar
Chris
Posts: 2949
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: GZStats: A quick rundown

Post by Chris »

It's notable that X11's widget and font handling is quite rubbish, and toolkits like Qt and GTK do their own thing because of it. There are alternatives to X11 for windowing too, an up-and-coming one called Wayland for instance. It does have an X11 compatibility layer, but any serious UI work is intended to go through something like Qt or GTK, which themselves support Wayland in the backend.
User avatar
GFD
Posts: 347
Joined: Mon May 31, 2010 7:42 pm
Preferred Pronouns: He/Him
Location: Canada

Re: GZStats: A quick rundown

Post by GFD »

But, how many people use Windows XP computers and have them connected to the internet...? I still have an XP machine for obscure legacy purposes, but I would never ever, under any circumstances, connect it to the internet anymore.
...Y'know, on second thought, I probably don't want to know the answer to that question...

I personally wouldn't deem it necessary to provide an opt-out if there were no PR concerns. But there are always PR concerns. Sounds to me that the easiest approach would be to just state clearly on the downloads page which versions contain GZStats and not program any opt-out dialogue, but I feel like that wouldn't fly well.

The only thing I'm worried about is accidentally submitting duplicate statistics when doing something like testing engine bugs by running with fresh configs on multiple versions. I'm assuming there's no unique ID saved outside of the .ini (eg. in %APPDATA% or the registry) that's sent with the statistics. And due to some unresolved ISP issue, my IP has been changing frequently—sometimes upwards of four times in one day. As such, there wouldn't be any guaranteed way to distinguish between duplicates from me. I guess the easiest way to work around this without being pestered by the opt-out dialogue every time is to use a command line argument to suppress it. So, will it be possible to eg. set that CVAR to 1 (decline) in the command line arguments to bypass GZStats on initial startup?
Blzut3
 
 
Posts: 3167
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: GZStats: A quick rundown

Post by Blzut3 »

On Linux there is a GTK, kdialog, and terminal iwad picker. The GTK picker works with both GTK2 and GTK3 since the GUI is simple enough, and there are still some actively supported distros that don't have a good GTK3 port. I haven't heard of anyone having issues picking iwads so it would seem reasonable that implementing a yes/no box using those three methods is adequate. (Well dpJudas here, but he said he didn't have the gtk development headers installed so of course his build wouldn't have the gtk support.)

It's honestly pretty hard to have a generally useful Linux GUI without GTK or Qt being installed, and I would imagine usually both are available. (Given the situation with web browser rendering engines I'm pretty sure you can't have a modern web browser without GTK or Qt.) Qt is unfortunately basically impossible to selectively load, but kdialog should cover a majority of the Qt-only installs.

Unless you're going to also worry about the users running stripped down Windows PE (I have tried to run ZDoom on HP's RAID card's firmware image but alas no DirectX :( ), why worry about the minority of Linux users using niche setups? As a Linux user I don't know why people get hung up on the last 1% here. Yeah I get that people tout the ability to do that as an advantage of Linux, but in reality such a stripped down system is really hard to maintain and I've seen people try and then just give into a normal setup.

Of course SDL's message box may be adequate here as well, just saying that a "native" solution isn't that hard once you reason about what a user is likely to have installed similar to how you reason about supporting versions of Windows and its various overlapping APIs.
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 »

GFD wrote:But, how many people use Windows XP computers and have them connected to the internet...? I still have an XP machine for obscure legacy purposes, but I would never ever, under any circumstances, connect it to the internet anymore.
...Y'know, on second thought, I probably don't want to know the answer to that question...
How many of these people are seriously using GZDoom on that computer? In order to get it they need some internet connection to begin with, which by default runs on a more modern computer
Let's be honest here: We cannot consider all weird people out there with strange habits. The weirdos are already a small minority, even though they tend to make a lot of noise if they get here, and the weirdos that act this odd are even less. Regular people tend to play on the computer they download the software on.
In any case, XP being an unsupported system by Microsoft will inevitably mean that sooner or later it will have to be ditched. I don't really expect Microsoft to support it forever with MSVC.

The only thing I'm worried about is accidentally submitting duplicate statistics when doing something like testing engine bugs by running with fresh configs on multiple versions. I'm assuming there's no unique ID saved outside of the .ini (eg. in %APPDATA% or the registry) that's sent with the statistics. And due to some unresolved ISP issue, my IP has been changing frequently—sometimes upwards of four times in one day. As such, there wouldn't be any guaranteed way to distinguish between duplicates from me. I guess the easiest way to work around this without being pestered by the opt-out dialogue every time is to use a command line argument to suppress it. So, will it be possible to eg. set that CVAR to 1 (decline) in the command line arguments to bypass GZStats on initial startup?
That's a very minor issue. How many people are doing this? 100 out of 10000? Or even less? It's some statistical noise that will have to be considered. But it's here where an opt-out may help. The point is not to get 100% accurate data but to get a rough idea what systems GZDoom is being used on to decide if some crusty old backwards compatibility code is still needed.

For the record: The #1 and #2 on my chopping block is software rendered 2D and SM 1.4 support in D3D, because a vast portion of that 100+kb source file is merely for making this fast. The entire texture atlas implementation in here was just done for this old ATI-hardware to overcome the draw call limitations. But on the downside that texture atlas is what makes it extremely hard to move the 2D code to a higher level, i.e. create device independent draw lists and consolidate the backends. That would allow a lot of future possibilities for improvement, like making the OpenGL 2D interface GL 2.x compatible. Due to how the D3D backend got implemented the GL equivalent has far too high system requirements.
(Yes, unlike the 3D renderer this needs to remain at least GL 2.x compatible! I wouldn't even really bother to to a GL 3 version because it'd offer no advantage here.)
_mental_
 
 
Posts: 3814
Joined: Sun Aug 07, 2011 4:32 am

Re: GZStats: A quick rundown

Post by _mental_ »

Graf Zahl wrote: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...
OK, pushed native UI dialog here. If this one is better I'll implement SDL and Mac confirmation later.
User avatar
Kinsie
Posts: 7402
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33

Re: GZStats: A quick rundown

Post by Kinsie »

GFD wrote:The only thing I'm worried about is accidentally submitting duplicate statistics when doing something like testing engine bugs by running with fresh configs on multiple versions. I'm assuming there's no unique ID saved outside of the .ini (eg. in %APPDATA% or the registry) that's sent with the statistics. And due to some unresolved ISP issue, my IP has been changing frequently—sometimes upwards of four times in one day. As such, there wouldn't be any guaranteed way to distinguish between duplicates from me. I guess the easiest way to work around this without being pestered by the opt-out dialogue every time is to use a command line argument to suppress it. So, will it be possible to eg. set that CVAR to 1 (decline) in the command line arguments to bypass GZStats on initial startup?
Judging by all the posts in this thread and the OP, the engine only sends info once per renderer (so once for software, once for opengl) unless your ini file gets deleted for some reason. So you probably won't create much in the way of noise.
User avatar
GFD
Posts: 347
Joined: Mon May 31, 2010 7:42 pm
Preferred Pronouns: He/Him
Location: Canada

Re: GZStats: A quick rundown

Post by GFD »

Kinsie wrote:Judging by all the posts in this thread and the OP, the engine only sends info once per renderer (so once for software, once for opengl) unless your ini file gets deleted for some reason. So you probably won't create much in the way of noise.
Again, removing the .ini is exactly what I would be doing in this case, yes.
Graf Zahl wrote:Let's be honest here: We cannot consider all weird people out there with strange habits. The weirdos are already a small minority, even though they tend to make a lot of noise if they get here, and the weirdos that act this odd are even less. Regular people tend to play on the computer they download the software on.
"Strange habits" are not what I would expect to be the primary issue, but simply an inability to acquire newer PC hardware, most likely due to economic issues. (I'm not as familiar with the situations of legacy hardware users on these forums, though.) But I'm still curious as to how these situations play out. The only reasonably secure situation I can think of in the case of only owning a Windows XP machine is using a smartphone to download GZDoom, and then transferring it to the internet-disconnected XP PC. (And the smartphone here would probably need to have a custom OS loaded onto it with recent security patches, since Android phones have very poor software support from manufacturers, and iPhones are prohibitively expensive and have much less international presence.) Or somehow getting temporary access to a more secure PC and downloading GZDoom onto some external storage. But in either case, I wouldn't think it's as important to these users to keep GZDoom up-to-date.
User avatar
phantombeta
Posts: 2113
Joined: Thu May 02, 2013 1:27 am
Operating System Version (Optional): Windows 10
Graphics Processor: nVidia with Vulkan support
Location: Brazil

Re: GZStats: A quick rundown

Post by phantombeta »

XP is still used quite a lot in Asia AFAIK, so that's a thing to take into account.
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 »

GFD wrote:"Strange habits" are not what I would expect to be the primary issue, but simply an inability to acquire newer PC hardware, most likely due to economic issues. (I'm not as familiar with the situations of legacy hardware users on these forums, though.) But I'm still curious as to how these situations play out. The only reasonably secure situation I can think of in the case of only owning a Windows XP machine is using a smartphone to download GZDoom, and then transferring it to the internet-disconnected XP PC.
I think you are overthinking it. People who need to make do with a Windows XP PC will normally also use it to download the stuff they need. And some people will always fall through the cracks, you cannot make this foolproof.

Sorry, but this entire argument just sounds like "XP numbers will be exceedingly wrong because..."
phantombeta wrote:XP is still used quite a lot in Asia AFAIK, so that's a thing to take into account.
I know, but again: why do you assume that these people keep their computer offline?
User avatar
phantombeta
Posts: 2113
Joined: Thu May 02, 2013 1:27 am
Operating System Version (Optional): Windows 10
Graphics Processor: nVidia with Vulkan support
Location: Brazil

Re: GZStats: A quick rundown

Post by phantombeta »

@Graf
... I never said that? My point was that since it's still used quite a lot in Asia, then there's definitely enough people that do use XP computers connected to the internet for it to matter.
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 »

Well, I guess we'll see when the real numbers come in. So far the small sample from the devbuilds has XP at ~2%.
_mental_
 
 
Posts: 3814
Joined: Sun Aug 07, 2011 4:32 am

Re: GZStats: A quick rundown

Post by _mental_ »

With exception of user friendly message confirmation dialog for stats collection is ready.

Return to “Developer Blog”