Slashdot Mirror


Maxis Developer on Linux Game Porting

friedmud wrote in to tell us about a comment from a Maxis developer, Don Hopkins, who did a partial linux port of "The Sims". You can find his post here (3rd one down, comment from Don Hopkins titled "Reality check from a game developer") in a LinuxGames.com forum. I don't know if I agree with his assertion that Wine is the best way to have games happen on Linux but his comments on the economics of Linux games development and especially the costs of keeping versions concurrent on multiple platforms are insightful.

14 of 364 comments (clear)

  1. SDL and other multi-platform libraries by geekfiend · · Score: 5, Informative

    The process of porting a game can be much less difficult if the developer chooses a multi-platform library. For games SDL allows this and for other sorts of applications, QT can do the same. The challenge lies not in porting, but rather the developer chosing to work with a propietary single-platform library (DirectX) versus something more portable, and argueably better!

    1. Re:SDL and other multi-platform libraries by drzhivago · · Score: 5, Insightful

      I believe some of the problems lie in the way a multiplatform library works. For games, if SDL isn't as fast on Windows as DirectX, why should it be used? I know its a bad example, because I think that SDL actually routes down to DirectX on Windows. Remember, users come before developers...

      But what about a UI library that doesn't draw the controls the same as the user's operating system? Look at Photoshop for Windows.. it looks like I'm using a Mac. I don't want that! I want an application that looks and feels like what I normally use. The best libraries will work like that, even though they have a cross-platform API. Linux versions will have the window manager look and feel. Mac versions will look like a Mac application.

      RealBasic for Mac does this pretty well. Using a single source tree, RealBasic will compile for both Mac and Windows. The Mac apps look like Mac apps, and the Windows apps look like Windows apps. That transparency is what will win.

      Of course, to make it easier for the developer can be a good thing. But to give the user a better experience is more important. Because if a user doesn't like your product, why bother?

      Greg

    2. Re:SDL and other multi-platform libraries by Osty · · Score: 5, Insightful

      Right now companies are busy trying to wring every penny out of what they have. They could care lessabout attracting new customers or trying anything innovative. Any game development house that hasn't researched SDL or any of the non-platform specific systems is driving the nails into their own coffin.


      That's really only true for Valve (Half-Life, Half-Life GOTY, Half-Life Gold, Half-Life Platinum, Half-Life You'll Buy This Too, Even Though It's The Same As What You Already Have, etc). Most other publishers might make a GOTY edition and leave it at that. However, if by wringing "every penny out of what they have" you mean making sequel after sequel, I don't see what your argument is. Especially since the good sequels do add innovative new features or items (let's ignore the Tomb Raider franchise, shall we?). As far as not porting to other platforms, I don't see how that's really an issue. Most game houses don't seem to have problems porting back and forth from consoles (PS2, PSX mainly) and Windows. They're not going to bother with Linux because it's such a marginal market. There's no money there, so why bother? And ignoring a valueless (monetarily) market is not going to kill a company. In fact, porting to that market just might kill them instead.


      I'd rather have my programmers using open source and ZERO cost tools than having to shell out several hundred thousand dollars every year for upgrades and license fees that are unneeded.

      Note that

      1. DirectX does not require a license for you to use it
      2. Nor does it require you to use Visual Studio as your development environment
      3. Thus, you can use Borland's free compilers (or buy the commercial versions), or use a gcc port like mingw32.


      The other problem is finding programmers good enough and smart enough to be able to write software outside a GUI and IDE.

      Because we all know that only poor, stupid programmers use IDEs ... (btw, all the Visual Studio compilers (for C++, VB, C#, Jscript, and so on) can be used strictly from the commandline, using makefiles or build scripts, and you can use any editor you want to write the code they compile -- vim, emacs, notepad, Source Insight, Visual Studio, or whatever)


      Universities today are cranking out CS degrees that can't comprehend a command line compiler let alone understand how to create a makefile by hand. and the fault lies directly in the hands of the professors.

      Red Herring. It's not a University's job to produce automaton that can write a makefile or compile the latest 'sploit by hand. If that's what you expect from a CS program, you'd do better to save money and go to a tech school (or alternatively, save money buy hiring a student out of a tech school). A properly educated CS student may not know how to write a makefile or use gcc from the commandline right out of college, but I can guarantee you that s/he will be able to learn how to do that quicker than your average self-taught or tech school programmer can learn to analyze the performance considerations of various search algorithms (for instance).


  2. Native ports are best! by Glock27 · · Score: 5, Insightful
    What we need are elegant, cross platform game libraries (and languages) so one code base can be used.

    I think the best current approach involves Java, which can be either natively compiled (gcc 3.0) or run on a VM (JDK 1.4 should be quite good). Check out Arkanae for an early preview. :-)

    299,792,458 m/s...not just a good idea, its the law!

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  3. Its a shame. by Captain_Frisk · · Score: 5, Insightful
    As much as I'd like to see more games ported to linux, so that I might be able to give up my MS habit completely, you have to agree that economically it just doesn't make sense.

    Having multiple target platforms is a serious headache, and Linux just isn't a big enough market. Most linux users are used to getting their software for free anyway, and probably have the technical savvy to score free versions of any software released. While I'm sure that there are plenty of honest people out there, the fact is that there are very few people who are going to pay for linux games.

    Also considering the generally degraded performance of games under linux and the continued acceptance of DirectX as the standard for graphics, all make Linux development difficult.

    I read recently that id doesn't want to release their next product under linux (historically they have been pretty good about that stuff) because its a support nightmare, and just really doesn't bring in that much revenue.

    I think in order to start getting more native Linux games, Linux needs to prove itself as a consumer OS first. Once Linux starts to satisfy peoples needs easily (thats so important) then i think more people will start moving over, and once they do, then the linux games will start rolling in.

  4. I just don't get it... by Xerithane · · Score: 5, Redundant

    ... we have SDL. we have OpenGL. I fail to understand the logic that game companies harbor to not write cross-platform games. I've done some development with SDL and it's a really good toolkit. Sure, it needs some more work but everything does. OpenGL is awesome, and it's not controlled by one proprietary source.
    Taking some extra time to port to linux and ship it on the same CD as the windows version doesn't seem like a bad idea. His talks about Wine are fine and all, and I can understand that.. but I really dislike his dismissal of whether or not it is native. AFAIK Wine still requires Windows. That is bullshit. I want a game to run on Linux. Linux. Not windows, not wine. Wine is Not an Emulator, Right?
    It doesn't seem to take much to build a game using existing cross-platforms toolkits that rival Direct3d. OpenAL seems to be the largest gap to bridge.. but, this is a pointless rant so I'll end it.

    --
    Dacels Jewelers can't be trusted.
    1. Re:I just don't get it... by DGolden · · Score: 5, Insightful

      Linux is not worth it. Not 5 years ago, not today, not tomorrow, not a year from now.

      People said the same about windows games. "Why develop for Windows when everyone has DOS?". Well, corporate IT was moving towards windows, so the savvier game developers saw that people would soon have windows everywhere - and if there's one thing that people always do, it's play games when they should be working. Now corporate IT (at least in here in Europe and (according to reports) in Asia) is moving toward linux on the desktop and server.


      OpenGL develops slowly and requires proprietary extensions for the newest video cards.


      OpenGL development did slow down a bit. It's speeding up again now, thanks largely to Mac OS X. There may sometimes be extensions, but that's still better than the whole bloody thing being proprietary and at the whim of MS, like D3D is. There's a well-defined process for folding such extensions into future revisions of the OpenGL standard. OpenGL was designed to be extensible.

      Also, the Direct* APIs are a bitch unless you code in MS-mutilated C++ - OpenGL has well-defined, easy to use, pure C and fortran bindings, as well as decent bindings for many other languages. - That's one of the reasons OpenGL is used for high-end applications, like CAD and scientific and engineering visualisation (my specialty). DirectX truly, deeply sucks for anything like that. OpenGL is also designed for very high poly-count stuff encountered in visualisation. OpenGL on linux is being developed enthusiastically, from the industrial side - visualisation front ends for $50000 numerical simulation software that used to run on SGI IRIX systems are now being run on Linux boxes. OpenGL isn't going to fade into obscurity anytime soon - the profits from a couple of licenses for the sort of software that really uses OpenGL can outweigh the profits from the sales of hundreds of thousands of copies of weenie windows games.

      --
      Choice of masters is not freedom.
  5. Wine is important, but.. by k98sven · · Score: 4, Insightful

    In my opinion, there is no future for linux gaming if wine is the only way to go..

    The problem is: at the moment, the best gaming API
    is Microsoft DirectX, like it or not, and
    the likelyhood of DirectX becoming a cross-platform API is zilch.

    So obviously, Wine is needed at the moment, partly as a windows-simulator,
    but also as an implementation of DirectX on linux.

    In the long run, however, It's unhealthy to be dependent on an API dictated by microsoft.
    We need a new, open, alternative.

    Perhaps SDL 2.0 or OpenGL 2.0 is the answer needed?
    Linux needs a killer DirectX-killer-API, much in the same way DirectX was the
    MSDOS-killer that moved games development to windows.

    However, if wine is the future of linux gaming,
    we are (indirectly) giving that future to Microsoft.

  6. slow news day by _|()|\| · · Score: 5, Insightful

    So let me get this straight. The highest modded post from yesterday's story is copied to another forum, and it makes today's news?

  7. Remember Windows 95? by uchian · · Score: 5, Insightful

    Anyone remember when Windows 95 came out originally? It had no games, or at least the ones it did have sucked big time. Everyone moaned that Windows gaming would never take off because dos games were faster, and more dedicated.

    And now everyone uses Windows.

    Why?

    Because it was still possible to play at least some dos games under Windows (because it was built on dos), and with for a bit of hassle, Windows would close, your game would run, you finish your game and windows would reboot.

    Yeah, it wasn't neat, but it let people move to Windows 95 and still play their dos games. Once the user base was large enough, native games became available.

    My point is, the argument against Wine is exactly the same.What I want to be able to tell people is

    "Yeah, you CAN play all your existing Windows games under Linux! Try it and see! It's SOOOOO much better than Windows!!!".

    Y'see, if we could get people using Linux more, the user base grows. Then it becomes more feasible to make native Linux games. Then the user base grows some more... See what I'm getting at?

    If wine can play all windows games, we can get all those game loving people who won't try Linux because it hasn't got any games to try it and love it too.

  8. Platform-independent games by smcv · · Score: 4, Interesting

    Why stop at netcode?

    "It is entirely possible to have this part of the code isolated from the rest of the code, and for it to be completely platform independant."

    This applies nicely to other stuff too.

    Have you seen the Unreal engine, responsible for Unreal, UT, Rune, Deus Ex and others? Video, audio, input, physics, etc. are implemented in C++ for speed. The game code ("when the player touches a gun lying on the ground, add it to their inventory" and so on) is written in UnrealScript, a compiled-to-bytecode language vaguely similar to Java. In the case of UT, you'd probably be surprised how much is done in Unrealscript (you could quite conceivably make a whole new game without changing the C++ bits, although you'd be stuck with a slightly older graphics engine that way).

    I believe Quake 3 uses a similar system (mostly so that auto-downloaded mods can't carry viruses because they run in a Java-applet-like "sandbox"). This is why the UT and Quake 3 Linux ports consist of a smallish set of replacement binaries (the UT one is around the same size as the latest Windows UT update patch), and require a Windows CD to install from.

  9. Console vs. PC vs Multiple PC Development by Gedvondur · · Score: 5, Insightful

    One of the things I didn't see mentioned is that a lot of developers are writing for the console only.

    Consoles have a lot of advantages. They are stable same-same environments. Not a lot of variance, since there is only one manufacturer for each one. There have been some companies that have questioned making games for PCs entirely becuase of the wide variance in the hardware, let alone the operating system.

    Many companies make two versions now, one for their console-of-choice and another for Windows/Intel PC platform.

    Guess which one is the support nightmare. Pretty easy when you have to support several different video card manufacturers, even ones that don't exsist any more like VooDoo. Yet, the small, vocal, they-will-get-my-VooDoo-when-they-pry-it-from-my-c old-dead-hands crowd clamors for support and then whines when they can't get it.

    Different versions of Windows, cheap, God-awful systems from Best Buy and Circuit City, poor white box mail order, you name it, and its a problem on the PC platform.

    So, is it a Windows vs Linux thing? Not really. Unless Linux becomes the dominant desktop environment, or at lest has double digit percentage numbers, its a useless question. Developers don't REALLY want to develop on the PC to begin with because of the high support cost, and they are certainly NOT going to develop for a low desktop marketshare OS like Linux.

    Think about this anyway: If they did, they would only support it on Red Hat anyway,(market share and mind share again) and then you would bitch about that. This community will only be happy if there are NATIVE Linux games that work on every distro. Ain't gonna happen. Be happy there is still a market for PC games at all.

  10. Re:You might be wrong by bribecka · · Score: 5, Insightful

    so i think the sims might lure them away from Windows.

    IMHO, no game is going to lure people away from Windows. Think about it:

    There is a user that runs windows and buys games that run on windows. Now, one game is ported to Linux, but it also runs on windows! Why would they switch? There's no need, that game already runs on windows, as does every other game they own, and the overwhelming majority of games due to come out.

    Really, what is so *great* about Linux that will lure the gamer from windows? The lack of games? The lack of driver support? Or maybe the fact that it's completely different than everything they know?

    Now, if the Sims 2 came out *only* for Linux, you might have something!

    --

    Where are we going and why am I in this handbasket?

  11. Killer Apps by NeuroManson · · Score: 4, Insightful

    What is it that allowed Windows to win the mainstream? What is it that allowed Apple to win the mainstream? A concept known as killer apps... Essentially, a program that allows the platform of choice to perform a duty and function that is NOT available/possible on other systems...

    Linux is good for server applications, but *really*, what can it do that Windows/Mac cannot do, other than not crash as often? Very little... Why is this? Between platforms, Linux does little more than ape most of what anyone running Windows/Mac can already do, and far FAR simpler... Can Linux be used optimally for graphic design and video production without any hassles of hopping between CLI and GUI? Nope... Can Linux be used for mainstream business applications and gaming without doing the same, or relying on emulation? Nope... Face it, Linux relies on a few adequate programmers attempting to reinvent the wheel, or emulating an OS that already exists with far less BS to fight through to get the job done...

    THIS is why Linux fails... This is why Linux isn't replacing 100% of Windows desktops...

    This is not a flame, this is constructive cricism... The problem with Linux is that there are plenty of people willing to rally around the banner, but very few willing (and able) to actually go to war for it... Linux, in order to fight against the two big shots, is to make some applications that are COMPLETELY unlike what is already on the market, and unique in what it can provide... Make something, ANYTHING, that can either (a) supplant existing applications (make a graphic editor far superior to what can be found on Windows or Mac platforms, with a GUI to allow you to use it, artists traditionally don't LIKE to have to haggle with CLI's just to draw, I'm an artist, I KNOW this), and (b) provide a program that is completely unique, anything that the existing Windows/Mac scene has completely overlooked... Use your imaginations, you want the OS to succeed, then FIGHT so it can, instead of pretending that just being crashproof is the lone cause for it's acceptance...

    What good does a bulletproof jacket do you in a world where everyone fights with rocket launchers?

    --
    Just because you can mod me down, doesn't mean you're right. Shoes for industry!