Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Games Linux

Developing Games On and For Linux/SteamOS 145

An anonymous reader writes "With the release of SteamOS, developing video game engines for Linux is a subject with increasing interest. This article is an initiation guide on the tools used to develop games, and it discusses the pros and cons of Linux as a platform for developing game engines. It goes over OpenGL and drivers, CPU and GPU profiling, compilers, build systems, IDEs, debuggers, platform abstraction layers and other tools."
This discussion has been archived. No new comments can be posted.

Developing Games On and For Linux/SteamOS

Comments Filter:
  • by Anonymous Coward on Wednesday December 25, 2013 @07:08PM (#45784147)

    Richard Stallman endorsed Gamemaker.

    "There's nothing that Gamemaker cannot do. Gamemaker can simply do anything. Anything made in Gamemaker is fantastic. I love Gamemaker. I can't get enough of Gamemaker. Return to Gamemakerdom, you insolent insects! You're nothing without Gamemaker! Why not use Gamemaker? Linux is garbage; it wasn't made in Gamemaker. Why do you cower? Because you're not using Gamemaker. Use Gamemaker already! Return, return, return, return, return to Gamemakerdooooooooooooooom!" -Richard M. Stallman, on Gamemaker.

  • by Anonymous Coward

    The article referenced is sure to cause seizures for anyone that can't get past things like the incorrect use of "it's" and various other spelling and grammar errors. The author should do a quick read through before getting Slashdotted.

  • Article is generic (Score:5, Informative)

    by the_scoots ( 1595597 ) on Wednesday December 25, 2013 @07:16PM (#45784215)
    There's really not any information specific to SteamOS or even games in particular, just general info. Not a bad article, but a misleading title.
  • by Anonymous Coward on Wednesday December 25, 2013 @07:52PM (#45784431)

    I do appreciate this recent influx of interest in game development for Linux, brought on by Steam for Linux. I just hope that at least some developers show an interest in developing games that doesn't REQUIRE Steam as well, or have Steam as an option as well as maybe a DRM-free version as well. I play a lot of older commercial games on Linux like Doom 3/Quake 4/UT2004/Neverwinter Nights, and they all work fine but don't use Steam. Now, we might see more commercial games on Linux but they'll probably all use Steam, and that seems quite disappointing if you don't want to tie yourself to the platform (which I don't, for various reasons).

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      At the same time, we're also seeing a huge push for indie games. Big gaming companies have grown stale while indie developers and bringing in fresh ideas (even if over-using not-so-fresh pixel graphics). Thankfully, these indie developers have seen the mistakes others made when playing with DRM and are steering clear while still seeing Steam as a viable release platform. That means they release a stand-alone client and a Steam-based client. Take a look at Starbound [playstarbound.com], which is currently in beta. The same can

      • I can't speak for other indie devs, of course, but I'll definitely be targeting non-Windows platforms at some point. I've developed my own game engine (most commercial engines wouldn't work optimally for the type of game I'll be making), and I've taken great pains to ensure a clean separation between platform neutral and platform specific code, so as to make porting as painless as possible.

        That being said, I'm staking my financial future on my first upcoming game, and so pragmatism dictates that I first en

        • I've taken great pains to ensure a clean separation between platform neutral and platform specific code

          Different platforms have different input devices, such as mouse and keyboard, gamepad, or touch screen input. How are you going to cope with the vast difference in capability among these?

          Oh, yeah, also, no DRM for my games either. Ever.

          So what do you plan to do should you find another company cracking your game, changing the title screen, and selling it as its own game? And how do you plan to get onto platforms that require DRM for all games, such as the major consoles (PS4, XbOne, Wii U), major handhelds that have a gamepad (3DS, PS Vita), and phones tha

          • Different platforms have different input devices, such as mouse and keyboard, gamepad, or touch screen input. How are you going to cope with the vast difference in capability among these?

            You don't typically have to boil all those devices into a single abstraction. In my case, I'm only supporting keyboard, mouse, and gamepad, since it's a PC action title, and all those device types are already pretty well abstracted by the operating systems.

            So what do you plan to do should you find another company cracking your game, changing the title screen, and selling it as its own game?

            I'd call a lawyer. That's not a problem that DRM or any other technology solves. DRM is about protecting against illegal copying and sharing of digital goods. Unfortunately, it either doesn't work well, or it's so intrusive that it interferes with the

            • by tepples ( 727027 )

              In my case, I'm only supporting keyboard, mouse, and gamepad, since it's a PC action title

              So how do you plan to balance the game so that it's not too hard with gamepad aiming and not too easy with mouse aiming?

              [Should I discover blatant copyright infringement of my product,] I'd call a lawyer.

              I agree in theory. But in practice, how would a startup indie developer afford what a good lawyer charges? Or to investigate who leaked your product to the warez scene?

              If users want to get a DRM-free version of the game they just have to choose a DRM-free platform to play it on

              I'd love to. But which handheld platform supporting DRM-free games ships with a gamepad and not just a flat sheet of glass? And prior to SteamOS, which platform supporting DRM-free games was designed for use with a televisio

              • So how do you plan to balance the game so that it's not too hard with gamepad aiming and not too easy with mouse aiming?

                I'm still early in development, so this is something I'll need to tackle. It's likely that I'll introduce some sort of auto-aiming to help assist the controller user. It's not a FPS, though, so with my particular game, a mouse may not be as significant an advantage - an analog controller stick will certainly have more precise control for movement.

                I agree in theory. But in practice, how would a startup indie developer afford what a good lawyer charges? Or to investigate who leaked your product to the warez scene?

                If another company has started selling your copyrighted product, then perhaps it might actually be a matter for a district attorney, as it's a criminal matter, n

      • by Anonymous Coward
        Starbound devs made the decision to release the game on Steam only for now, since they are expecting to push lots of updates, and Steam really helps with this. Though the Linux version does not need Steam to run, and they will release a DRM-free standalone version after it exits the phase where they may need to patch every day.
    • I failed to run the linux version of doom 3, so I fell back on running it with Wine instead where it was flawless. Of course as often on linux, to accesss the console and weapons you need to set the keyboard to QWERTY so it's more like typing 'setxkbmap us&&wine doom3.exe' at the prompt, but it's almost there lol. (not 100% sure if that part applies to doom 3 but it does much often, including in random linux native games)

      • by Winamp ( 3439895 ) on Thursday December 26, 2013 @05:58AM (#45786725)

        Yeah, I guess I didn't mention in my post that one of the unfortunate things about trying to get these older commercial Linux games to run is that they're all more difficult at getting to install or behave properly in modern Linux distros than they do in modern versions of Windows.

        In your case, the Doom 3 installer normally uses a GTK 1.2-based installer but relies on system libraries. Most distros don't supply them anymore and even if you can find a way to put them on, the installer looks for 32 bit libraries in particular locations so in the end it'll default to its fallback console-based installer, which at least still works. Then you've got to deal with forcing DOOM 3 to bypass PulseAudio as it glitches badly with either no sound at all, or something like a 5 second sound lag (PulseAudio didn't exactly exist when the game was made).

        Ah, good fun I guess. It's certainly more satisfying once you finally get it working as you'll learn a heck of a lot about Linux (including a broader understanding of why people get frustrated with it and go back to Windows). Having said that though, newer games are better designed for the Linux ecosystem and have FAR less issues.

    • Oh, there are plenty. Humble Bundle games. Don't Starve. Planetary Annihilation. A lot of the steam games also have non-steam versions you get if you buy it from their website too.

      • by Winamp ( 3439895 )

        Yep, that's true and it's good to see. I guess I just wish more AAA (commercial) titles like Metro: Last Light had a DRM-free version, but then again it's not like such a version exists in Windows anyway, so it's good Linux gets more games and even if the DRM has to stay it's not WORSE on Linux compared to Windows.

  • by postmortem ( 906676 ) on Wednesday December 25, 2013 @07:57PM (#45784443) Journal

    Netbeans - although their focus is Java, C/C++ support is great.

  • by Anonymous Coward

    Windows has, as of late, become Linux and Open Source's best ally. M$ is breaking things so quickly that business is concerned that it will become unmaintainable. For example IE 11 has issues with Exchange 2010's OWA web page. If the M$ stuff doesn't work with the M$ stuff, what chance does it have on legacy systems?

    I have been waiting for mainstream gaming to come to linux for some time now. The only reason I am running windows at home is netflix and games. At work I have to maintain it on servers and

    • Bring on the Linux version of GTA, Battlefield, and other major titles, PLEASE!

      Try Serious Sam 3: BFE [steampowered.com] for this holiday.

      • by Anonymous Coward

        Or don't. That game sucked. Play the vastly better "Serious Sam: The Second Encounter" instead. The HD version uses the same engine as Serious Sam 3, so go ask Croteam to port it.

  • Some Additions (Score:4, Interesting)

    by Anonymous Coward on Wednesday December 25, 2013 @08:24PM (#45784591)
    • For Linux IDEs the article misses Netbeans which has a stable and reliable C/C++ Plugin that directly supports CMake projects .
    • A list of c++ cross platform libraries is never complete without mentioning boost - severall C++11 features where inspired or even copied from it.
    • OpenGL dropped a lot of its old API and you should develop against the Core profile to get most out of performance enhancements.
    • Since GLSL shaders are a must with the core API you should make soure to specify a shader version in every shader (at least with the NVIDIA driver this forces it to be stricter) one of the portability problems is that NVIDIA compiles both CG shaders and GLSL shaders with the same compiler and it currently allows you to use CG constructs in GLSL code.
    • Test running code on AMD/Intel/NVIDIA cards shows that each of them varies on how strict they parse GLSL, to make sure that your code runs on all of them you have to test against all of them (thought testing against intel might be enough, from limited tests it seemed to be the strictest).
    • CPU profiling: Until you get into very small ranges you can sample by randomly stopping the program in a debbuger - the line appearing most often in the stacktrace is likely the culprit.
    • GPU profiling/debbuging: since AMD bought and then killed the vendor agnostic gDebbuger (after releasing an AMD only version) before releasing CodeXL the only alternative is a windows setup with visual studio (not free - express does not support plugins) and Nvidia visual Insight(free). Older versions of gDebbuger might still be available but are rather limited.
    • by Anonymous Coward

      Hey look everybody, another Oracle shill!

  • Qt Creator (Score:5, Informative)

    by jones_supa ( 887896 ) on Wednesday December 25, 2013 @08:47PM (#45784705)
    Qt Creator is hands down the best C/C++ IDE for Linux.
  • by Anonymous Coward

    Come up with some sort of directX emulator/port.

    Being able to put 90% of the windows games on linux with some minor emulation layer would be HUGE.

    THAT would make a huge difference.

    |::Now insert everyone saying this would be HARD and POINTLESS and blah blah blah...
    But bottom line is you want linux to be mainstream as a consumer OS? Make it play games.
    And make it EASY for the end user who does not want to screw with config files. Recompiling anything. Or major system changes just to get a game to work.

    Once

    • Re: (Score:3, Informative)

      by jedidiah ( 1196 )

      The gaming market is already moving away from Windows and thus DirectX. There was a time when trying to emulate Windows was the most relevant approach but that time has passed already.

      • by Anonymous Coward

        The gaming market is already moving away from Windows and thus DirectX. There was a time when trying to emulate Windows was the most relevant approach but that time has passed already.

        Said no one ever. Ever heard of the Frostbite engine and all the huge titles that run on it? The game market is not moving away from Windows. The Windows game market is the largest it's ever been, ever.

    • by Anonymous Coward

      http://wiki.winehq.org/DirectX

      The Wine team is working on that....

      • by mark-t ( 151149 )

        Last time I checked, it was still the case that wine was explicitly not officially supported on 64 bit only platforms.

        Also, most applications which require .NET, which is quite a few, actually, won't work under wine.

    • by EzInKy ( 115248 )

      Better would be better! Why emulate when you can improve?

    • by Anonymous Coward

      Porting to Linux is trivial. I ported one of our games to Linux over a weekend (with two bugs... one related to fullscreen switching, and the other related to gamepad support... both could be fixed with another day's work). It never got released though, Why? Because convincing the business people that there might be a market for a linux game was simply too hard.

      DirectX support is a completely non-issue.

    • by ledow ( 319597 )

      If you are in any way a vaguely competent games developer (even an individual) then the difference between DirectX and OpenGL is miniscule.

      And if you CHOSE to lock yourself into a Microsoft-only platform (thereby destroying your compatibility with Mac, Linux and many console platforms - apart from XBox, obviously - in one fell stroke) then that's a choice you made that you have to do the work to recover when it comes time to admit your mistake.

      And yet targeting OpenGL from day one, it would have all worked,

  • Right now Unity3d can target Linux, which is leaps and bounds in the right direction, but it really needs a native Linux development environment to be really useful.

    The forum feedback page for a native Linux Unity3d editor [unity3d.com] has been around for over 3 years, received almost double the number of votes of the next highest issue in the feedback pages, and we're still waiting on it.

    The impression I'm left with is that even those who produce a sophisticated enough gaming engine or system that can be genuinely competitive in that industry, and who might actually have some support for Linux aren't generally taking Linux seriously as a game development platform. Until that happens, I don't see Linux gaming going anywhere...even with what Valve is doing with it these days.

  • Debugging: " Even if I don’t quite understand why people chosen GDB as their top thing that needs improvement (I think there are more pressing matters)"

    I'm not sure what is worse, that this gentleman doesn't know why gdb debugging is inconvenient compared to other options --- or that he hasn't taken the time to learn why gdb is no fun to debug with by asking around.

    " I’ve been using SDL for years but because of lack of shared OpenGL context support I wrote my own X11 implementation. A few mon
    • by Anonymous Coward

      GDB does not need any improvement at least not any as regards to usability. It is a debugging engine made to be integrated in other tools. It would not fit with the "simple is beautiful" approach if it had a high level GUI to begin with. Most of the other options you are talking about (on Linux) are just fancy frontend on GDB (Eclipse, NetBeans, ...) so if you use one you don't even need to know how to use GDB directly.
      Hell, even Emacs has a fancy interface for GDB with multiple windows (dynamic libraries,

      • by ledow ( 319597 ) on Thursday December 26, 2013 @07:05AM (#45786861) Homepage

        I have to say that GDB under Eclipse is actually my preferred tool for debugging. Hell, half the time you can't even see that it's actually using GDB yet it does everything I would want in a debugger.

        It's all horses-for-courses but in terms of GDB *itself* (i.e. not a frontend to it), I don't think there's much to improve except keeping up with new binary formats, instructions, etc.

  • This is a blog article that essentially says "on linux you have this gcc compiler, and you use opengl instead of directx for games".
    How useful! I'm sure most people didn't already know that. Not slashdot worthy at all.

    • To be fair it also said "there's also clang; but it uses the same switches as gcc so you can just use it as a drop in replacement." But other than that...yeah, it doesn't really containing anything startling.

      Some games are only a hair's breadth away from being Linux ready anyway - I've certain played quite a few Windows games that use SDL, Ogre, OpenAL, etc..

  • by jandersen ( 462034 ) on Thursday December 26, 2013 @10:47AM (#45787595)

    Sure, it's great that there may be better support for developing games on Linux in the future, but I am not sure it makes all that much difference. It certainly won't to me, if all it means is that we are going to have the existing games ported Linux. I stopped taking an interest in games long ago, because there is no true innovation - it is always just about more 'relistic' graphics, more 'stunning' effects etc; but the actual games underneath haven't really developed since the very beginning.

    What I'd really like to see is a type of social game that is strongly focused on learning and experimentation, something that will stretch and develop your academic skills. Examples:

    - You are part of a team of researchers working together, trying to learn the secrets of some advanced, scientific subject - something above high-school level.

    - You are creating a new universe, designing physical laws etc. Can you create life - and what is the definition of life in your universe?

    - You are a hero, you are on a quest to find a treasure and probably kill a number of monsters. But your world is not quite what you are used to. Space is not Euclidean, it may not even be a smooth manifold - the topology may not be Hausdorff, and you are influenced by force fields that are ... different. You only know that the laws of logic are valid. Probably.

  • How about instead of tailoring your program to a platform and having to write it three times, just learn how to get the most out of the Java Virtual Machine and being able to run it on pretty much any PC on the planet. You don't even need to use JAVA, there are several languages that were designed for the JVM, and most others have are a library and a few compiler options away from being instantly cross platform.

BLISS is ignorance.

Working...