
Why do game developers prefer Windows? - bentcorner
http://programmers.stackexchange.com/a/88055
======
ComputerGuru
Already previously posted and very heavily discussed:
<https://news.ycombinator.com/item?id=5124476>

~~~
markbernard
Everyone is missing the point. They develop for Windows because they will have
the most chance of getting someone to play their game. (95% of installed O/S
in PCs).

------
zalzane
Speaking from an independent developer's perspective:

Visual Studio + C# + Resharper = .extremely. productive development
environment.

Video games tend to require lots and lots and lots of code, so productivity is
absolutely critical - especially for independent developers who don't have a
dozen man-years to blow on a project. Using autocomplete I can produce raw
code an order of magnitude faster than I could by typing out each symbol name
by hand. That combined with amazing refactoring/cleanup tools makes windows
extremely lucrative for gamedevs.

~~~
bad_user
When it comes to IDEs and things like refactoring and autocomplete, I could
never get along with Visual Studio. I mean, the fact that you need Resharper
in addition to Visual Studio which costs a lot by itself, is kind of a red
flag. Java IDEs have been much more productive for quite some time and I
especially like IntelliJ IDEA, being from the same people that provide you
with Resharper.

Also, doing games development in C# doesn't make sense to me, C++ (maybe in
combination with a scripting language like Lua) being the defacto standard for
games. And if you are an independent that values productivity, C# has
approximately the same drawbacks as Java. And there are successful games out
there that make use of it, like RuneScape, Puzzle Pirates or Minecraft.

I mean, if you value productivity over runtime efficiency and want something
that runs on top of a VM, might as well get something out of it, like
portability.

~~~
kayoone
C# is actually heavily used by Indies because its the language for Microsofts
XNA Toolkit. Many successfull XBLA indie titles (Supermeatboy, Braid, Bastion
etc) have been created using it. Using MonoGame you can also bring the games
to Linux/OSX/iOS/Android and other consoles (<http://monogame.codeplex.com/>).

Furthermore the highly popular Unity Game Engine offers C# as its scripting
language which is the language of choice for every bigger and serious project
because huge projects written in Javascript are alot more pain to maintain.
Part of this is Visual Studio excellent features (you dont necessarily need
Resharper).

So there actually is alot of C# in game development these days, mostly used as
the Scripting language while the engine and APIs are written in C++.

~~~
kilowatt
Are you sure about your examples?

I think you're confusing "xbox live arcade" with "xbox live." You don't have
to create games with XNA to get them on xbox live. I specifically remember C++
code in Indie Game: The Movie (for Super Meat Boy). And I'd bet money that
Jonathan Blow, the creator of Braid, prefers C++ over C#.

This isn't to say C# isn't a viable option on consoles. I believe FEZ is all
C#...that game is incredible, from an art design standpoint at least. It did
have visible garbage collection pauses though.

~~~
kayoone
yep, guess ur right, but FEZ and Bastion are definitely made with XNA and in
the case of Bastion the Linux/iOS Version uses MonoGame.

------
kamaal
A lot of industry domains prefer developing on Windows. I find this culture
even in places like embedded programming world.

Want to develop for a TI processor/controller or a Analog devices one? Or
anything for that matter? Its a certain that the Linux/Mac tool support is no
where closer to Windows. Yes you can argue that you can bypass all that roll
out your tool chain and use it. The argument works for a hobbyist set up. If
you are doing serious work, which has some form of revenue or business impact
at work then its pointless to be solving meta problems when the actual problem
is on standby.

Its all about tooling support. If your largest customers are corporate ones.
They will inevitably use Windows due to ease of administration and support for
tools like Microsoft office. And since most of your customer are using Windows
the vendors will always provide a degree of better support for Windows.

Windows wins.

~~~
csense
> Ease of administration

Why is Windows "easier to administer than Linux"?

With Ubuntu you have one single place to keep all your OS packages up-to-date:
apt-get. With Windows, each program installs its own installer, which means
boot gets slower...and...slow...er... every time you start it up.

Those updaters all have GUI prompts. Good luck getting them to run remotely,
or finding documentation on their command-line parameters (if they accept
any).

For that matter, on Linux, you can run commands remotely with ssh. On
Windows...there really is no good way to run commands remotely, is there?
Other than installing an SSH server in Cygwin or mingw, that is.

And even if you can run administration scripts remotely, Linux distros usually
have Bash and Python (at minimum!) installed by default. Although cmd.exe has
improved since FOR was introduced, it still leaves much to be desired compared
with the flexibility of Linux scripting languages.

~~~
tracker1
RDP - Remote Desktop Protocol... runs a remote GUI better than anything in the
*nix echosystem. NX is about as close as it gets, and that is still not as
good.

That said, you can still put SSH/Telnet on windows even over a VPN. I
currently have NodeJS on my servers, so I can run a pretty wide variety of
tasks, even through the node REPL interface.

Not a fan of PowerShell...

~~~
pjmlp
> Not a fan of PowerShell...

It could be less verbose, but it is still way better than the old cmd.

~~~
tracker1
I tend to just use node, and node's repl if I need something quick beyond what
a shell can do these days.

------
dsirijus
Most answers offer a triple-A game dev perspective, so here's some indie...

Toolsets are much more obtainable on Windows. That includes cracked apps,
educational licenses, and plenty more sources. They're also more expansive;
almost anything runs on Windows, even if in an intermediary way. There is also
a vast majority of apps that run solely on Windows.

Huge majority of your end users are on it, so you need to have it anyway.
Running a VM just to test stuff out is inconvenience to say the least.

Other devs to whom you communicate use it.

Documentation and help all over the internet covers Windows side much better
than other OS'. Source files already available for inspection are usually made
to compile on Windows.

Macs are expensive and whole experience of being jailed in OSX doesn't really
go well with indie attitude. IOS gold rushes somewhat turned game dev eyes on
it, but that's dying recently, as more and more devs try to find opportunities
on various existing and upcoming Android stores. Toolsets for iOS sucked
anyways.

Linux (on which I'm trying really hard to develop a workflow) lacks
application ecosystem neccesary to fuel all the game development aspects.

Last, but not least - gaming. We game a lot. And a lot of it is nostalgic,
some for inspiration. No other OS offers such a huge quality game title
offering as Windows does.

------
IvyMike
Same reason Willie Sutton robbed banks.

------
xedarius
I worked in the games industry for over 10 years. A platform other than
Windows was not an option. Microsoft provide a solid platform with an
excellent tool set. Not only that but all of the main content authoring tools
(3DStudio Max, Photoshop) exist in Windows only (I realise PS exists on other
platforms, but MAX did not).

Games studios operate on extremely tight budgets, often a hand to mouth
existence on publisher deliverables. This is their only revenue stream. It
simply makes no sense to move a team of 50 people to another OS when
everything they need and know already exists in Windows.

I've been out of the industry for 5 years now, I still keep in contact with my
friends in the industry, and as far as I know things are still the same.

------
kayoone
The rise of the game industry happened when Microsoft was the dominant force,
thats where the users were and Microsoft made sure that games work great on
their platform with DirectX and great Development Tools like Visual Studio.

Its really that simple, wed see alot more Linux games if the market was
viable, right now it simply isnt. Even on mobile many games are iOS only
because many developers think Android isnt viable yet in terms of monetization
while Androids marketshare is bigger than iOS. Looking at that, Linux gaming
still has a long road ahead but its getting better, especially when it comes
to Indie games.

------
mtgx
Vast market share with a far behind #2 competitor? There may be other reasons,
but this one is definitely #1 by far. If you really want to ask a question
like this, better ask why do they prefer Direct3D over OpenGL, or why aren't
they making the games cross-platform. But in most cases, the answer should be
the same. Windows is "big enough" and they don't need the other platforms (at
least so far - things might change in the next few years).

------
malkia
Speaking as a professional game developer of 14 years, Windows is preferred
because of two things:

    
    
      1. PC Games
      2. Visual Studio
    

Quake was developed using NEXT station (first version of QuakeEd was written
in Objective-C and running on it), but since then the tools were transfered to
Windows along with the game distribution. Modders could add new levels, change
existing assets all on their own machines.

Windows is easy to get, easier to administer, or to say properly - not
administer at all, and in the pre-internet years it was not a big deal.

Also all proper graphics cards, drivers were available first on Windows, and
Microsoft somehow nailed it with D3D.

------
acrooks
This is probably part of the reason:
[http://en.wikipedia.org/wiki/Usage_share_of_operating_system...](http://en.wikipedia.org/wiki/Usage_share_of_operating_systems)

------
csense
It's a classic chicken-or-egg problem:

Gamers would use Linux if there were lots of Linux games.

Developers would write games for Linux if gamers used it.

The situation is slowly changing, since the rise of widespread broadband has
let indie developers break the hold of big publishers on distribution
channels, and a fair number of indie developers are willing to support Linux
for ideological reasons.

~~~
shrughes
Another problem is that the Linux kernel is and has been mediocre in lots of
little ways that Windows is not.

~~~
vetinari
Care to substantiate? In not just my experience, the Linux kernel is wastly
superior to NT one.

~~~
shrughes
One example is Linux asynchronous file I/O versus Windows'.

------
youcefnb
Direct X.

~~~
tracker1
+1 I would say D3D and the best available graphics support are probably at the
top of the list... an addendum to that would be More users on windows, which
makes D3D even more sane to use.

Now, there are plenty that prefer Visual Studio as well, over other dev
environments. I very, very, very rarely do C/C++ coding (forgotten most of
what little I ever knew), so can't comment there.. I will say I prefer VS + C#
over most of the Java options I've tried... though I am using WebStorm for
NodeJS dev (based on InteliJ)

------
likeclockwork
I think there's a cultural element.

Visual Studio, although apparently beloved, is just an IDE.

Look at the rise of consoles, look at this thread.

See the talk of there not being 'standards' on Linux and consider the biggest
way the Linux community gets around that: Open Source codebases that rely on
users who are also devs to help fix things up and get them working everywhere.

Linux isn't an ideal 'uniform consumption device', so it's not an appealing
target. Now it's starting to get some love because people are looking around
and asking 'What about freedom?'.

------
parbo
Because of Visual Studio?

------
camus
Direct 3D + windows only sdks + windows only 3d engines + proper graphic card
drivers + huge userbase + 3d tools running exclusively on windows + easier
binary distribution + not have 50 distribs to maintain + etc ... that's quite
easy why , until Linux becomes game developper friendly , linux is dead as a
gaming plateform...

~~~
Tmmrn
> not have 50 distribs to maintain

I still don't understand that. Simply support ubuntu only, the other
distributions will do the rest. E.g. the steam beta worked fine on archlinux
and fedora from day one. And if they have problems you can either decide to
look into it or ignore it because you officially only support ubuntu.

~~~
kamaal
>>Simply support ubuntu only

Firstly historically speaking Ubuntu has gotten famous only now.

Secondly, another distro fan is likely to argue <insert his favorite distro
here> should be supported rather than ubuntu because of <insert a pedantic
reason here>.

Agree on a standard that works for every one and then we shall talk.

~~~
Tmmrn
Actually I'm an Archlinux fan but I haven't yet encountered any software
targeted at ubuntu that wouldn't work on archlinux too (with some work from
repackagers, but as a company you don't have to do it because people who want
to use it on an "unsupported" system will).

It's just another linux and everything can be ported from it if necessary.
Even unity would work fine, once ubuntu's patched x.org and libindicator were
on Archlinux.

As far as I know ubuntu has been the the most popular (for targetting
software) distribution for several years now, so why not?

