
C4 game engine drops Linux support citing frustrations with desktop Linux - iwwr
http://www.terathon.com/forums/viewtopic.php?f=2&t=14050
======
Arelius
While Linux development, especially for game development, does has it's fare
share of pain points. I don't think this should be interpreted as any more
than it is, a single developer deciding he wants to stop supporting, one
specific platform.

Eric is indeed a very skilled programmer, but this engine is very much
developed to meet his whims. He hasn't yet released any games on it, and the
vast majority of his engine licensees are hobbyists, who quite frankly are
also unlikely to release a game.

So while Linux was a nice-to-have earlier on, and likely sold him a few
licenses, with UE4 heading to Linux it's unlikely to give him many more sales.
And I suspect he's used to developing in Windows, likely with visual studio,
and in comparison, Linux can feel quite archaic. And in that context,
maintaining Linux build systems can seem quite painful, likely the primary
reason it's getting dropped.

On the contrary, with Valve's current and monumental efforts, I suspect we're
going to see a lot of games continuing to be released on Linux. And the tools
are improving vastly, and some rather nice tools, vogl for instance, are only
fully functional on Linux, which provides a strong advantage.

I'm personally pretty excited to see what comes from AMD being much more open
with their ISA, and related documentation. I'm pretty hopeful for a very open
and fast graphics API, OpenGL in my opinion is the worst part of working on
Linux.

~~~
pjmlp
I still haven't see any of the Steam machines on the wild.

Frankly I doubt I will ever see them.

~~~
thirdtruck
I was running Steam in Big Picture mode on my Linux laptop only minutes before
reading your comment. It's not a true Steam Machine, but neither is it that
far off. :)

~~~
jiggy2011
What is the specific difference between a true Steam Machine and a PC with
Steam installed?

~~~
rjaco31
Well they use the SteamOS as an operating system

~~~
jiggy2011
I don't think that is a requirement though, realistically the cost saving on a
Windows OEM license will be eclipsed by the reduced game catalog for quite
some time.

------
kbart
I hate to admit but graphics part of Linux is really a big mess. I hope Valve
will not abandon their efforts and succeed in making useable 3D platform/API
running on Linux.

------
Shorel
IMO, the biggest issue with Linux gaming is not OpenGL, as others claim, but
input support.

Specifically, advanced controller support. SDL2 is far from enough.

For windows, there's no issue adding support for Logitech G25, G27, F710,
Microsoft gamepads and Joysticks (the best joysticks ever made), and several
other wheels like Fanatec.

In Linux it seems that only XBox360 compatibility is possible and everything
else requires a huge amount of refactoring.

Also, raw keyboard and mouse support requires having root permissions and
whatnot, something users can't be expected to set up themselves.

So, OpenGL has some performance issues but it works, input programming is
actually a nightmare in comparison.

Still no Steam game works with the G25. Euro Truck Simulator 2 can't read it
right, despite having kernel support, and the game is simply boring with a
controller instead of a wheel.

------
fit2rule
What a pity they've decided to take a political position rather than a
technological one .. plenty of other game engines work just fine on Linux (my
personal example is MOAI) and so it seems to me what was needed was to just
learn a little more about how to support Linux properly, and stop complaining
about it. The fact that other game engines have no problems with this speaks
volumes about the author. I respect his 'personal choice' in the matter - but
removing working features from the release just seems like politics as usual..

~~~
stinos
_What a pity they 've decided to take a political position rather than a
technological one ._

Not sure if that really is the case - to me it reads like "I spent so much
time getting this thing to work and it still doesn't work properly now, so I
just give up"

Yeah sure, the underlying reason for this might be that he doesn't know how to
properly do it (and the reason for that in turn might be that it is hard), but
how is not wanting to spend any more time on it purely a political position
rather than a technological or business decision? Especially the latter, which
is also explained again by Eric:

 _I cannot afford to spend weeks at a time just trying to install Linux, get
it to boot, and get a development environment working. I simply don 't have
the funding to justify letting the engine stagnate while I mess around with an
OS that should just work. It's extremely wasteful and unfair to users who are
waiting on new features._

~~~
stefantalpalaru
> spend weeks at a time just trying to install Linux, get it to boot, and get
> a development environment working

I think we found the problem. It's between chair and keyboard.

~~~
Arnt
Oddly enough, I had a lot of trouble getting my new laptop to boot, work and
sleep properly. Not for lack of experience: I first installed linux in the
summer of 1992 using hlu's floppies and have used linux for daily work for
about 20 of the 22½ years since then.

I can easily believe that someone used to windows with its mishmash of
installers might have an unpleasant experience. Apt-get works wonderfully on a
pristine system, but not so well if the system is halfway upgefucked with
tarballs and rm -rf.

And particularly if systemd on ubuntu 14.04 supports his hardware as poorly as
it supports my new laptop.

~~~
fit2rule
I'm with you - been running Linux since those days too, and I also think that
the problem is entirely political in this case - he's already admitted that
its not for any problem with the Linux host for C4 in particular, just that
he's a frustrated Linux desktop user and wants nothing to do with Linux. But
the Linux support is there and the C4 engine works on it .. so this is more of
a political rant than anything else.

~~~
Arnt
In that case I expressed myself badly (possibly due to systemd-induced
gritting of teeth). Sorry.

I think it doesn't have to be political. The tiniest bit of ill will towards
linux, a bit of windows-like behaviour (tar xf, rm -rf), and a bit of badly-
supported hardware is quite enough to end up with an unworkable system and
difficult-to-diagnode problems.

------
jokoon
My 3 cents:

Maybe a possible alternative would be to focus on one particular linux
distribution, like ubuntu or debian, with certain dirty intall scripts ?

Or go all the way and just deliver a bootable CD or USB drive that install the
games somewhere, and then boots up a certain linux kernel configuration with
specific, working nvidia or amd drivers.

Honestly if I had a successful game I could sell, I'd try to sell it at half
the price by packaging it with some linux distribution the game works on, just
for promoting linux to show the consumers that developers appreciate it.

Maybe another other alternative would be to offer games on certain hardware
which is supported, and not to other types of hardware.

But obviously, as long as hardware vendors don't give a damn about linux, I
won't be surprised reading those posts.

Game developers should not expect being able to use the latest graphics
features on an open platform. It just won't happen. The 3D hardware industry
always adds new things, it's impossible to keep up unless you had engineers
working tightly with nvidia or AMD.

So drop the support of high end 3D features, only keep the core ones that have
been working for a long time (do you really need that shader ?), focus on
other basic things (like scriptability and other libraries, there is so much
stuff to put in a game engine), and deliver a working 3D engine that is easy
to use and program with. I don't think any small developer who wants to
release on linux can really compete with AAA, high end graphics titles. The
only possible way to compete is to bring something new in term of gameplay,
stop focusing on the graphics and the bells and whistles, it just won't
happen.

TLDR:

gaming is obviously anti competitive if you want to release on linux. what to
do: don't try to compete with what other games have already done, and focus on
things that are doable and have been done well for a long time. There are many
existing game concept that could be improved if you stop wasting time on the
graphics. Having basic 3D rendering is already awesome in itself.

~~~
Arelius
> So drop the support of high end 3D features

You're really suggesting people in a field that is constantly pushing the
boundaries of graphics to drop one of the things they do best?

> do you really need that shader

Yes!

> I don't think any small developer who wants to release on linux can really
> compete with AAA

You'd be surprised with what a small developer can do, See tomorrow children.
Sadly sometimes it sometimes seems that if you want to push graphics features,
you cannot release on Linux.

> Having basic 3D rendering is already awesome in itself

No, not really. I'd prefer 2D rendering to basic 3D rendering.

> don't try to compete with what other games have already done, and focus on
> things that are doable and have been done well for a long time

Did you really just contradict yourself in the same sentence?

Though, more to the point, the problem isn't that getting _something_ running
Linux would be difficult. The problem is that in order for Linux to have
proper and first-rate support, or in some cases, any support at all, you need
to start getting developers working on it as a primary development platform.
And if I can't do the things that I, as a graphics programmer, need to do,
I'll go elsewhere. Working on Linux is nice, but if I _have_ to choose between
developing the game I want to, or having Linux support, that's a trivial
decision.

~~~
jokoon
> You're really suggesting people in a field that is constantly pushing the
> boundaries of graphics to drop one of the things they do best?

Better work in CGI graphics then. Also, what's the point of rendering ? You
won't make a game if all you have is good rendering. You also need quality
content. You can't be a good graphics programmers AND spend time producing
geometry.

> Did you really just contradict yourself in the same sentence?

I just meant do improve designs that have been proven to work, not try to make
the same kind of design you usually see in AAA shelves.

I see many indie games just being some remake, or influenced by many other
games. They don't have any kind of standing out feature, the only interesting
thing there is, is content, which is not what makes a good game. There is
almost never a feature of the game that is standing out in term of gameplay
and algorithm.

A good example is minecraft: the game is interesting because it has an
infinite, consistent 3D level. No game had that before. All I care is gameplay
and interactions. My point is this: if a game is not different in gameplay and
can't attract the player imagination, it's maybe not worth doing.

------
Cthulhu_
Whoa, blast from the past; I did a minor game design using this engine. I
spent most of the time refactoring the demo game code to something a bit more
OO / to my style though. I don't know if that was good for performance, but it
pleased me.

But yeah, as another commenter stated, it just doesn't have the leverage as
the bigger engines have (U4, Unity, etc), and those have very competitive
pricing for hobbyist developers nowadays. Not to mention the financial means
to have their developers also support Linux, with all the headaches that may
incur.

~~~
emsy
From a consumer point of view, everything above the Linux Kernel is a mess. A
mess means actually choice where the consumer doesn't need one. I had hopes
that Steam Machines may leverage Linux to consumers but trying to configure my
father's Linux machine to his needs brought me back to reality.

I even think that the consumer perspective is the one that hinders Linux. Want
to develop something for Linux? What's the display server? Proprietary or free
drivers? What Desktop Environment? QT or GTK Application? All those things are
fine to develop for, but what do you develop for when you don't have time to
test and support every existing configuration.

~~~
ZenoArrow
> "From a consumer point of view, everything above the Linux Kernel is a
> mess."

That's the sort of thing projects like systemd aim to fix.

> "Want to develop something for Linux? What's the display server? Proprietary
> or free drivers? What Desktop Environment? QT or GTK Application?"

You don't need to concern yourself with the display server if you're writing
using a library like Qt or GTK+, but it's not a hard question anyway (X.org
now, Wayland/Mir in the future). Drivers wise, most devices only have one
driver to choose from, the only exceptions are for the GPU, and if you want to
play games the answer is clear (NVidia card, proprietary driver). Desktop
environment doesn't matter, they all support X.org graphics frameworks.

There are certainly challenges with Linux development, and there is a need for
a bit more stability lower down the OS stack, but the situation is improving,
and Windows proves you can offer both choice and stability. The only issue I
see that is a time bomb with regards to Linux gaming is the sound stack,
everything else appears to be improving.

~~~
digi_owl
Looks like a cure that is worse than the illness from here...

------
CmonDev
I think it's better to hand over the platform support to experts (Mono/JVM)
and just focus on the engine.

------
_pmf_
Fragmentation still continues to increase; see the recent systemd debacle and
the ALSA vs Pulseaudio farce.

A veritable shitfest of useless and downright poisonous changes that alienate
users and non-core developers.

"Oh, you have this thing that works perfectly? Well, here's a shitty idea with
a shoddy execution that is the new standard. It supports this feature that 1
percent of users like and no longer supports this other feature that 99
percent of users actually care about."

------
Zardoz84
Worst for him.

I personally feel that C & C++ develop on Windows is ANAL. Installing libs and
detecting isntalled libs, it's very problematic, when on my GNU/Linux desktop
I only need to do a : sudo apt-get XXX or git clone XXX & make & sudo make
install

~~~
unsigner
"Easy to pull 3rd party libraries" is not particularly positive for a
engine/library developer; ideally, you should incur as little dependencies on
your users as possible.

~~~
bmn_
Why?

There are outstanding ecosystems for packaging and dependency management in
place. That makes it easier to embrace than to avoid dependencies as a library
developer.

~~~
kedean
A library can't depend on other libraries unless there's a strong guarantee
that those other libraries will work everywhere. If you go using tons of
dependencies, you limit yourself on porting. If you go crazy with apt
dependencies, you've probably just limited yourself to Linux, and end up with
the opposite problem as shown in the article.

------
pja
The answer to this developer's install problems are a VMWare virtual machine
running on his usual Windows setup. By his own account his actual Linux code
works just fine - the only thing that was in his way was his inability to
install the OS in the first place. It seems a shame to throw out all that
working code over such a trivial & easily solvable problem.

Wrestling with weird stability problems (which might be a hardware fault,
might be buggy display drivers, who knows?) for weeks on end before flouncing
out stage right promising never to return is the mark of someone who hasn't
really thought things through.

~~~
flohofwoe
VMs just add another dimension to the pain of incompatible or buggy
components. I don't know if VMWare provides modern OpenGL support (3.x or
better). I have only experience with Virtual Box, and only ever got OpenGL 2.1
(8 years old) without extensions running with hardware acceleration, but with
bugs (e.g. vsync never works). Right now I can't update to the latest VBox
version because its display driver is incompatible with my Linux version.

I work on Linux running in VMs every day, but can't recommend this setup at
all for OpenGL development.

~~~
pja
Ah, fair point - VMWare only gets you OpenGL 2.1 & given that the guy is
writing a games engine he probably wants 3.x at least.

~~~
Arelius
The OpenGL profile isn't enough either. You really need direct and real
hardware access. Emulated graphics just won't do.

