Slashdot Mirror


Developing Games On and For Linux/SteamOS

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."

26 of 145 comments (clear)

  1. Richard Stallman endorses Gamemaker by Anonymous Coward · · Score: 5, Funny

    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.

    1. Re:Richard Stallman endorses Gamemaker by Anonymous Coward · · Score: 4, Funny

      Have you HURD about gamemaker?

    2. Re:Richard Stallman endorses Gamemaker by davester666 · · Score: 5, Funny

      This message paid for by the Society To Keep Richard Stallman Away From Society.

      --
      Sleep your way to a whiter smile...date a dentist!
    3. Re:Richard Stallman endorses Gamemaker by smittyoneeach · · Score: 5, Funny

      It Emacs me sick.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  2. Article is generic by the_scoots · · Score: 4, Informative

    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.

    1. Re:Article is generic by jafac · · Score: 4, Insightful

      . . . and ppl wonder why I don't RTFA.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
  3. Re:TFA needs editor by boundary · · Score: 2

    With typing like that I'd be surprised if their code ran.

  4. So long as we have non-Steam games too by Anonymous Coward · · Score: 5, Insightful

    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).

    1. Re:So long as we have non-Steam games too by Anonymous Coward · · Score: 3, Insightful

      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, which is currently in beta. The same can be said for many (most?) games that appear in the Humble Bundle.

      We can't say with any certainty yet, but I'm under the impression that indie games will continue to rise*, multi-platform gaming will spread, and DRM will disappear.

      *Maybe rise and replace the current gaming giants? Maybe not-so-independent?

    2. Re:So long as we have non-Steam games too by Winamp · · Score: 4, Informative

      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.

    3. Re:So long as we have non-Steam games too by Dutch+Gun · · Score: 2

      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 ensure the game is deliverable for Windows, as it represents about 85% to 90% of the gaming market. My first porting job will be for the Mac, as that's the next largest segment. Linux comes in a pretty distant third at around 1-2%. (note: numbers are based on Steam hardware survey, which I'd guess are reasonable estimates) With any luck, the Steam-OS will help this grow, but I can't stake my future on that sort of gamble. Of course, the other hurdle is that I'm not experienced with the Mac or Linux platforms, and so in addition to porting my own engine, I have to learn how to develop for those platforms from the ground up.

      So, for me, unfortunately, it's highly likely that a Linux port will come after the Windows and Mac versions. The good news is that once the engine port is done, I should be able to simultaneously release on all platforms in the future with minimal effort. It's just tricky to allocate so much development time up front for such a small market share when I also have to get the game released (or run out of money).

      Oh, yeah, also, no DRM for my games either. Ever. Indie games don't have DRM use dictated by corporate types, so we don't have to inflict that sort of nonsense on our users.

      --
      Irony: Agile development has too much intertia to be abandoned now.
  5. misses to mention popular IDE by postmortem · · Score: 2, Informative

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

    1. Re:misses to mention popular IDE by Great+Big+Bird · · Score: 2

      On another platform: yes.

  6. Some Additions by Anonymous Coward · · Score: 4, Interesting
    • 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.
  7. Re:give it up by fisted · · Score: 4, Funny

    Actually we peaked with NetHack. It's been a while, admittedly, but then again, you guys never had a peak anywhere near that high

  8. You can. . . by smittyoneeach · · Score: 3, Funny

    . . .but only if you're going to run them within a BeOS VM on Linux.
    Sorry, I don't make these rules; I just enforce them.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  9. Re:Linux by jones_supa · · Score: 2

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

    Try Serious Sam 3: BFE for this holiday.

  10. Qt Creator by jones_supa · · Score: 4, Informative

    Qt Creator is hands down the best C/C++ IDE for Linux.

  11. Re:Awful article by jedidiah · · Score: 2

    Yet somehow companies like Oracle manage it.

    It's just like all of Adobe's whining about audio libraries.

    Some people just take care of business while others do nothing but make excuses.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  12. Re:You want linux gaming to go big? by jedidiah · · Score: 2, Informative

    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.

    --
    A Pirate and a Puritan look the same on a balance sheet.
  13. Re:You want linux gaming to go big? by EzInKy · · Score: 2

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

    --
    Time is what keeps everything from happening all at once.
  14. Re:Developing Linux applications in OSX? by AHuxley · · Score: 2

    You could create a great cross platform game by coding with the big OS in mind from the start.
    As the OS developers updates, dropped support for hardware or changed code *should* be able to be fixed with good game code planning.
    You could find a good 'free' 2D/3D engine that has wide OS support and the fine print for you to make a profit.
    Or find a good 'free' 2D/3D engine that can allow you to make a profit and work long and hard to recode it for more OS options.
    The main issues are great artists, good level design, developers insight into updated cross platform support.
    Other issues are the 'wait' for sound, graphics or control code to be 'fixed' after huge OS changes from open or closed developers.

    --
    Domestic spying is now "Benign Information Gathering"
  15. Sure... when Unity3d makes a Linux editor... by mark-t · · Score: 2

    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 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.

  16. Re:Is this article a joke? by ledow · · Score: 3, Informative

    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.

  17. Innovation, please by jandersen · · Score: 2

    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.

  18. Re:Developing Linux applications in OSX? by UnknownSoldier · · Score: 2

    > is it possible to develop Linux apps in OSX?

    Depends on the complexity. I use SDL2 for my indie game. Development on Linux, port to Windows and OSX. Really can't much simpler then to use a 3rd party library that Valve helps contribute to and use on Linux L4D2.