Is Microsoft Windows really that bad?

Kladdehelvete
It uses binary drivers from NVIDIA.

Well most likely this is the problem. Loading binary blobs in kernel is not good idea in Linux world. While it works, it may also introduce a lot of random problems. That's when you get some people to get very philosophical about open-source, GNU and freedom. And you also get "f**k you nvidia".

Edited by Mārtiņš Možeiko on
@ Kladdehelvete - Seriously, why are you here ? Why are you interested in game-development ? Let me quote some of your strange statements ...

'And it is targeted to *consumers*' - well guess what ... games are targeted at consumers.

'You cannot work on that shit' - Clearly, you understand that phones and tablets are consumer devices, but yet, you insist upon raging against them as being unsuitable to develop on. Why are you even trying to develop on them ? As you say yourself, they are consumer devices.

'Anything that is target at consumers like that, is bound to fail.' - Really ? You're off the rails.


'Just like TV failed, or is failing.' - Nearly every person I know, every person I have ever known owns a TV. If that's failing, I'm going to start failing as of right now. I suppose you're referring to free to air ? Well there are now more free to air channels then there were 10/15 years ago, it has moved to digital. There are also free-to-view programs / casts / channel served over IP. This is all 'TV'. If you are going to limit your comprehension of TV to analog free-to-air broadcasts, then yes it has failed. But TV is 10,000x more than it used to be, it's still 'tv' though, no matter what technology or encoding you're using.

TV = Television (a system for converting visual images (with sound) into electrical signals, transmitting them by radio or other means, and displaying them electronically on a screen.)

'The only things to survive the long haul, are REAL THINGS. If you dont make real stuff, you don't count. ' - There is so much wrong with this statement. Are games real or not real ? They are certainly not productive when consumed (arguably), and yet the games industry is a production industry. People are making real software and making real money. Games aren't fixing world hunger or improving our roads or revolutionizing government, and yet the technology that the game industry creates IS helping the sciences and industry. GPU evolution and the drive for better gaming machines is absolutely pushing the technology industry forward. Consumers are pushing dollars into the hands of these technology giants to make better faster hardware and software. That is REAL.

'...Useless. And all the extra gimicks with the measuring your heartrate and so on? Laughable! Thats fun for like 1 hour. It's RETARDED, is what it is.

These toys are a gimmick, and their popularity will soon turn to hate. They will boil down to be devices for exchanging text messages, and maybe for using skype. And maybe for playing solitair, and that kind of games. And looking up some info, when at the dentist. This is not a plattform for launching a real game, or other real consumer products. This is a plattform for making shit.'

- I don't think you understand mobile platforms at all. You mention some things that these devices are used for ... messaging, skype, solitaire, games, info. But then you say these are not real games, not real consumer products. Of course they are real. When my girlfriend is playing hearthstone on her ipad or checking facebook, or looking up a recipe, or messaging somebody about meeting for coffee or whatever, these are real activities, and the tablet provides a much better experience than the desktop. You're mad if you think people are going to give these mobile touch devices up and go back to desktop pc's.

'These toys are a gimmick, and their popularity will soon turn to hate' - honestly people don't have such strong feelings about things that are really just gimmicks. An example of a gimmick .. Polaroid .. yeah it's a gimick, but it's a really nice gimmick, it has it's own particular characteristics, that I really like (and others like). But people don't hate polaroids, just because their time has mostly passed. 'Hate' is a very strong word.

Really, your stressing way too much about this stuff.
And yet each day I see you using Windows and Visual Studio on the stream. If you really wanted to make a difference and show people there is alternatives, why not use Linux, or at least gcc/gdb with cygwin?
My take on that (Windows) and my question is that Windows just works and it does pretty well. sure it has it's shortcomings, quirks and pitfalls. But the backward compatibility is really solid, I have not had any issues with this since maybe 15 years (not a Game dev here though).
Their APIs and products are usually well documented (of course with room for improvement). Apple is probably equally good, but they are also as good with deprecating old stuff. Linux is just horrible in this regard.
From an open source project I know there's about a distribution of 95%(Windows), 4%(Mac), 1%(Linux).

When it comes to problems it is more or less the reverse being true. Someone throws out some new/update Distro. And something gets broken. Apple just came up with some new idea and suddenly you have a problem. Windows generally just works.
I love Linux and use it exclusive at home. But either you get your stuff into the different distributions, have something that has not much dependencies, or let the user compile.
Binary distribution is just often enough a pita there. Documentation ranges from good to non existent. And the amount of semi documented to undocumented tweaks and hacks you can do is astonishing.
Mac I do not have to deal much with, but it seems to range between Windows and Linux.

Which is why I take Windows for shipping stuff any day over the others. At least Linux still has a long way to go.
There's two reasons I use Windows on the stream, and I think I already explained them but I'll explain them again:

1) It is the primary platform on which people ship games, so I feel like it would be a disservice to new game developers not to acknowledge that, strictly for my own personal advocacy, and

2) The debuggers on Linux are awful. Unusably bad, in my opinion. I use Linux every day (in fact I am typing this in from my Linux laptop), and mostly it's OK, but that part is really kind of insurmountable, especially for new developers. When and if Linux got a real debugger, we might go ahead and switch to it on the stream. At some point, we will be porting to Linux/Mac/etc. anyway. But at the moment, I feel like it would be much, much harder for beginners to be able to understand what was happening in their code if they had to use, say, QtCreator or CGDB.

- Casey
Windows has some good backwards compat for the Win32 API. That's been a blessing and a curse. However, if you try to bring your C++ code into the WinRT land (app store builds, not ARM machines), I hope you aren't using any of the banned APIs, like sockets.

For Apple, especially after their transition to Intel, if you followed their guidance on APIs and how to structure your programs, they would help you transition along through their deprecated APIs. The problem is when you don't, then a few years down the line that API is gone and you're stuck in a bad place.

But, Windows is where the serious money is at.
Casey, just to be clear: I did not mean to come over like I want to pressure you into explaining yourself. I pretty much assumed this to be the reasons, as more or less this was my point. Windows is okay. It's not great, or awesome. Just in okay with being the more or less best choice we have atm.
IMO also VS is the best choice in that regard we have right now. It gets the job done. If you're willing to use it in all it's 'glory' (that is editor, project management etc).

On the Linux debuggers, I agree it's a world of sadness (though I can do okay with gdb if I have to). Did anyone look at LLDB (the debugger from LLVM), is it any good?
I believe LLDB is still just a command line debugger. GDB has problems, certainly, but on the whole it's fine as a command line debugger. But the problem with Linux debugging is information visualization, right... the reason Visual Studio is good is because you can get a screen set up that shows you everything you need to see in one view: call stack, watches, memory, whatever, integrated disassembly... And it mostly works. It used to work better, and it's definitely getting worse, but it still mostly works. The problem on Linux is that you cannot get that. The graphical debuggers that attempt to take GDB's data and put it in a usable set of quick-to-see views just fail miserably, often can't display the data at all, and often lack very important features (like mixed source/assembly, etc.)

So LLDB doesn't really help much here... perhaps a GUI on top of LLDB could, but LLDB alone doesn't really address the problem :(

- Casey