2015-08-11

There will be no TL;DR

Today I would like to teach all of the "Linux pros" a little something about cross-platform applications. The reason for this is because for the umpteenth time, a bunch of ungrateful (I would go with the word children here, more accurate) people have complained that Frostburn (See : S2) are both incompetent and stupid. You will find a small amount of humor in the fact that these "pros", who more often than not share their "If i were doing X, it would never break!" mentality actually have NO KNOWN FIX for a lot of the bugs HoN faces every day. That is to say, a group of people who have always been the shining pinnacle of do-it-yourself hacks and fixes is now complaining that they have to wait for a new build on the MOST VARIABLE SYSTEM a game can be released on.

You will notice I use the word "pros" in a humorous way. This is because these people are anything but pros.

Now for a little subject matter:

Here we are going to do a little thought experiment, to show just how complex HoN is. Then, we are going to take a look at the community efforts to make HoN easier to deploy to these many systems. Finally, we are going to learn how HoN really runs, so we can put this incessant whining to rest.

For the sake of a clean and concise example, I am going to limit myself to the most common Linux architectures, then compare them to the most common windows/mac architectures. This is not a complete list, so please do not feel offended if your distro is not included here!

Linux:

Ubuntu (lib.so libraries, aptitude repository manager,initctl startup)

Debian (ldlib libraries, aptitude repository manager, systemd startup)

Linux Mint(ld.so libraries, rpm package manager,sysvinit startup)

Fedora(ldlib libraries, rpm package manager, systemd startup)

Redhat(ldlib libraries, rpm package manager, systemd startup)

Arch(gtlib, pacman package manager, sysvinit startup)
Gentoo(ldlib, None, sysvinit startup)
There is also CentOS,Slackware,Puppy and openSUSE (who all use different configurations)

Mac:

Version 10.5: "Leopard"
Version 10.6: "Snow Leopard"
Version 10.7: "Lion"
Version 10.8: "Mountain Lion"
Version 10.9: "Mavericks"
Version 10.10: "Yosemite"
Version 10.11: "El Capitan"

Windows:

Windows XP (NT kernel)

Windows Vista (NT kernel)

Windows 7 (NT kernel)

Windows 8/8.1 (NT kernel)

My question for the avid reader is thus: Can anyone spot the differences between difference versions of windows and mac/linux?

The answer to that question should be simple, but a lot of these "pros" overlook this fact. No version of MAC is the same kernel as the previous, considering MAC actually uses a variant of the LINUX KERNEL. This means that the core code that runs the application has changed. No version of LINUX is the same kernel (and package manager/library level etc) as the previous. Anyone can make their own homebrew LINUX distribution at the touch of a button, containing any package manager, library scheme, init system, control system etc. There is no "standard" distribution you can actually build to! It is infinitely easier to build towards Windows than it is LINUX, considering that every single windows version past Windows XP uses the NT kernel. In the last 14 years, there have only been 4 new windows versions, 7 new MAC versions, and 104 new LINUX kernel builds.

So what have these pros done to help LINUX/MAC users themselves? Well, let's look at the community involvement over the last two years:

FluidNaib: Created a small python script to help users fix broken patches.(https://forums.heroesofnewerth.com/showthread.php?558946-Updater-not-running/page3&highlight=Linux)

ElementUser: Informed the public about processor affinity (https://forums.heroesofnewerth.com/showthread.php?502114-Processor-affinity&highlight=Linux)

Notice something strange about the above posts? In the past years, there have only been 2 public, community fixes for Linux/MAC clients. One came from a staff member, and one came from a global moderator (who is also awesome with linux). None of these "pros" have even bothered to take a look and propose a fix.

So how does HoN work anyway?

The short form is that HoN runs (or used to run, not sure) on the K2 engine. This engine requires either openGL or Direct X. It is built from a Gentoo machine for the ldlib/lib.so libraries. In fact, HoN has to use very specific versions of these to make sure that it works as well as the Windows client. Windows on the other hand, simply needs to make sure that DirectX stays backwards-compatible and everything is golden.

So what broke?

It is a known fact that the latest versions of (at least) Fedora and Ubuntu have broken HoN. My personal experience is with Ubuntu version 15.04/15.10 , where core libraries now have ABI/API versions that they cannot be relinked to without escalated privileges. This was an OS change (and it happens often in the LINUX world), and Frostburn (and myself) are working hard to resolve this.

Take a look at http://forums.heroesofnewerth.com/sh...e-after-update if you want to see the proposed temporary fixes for Ubuntu. In the meantime, ElementUser and I are coordinating with the programmers to see if we can get a more permanent fix in place. I have a system that I have proposed, but we will not release that until it has been tested and verified that it works to curb unnecessary hype.

How can I help?

The best way to be helpful is to simply be patient and refrain from creating useless threads in General Discussion. If you want to go above and beyond that, and post some personal fixes/ideas for how to fix known issues, drop by in Bug Report and file a bug ticket with the postfix [FIX] after it. Please make sure that you post valuable and useful feedback in that forum, since it's main purpose is to help our lovely user base to get back playing.

So before you run around screaming like a child that your game isn't working, take a step back and think of a few things.

1) If Frostburn releases a broken build of HoN to match the release of Windows clients, you are going to complain again.
2) If Frostburn releases a build that does not work with your version of Linux, you are going to complain again.

3) If your intent is to get Frostburn to stop producing a Linux build due to all of the hassle, complain again.

4) Linux is a monster when it comes to standardization. You can never trust developers to behave sanely, this makes it hard to produce a product.
5) Before you flap your gums, apply at https://forums.heroesofnewerth.com/a...ms.php?appid=1 and help us make a better game
6) Frostburn does not owe you a Linux/Mac client. Blizzard to this day shafts its Linux playerbase when it comes to World of Warcraft , and we FOUND A WAY TO FIX IT OURSELVES http://www.webupd8.org/2014/09/how-t...rcraft-in.html

Thank you for reading through the whole post, it makes a developer's job even more stressful than it should be when the community backlashes as hard as we have today.

Sincerely, Troy

Senior Linux Developer

Distribution Maintainer

Linux HoN Bugtester

Ubuntu server admin

Show more