Announcement

Collapse
No announcement yet.

FOSS and Game Development: the Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • FOSS and Game Development: the Problem

    I felt a strong need to reply to a recent comment on http://phoronix.com/forums/showthrea...Games&p=244454 but didn't want to contribute any further to the threadomancy going on there. Cut-n-pasted what I was about to reply with below.

    As a further note on this topic, this is all forum-quality brain dumping of course, and not presented in any kind of proper essay format. I'm pointing this out because I'm still collecting feedback on the topic since I'm not sure exactly how on target on I am. I'm positive I'm at least in the ballpark. I have gotten plenty of feedback face-to-face from real game professionals, but not a whole lot from the FOSS community yet. I've yet to speak to anyone who has worked for years full-time on FOSS projects about gaming; just a few casual FOSS contributors like myself, which means FOSS hasn't had a fair representation in the discussion.

    Not sure if I've brought this up on Phoronix before, either. Know I have on a few other FOSS sites, but got almost no feedback on any of them. :/

    Originally posted by MeduZa View Post
    Originally posted by RealNC
    open source games will never reach this level of quality (with actors and such being expensive and not... open source-able :P)

    never say never!
    Never.

    I haven't put together the talk I planned, but there are a number of reasons why the Open Source / Bazaar model just does not work for things like AAA video games, Hollywood movies, and so on. The primary reason is that the biggest strength of Open Source is actually a weakness for projects like those: the idea that people can come in, scratch an itch, jump in and join the project any time, and help improve it before release. For a video game or movie, the entire thing is based on an idea of content. Once that content is consumed, the product is no longer interesting. Some games have a lot of replayability with little content (shooters), and others have a ridiculous amount of content to make up for lacking gameplay (Skyrim), but in the end, you're not really super interested in those kinds of things two years after you first start playing with them. Unfortunately, those games also take 2-5 years to make, and that's assuming triple-digit teams working 40-100 hours/week each during that whole time.

    Something like GCC, Apache, Firefox, or so on are very different. They aren't based on content. You're not using GCC for "fun" but rather because it's a great tool for transforming source code to executables. Four years from now, GCC will still compile C++, Firefox will still browse the Web, and Apache will still serve HTTP requests. Their primary function remains relevant (even if they no longer improve) because four years from now, you'll have new C++ code to compile, new web sites to visit, and new people to serve content to over HTTP.

    The primary function of L.A. Noir does not change. It's a game that is built for a specific story. Its content is built for that story. Most of it is not nearly as reusable as many people might think. Two years from now, you're going to already know that whole story, know all the secrets, know all the tricks, and tinkering with it or playing it again is not going to be particularly entertaining.

    The problem then is that making it Open Source means that all its potential fans can play it and tinker with it long before its done. All the plot twists are going to be revealed long before the player hits the proper scene that makes the twist emotionally impactful. All the actors are going to be known, so there's no moment "hey that's Carla Gallo from Bones!") partway through the game. All the secrets and hidden items will be known.

    Games (and movies) are an experience. They're absolutely different when you're one of the developers. The experience never happens. The "Big Reveal" is blown. Being a developer on a game is like going to a magic show when you already know how all the tricks work. It's ruined, in a matter of speaking.

    Games and movies work best when they're kept under tight wraps and revealed in one big go. There's a reason people get upset over spoilers, after all.

    The end result of all this is that being a casual contributor to a FOSS game is not particularly rewarding if you're at all interested in actually _playing_ the game, and the ability for your non-developer end-users to get so involved and see all the magic dust in the game before its ready will destroy any interest they had in the game in the first place. Thousands of people debated every little detail of Skyrim for over a year before its release, but they all got a real first-time experience when 11-11-11 rolled around and they actually got to truly see it and actually play it for the very first time.

    There are a few other big reasons why Open Source doesn't work so well for games that a bit less intrinsic to what games are. Things like how artists and musicians are significantly less friendly to the idea of their work being open to modification by anyone. Or how game development requires a dedicated time schedule and release point (the game as to be "done" eventually) while regular software can continue evolving for decades without losing value. Or the relative complexity of a game and the diminished value of casual developers with casual levels of development skill. Or the lack of reuse viability in the code or assets. Or the strict need for a hierarchy of people in charge to ensure that you get an experience and not a mess of disconnected mechanics and sub-plots (granted, that happens sometimes in professional games... *cough*Skyrim*cough*... but that just proves me point of how lacking that oversight hurts the final product).


    There's a big caveat: I fully believe that it should be mandatory for the source code for every game to be released within 5-10 years of the game's commercial release. As in written in law that this must happen Or Woe to the Publisher. The data doesn't necessarily need to be Free (copyright expiration handles that anyway, eventually), but the lack of source code for most old games means they'll be lost to future generations.

    Games are part of culture. Few people my age didn't grow up with Mario or Sonic the same way that my parents and grandparents grew up with Mickey Mouse (and the copyright terms on that are also hugely screwed up, of course). However, unlike movies or books or music, you can't simply transcribe a copy of Dragon Age from its current medium to some new OS or console 20 years from now when XBox360's are impossible to find and personal computing devices have lost any semblance of WinXP compatibility entirely. This means that the cultural impact of games can and will easily be lost to future generations in ways that haven't happened with movies. You can easily make a digital copy of Charlie Chaplin's first movie and preserve those bytes anywhere and anyway you want and play them back with a simple-ish software algorithm. That doesn't work for Assassin's Creed, which requires not only the digital copy of the data but a software "algorithm" to emulate an entire 2011-era PC or game console from top to bottom.

    As has been reported on here on Phoronix, just emulating the NES is a ridiculously complicated task. Emulating the XBox360 and its software stack is, for all intents and purposes, impossible. Emulating Win32 in WINE is still nowhere close to being generally usable, and they're not yet having to worry about emulating the hardware as well. Many games from the NES, SNES, N64, and even Gamecube eras are already lost. A lot of the commercial hits have been ported, and will continue to be ported so long as they remain commercially successful, but a lot of the smaller games are just lost. Some are lost literally, such as some of the early Final Fantasies which had to be rewritten from scratch for re-release (and yes, there's historical value in being able to inspect and play the original, even if just to compare to the remake, as that can for instance help identity cultural shifts in society's understanding, expectations, and desire for various video game design points).

    This is all very different than developing a game as Open Source. Developing them as FOSS makes little sense. Releasing them as FOSS after the fact makes too much sense from a societal standpoint. And of course an "Open Source game" is not the same thing as "charity ware" like Quake3/Doom3; a FOSS game is designed as FOSS from the start, while charity ware is just dumped out to the public after the fact. There's lots of value in that charity, but don't ever confuse them with real FOSS games, like Battle for Wesnoth.

  • #2
    As someone who was involved in/following an open source game project that never went anywhere (it was to be called Theme Park Builder 3D and was intended to be an open source game similar to Rollercoaster Tycoon, I concur with what has been said.

    The biggest problem Theme Park Builder 3D had was finding code guys willing to put the effort into actually writing code for this game (I didn't follow the project closely enough to know what engine(s) were considered/tried)

    Comment


    • #3
      Excellent write up, you bring up many good points. But I think that I ultimately disagree with the conclusion.

      It is correct to say that in some sense a video game is "consumed" in a way that a standard functional piece of software is not. It is also fair to say that it can make sense to purposefully withhold information about a creative for merely for the sake of artistic integrity. (IE: Not having the end of the story spoiled) But I don't the conclusion is necessarily that we're doomed to a future of proprietary and heavily DRM'd software. (Maybe the answer to the artistic integrity problem is a solution like Sintel and other Open Movie Projects)

      Open source as a methodology for creating software succeeds specifically because it builds on itself. There is extraordinarily little qheel-reinventing. (I'm sure I don't need to lecture anyone here about it) Yet this is notably lacking from open source games today, I think. The "ordinary" open source software world has got this problem figured out pretty well. For nearly any problem you can think of, there's a library to do it. And all you have to do is apt-get and call the right functions. But we still view video games as these one-off projects that get thrown away afterward. With a little better design, we can take the best parts of old games and put them into new ones with very little effort. So cumulatively, it becomes simple to do things that "AAA Titles" have to spend hundreds of man-months reinventing all over again. But of course proprietary companies happen to have the money to spend to do all that wheel reinventing!

      So as to put my money where my mouth is, so-to-soeak, I'm doing a little networked TRPG called Real Time Tactics for fun. After coding the game server for a week or two, I realized that I'm esentially making an open source reimplementation of battle.net. So there you go. When I'm done with that, any game will be able to plug into it have have online ranked matchmaking, and everything else you would expect.

      Comment


      • #4
        FOSS is a licensing strategy, not a development methodology. FOSS projects can be done in cathedral style, bazaar style, or in styles that people haven't even invented yet. There's really no insurmountable reason that a game couldn't be professionally developed in cathedral style and released as FOSS, it's just that such is not The Way Things Are Done.

        Comment


        • #5
          I relly like the way Steel Storm does things. It uses the free Dark Places engine, but adds content and charges for the finished project. A 3D engine is something that can work great under the bazarr style of development. I think most free software fans don't mind paying for content, either, as long as the source code is available.

          Comment


          • #6
            Originally posted by AltF4 View Post
            So as to put my money where my mouth is, so-to-soeak, I'm doing a little networked TRPG called Real Time Tactics for fun. After coding the game server for a week or two, I realized that I'm esentially making an open source reimplementation of battle.net. So there you go. When I'm done with that, any game will be able to plug into it have have online ranked matchmaking, and everything else you would expect.
            Yes, but you are not creating any content. Where are your actors that voice the characters of the game? The graphic designers and animators? The motion capture guys?

            I think you missed the point of the OP entirely.

            Comment


            • #7
              Thanks for the bits of feedback everyone!

              I need to think a bit more about what Ex-Cyber said. I do (as I think I said) believe that games _need_ to be released under FOSS licenses sometime after their initial release, more so than most other software, because of the art and culture that is lost when proprietary games cease being playable, and only FOSS licenses ensure immortality. I also strongly believe that we should be compensated for 2-4 years of work at 40-80 hrs/week of effort by hundreds of people, and immediate releases of games as FOSS would basically kill the industry for AAA content-quality games. (Red Hat's entire yearly revenue last year was around $50m less than the cost to develop just Gears of War 3, for comparison's sake, and Ubuntu/Canonical is still operating in the red last I checked.) I don't know that Free Software licensing can ever cover the costs incurred with Cathedral-style development methodologies; I certainly haven't seen any evidence of it ever doing so. There's really very little evidence that it can recuperate the costs incurred with Bazaar-style development, even taking into account that most of the work was volunteered time for free, as there's but a handful of successful "commercialized" FOSS products (which didn't begin life as proprietary software that already made tons of money before being released as FOSS, e.g. the idTech engines). If there is evidence of these working out, though, I'd really like to see it!

              There are a few possible reasons against FOSS licenses up front during release even for the core engines, but I need to talk to some more engineers involved with those problems. They are primarily related to multiplayer games, where cheating is a huge problem, and where the realities of how games have to work on today's network removes the solutions common to less entertainment-focused network protocols. Basically, many types of games require extremely low-latency peer-to-peer networking in lossy network environments, which means that clients must be able to trust the other clients to a large degree. ALL games get hacked, and obscurity-through-obscurity never works, but the proprietary release of games does (I believe) give at least a few months of relatively cheat-free play. Which is usually all that's required, as most games make the bulk of their profits in the first three months after release. Obviously there are many solutions to the cheating problem which work with FOSS games (good ranking systems, player feedback systems, match-making algorithms, etc.) but I simply don't have enough information on how big a part protocol obscurity plays in today's state-of-the-art anti-cheating systems as I'm not a game networking specialist by any stretch of the imagination. I'll talk to folks about it though, see what I find out.

              Also, proprietary code != DRM. There are many proprietary games released with no DRM at all. There are FOSS projects covered by DRM (see Android, TiVo, etc.). I'm strongly against draconian DRM, and generally unhappy with all DRM (again, all games should go DRM-free/FOSS at some point after release for the sake of culture), but I want to stress that my thesis that FOSS doesn't work for games does not imply that all games must or even should be covered by DRM. They are two separate issues.

              Comment


              • #8
                Originally posted by RealNC View Post
                Yes, but you are not creating any content. Where are your actors that voice the characters of the game? The graphic designers and animators? The motion capture guys?

                I think you missed the point of the OP entirely.
                If you're saying that because my little one-man hobby doesn't have millions of dollars in budget, Open Source as a whole has no chance... then I don't quite get the point. One of the benefits of Open Source is that we can do more work for less effort. Much of even the art can be gotten from other free culture works. Need a model of a 3D mountain range? All the assets from Sintel are available under a CC license. Trees, blades of grass, etc... Obviously there's still going to be new work to be done, but there's a lot of wheel-reinventing that Open Source doesn't do. So while I might not have a million dollar budget, I can do nearly the work of one all on my own.


                elanthis

                If it's the case that "AAA Multi-million dollar games" and a free and open Internet cannot peacefully coexist, then it's time for the games to go. I don't see that as negotiable. We'll miss them, but there are more important things. Exactly how the MPAA and RIAA are currently making excellent cases with SOPA for why it's time for the age of $300 Million movies to go. If the only way for $300 Million movies to be economically viable is to censor the Internet, put spyware on our computers, and put hardware locks on all of our new devices, then it's time for the movies to go.

                (The only reason there isn't a public backlash is because the subject is to technological, most people don't understand it.)

                Though I'd gladly welcome a copyright law that requires code escrow, to be released publicly some finite time after registration.

                As far as DRM for anti-cheating measures, that's just lazy programming. Make your program with the assumption that the user has full control over their machine. Because they will anyway. Take Starcraft maphacks for instance. The game takes the approach of sending every user a full vision of the entire map, and then relying on the user's software to not display the things they're not supposed to see. Instead, they should just have the game server not send the user things that they shouldn't be able to see. It would actually involve less bandwidth used, even. (I do happen to be a network security engineer by day)

                Single player "anti-cheating" is impossible. There is no difference between "cheating" and "playing and winning a modified version of the game". The concept of cheating as I see it only really applies to multiplayer games. At which point the game server can always be the trusted 3rd party, ensuring all actions are legal.

                Comment


                • #9
                  Originally posted by AltF4 View Post
                  If you're saying that because my little one-man hobby doesn't have millions of dollars in budget, Open Source as a whole has no chance...
                  How did you come to that conclusion? You can certainly create OSS without a big budget. And without any budget at all, even.

                  One of the benefits of Open Source is that we can do more work for less effort.
                  That doesn't sound correct to me. The effort required to do a certain amount of work is the same, regardless of whether the result is Free, commercial or proprietary. It's even a law of physics that a certain amount of work always requires a certain amount of energy.

                  Much of even the art can be gotten from other free culture works. Need a model of a 3D mountain range? All the assets from Sintel are available under a CC license. Trees, blades of grass, etc... Obviously there's still going to be new work to be done, but there's a lot of wheel-reinventing that Open Source doesn't do. So while I might not have a million dollar budget, I can do nearly the work of one all on my own.
                  Which works out OK for small games. Now imagine you want to create something like Mass Effect or GTA IV (which is the point of this thread; tripple-A titles.) Without a serious budget, it looks grim. Unless you are able to find actors that are willing to work without getting paid. Even projects with good budgets sometimes come short, because *good* actors are very expensive. They hire the not-so-good ones, and the result is dialog that sounds amateurish and non-convincing. In other words, a bad game.

                  Also, let's not forget that Open Source doesn't even make much sense for this. The whole purpose of Open Source is to be able to modify and copy software. And the focus is on the "modify" part. Otherwise you only have "free as in beer". You need to be able to modify it in order to fix bugs. It's what made Stallman start the whole crusade in the first place. How does that apply to the acting in a game? You want to change the acting of Mark Meer in Mass Effect? How does that even make sense?

                  An Open Source license would make sense on the code part of the game, not on the content.
                  Last edited by RealNC; 19 January 2012, 10:49 AM.

                  Comment


                  • #10
                    One of the benefits of Open Source is that we can do more work for less effort. Much of even the art can be gotten from other free culture works. Need a model of a 3D mountain range? All the assets from Sintel are available under a CC license. Trees, blades of grass, etc...
                    Those aren't all that useful, really. Go take a look at the mountains in Skyrim. Go take a look at the trees. At the people. At the weaponry. At the architecture. Nothing is stock, nothing is reusable, everything is custom tailored to effect a very particular tone and to tell a very particular story.

                    Take movies as well, like the Lord of the Rings. Even with the nature scenes, every single camera shot was meticulously planned, the area groomed as needed to get the exact look desired. You couldn't just browse Google Images, find some pretty snapshot of a hill, and then render a bunch of horseman on top of it and still expect to ever be able to get anything half as magnificent as the Riders' charge at Helm's Deep.

                    Second Life is the kind of low-quality "stock art" kind of world you can get by reusing existing assets. The kind of content that makes games so damn awesome requires heaps and heaps of highly tailored custom work.

                    Remember, this is art. Slapping a bunch of pieces of clipart in a Word document is in no way the same thing as painting an original piece. You can try to tell the same story both ways, but the results will be entirely different.

                    You especially can't try to mix and match both approaches. Either your entire experience is designed and groomed into a cohesive whole (this is what Art Directors managing those teams of dozens to hundreds of artists are for, after all) or your entire experience is crap. Your entire experience may well be "stock art" (a lot of indie games these days intentionally use "programmer art", but in a very consistent way) but you'd be surprised how damn hard that is to pull off with _actual_ stock art, rather than a bunch of custom art made to look like stock pieces.

                    If it's the case that "AAA Multi-million dollar games" and a free and open Internet cannot peacefully coexist, then it's time for the games to go.
                    First, when did I say that?

                    Second, games (even networked ones) predate the open Internet.

                    (no, I'm not making an argument against the open Internet, please note the raspberry-smiley)

                    If the only way for $300 Million movies to be economically viable is to censor the Internet, put spyware on our computers, and put hardware locks on all of our new devices, then it's time for the movies to go.
                    The MPAA says those things, but we all know it's bullshit.

                    Their business model is flawed and broken. However, piracy is also still flawed and unethical. The (very successful) SOPA protests were in no way pro-piracy or anti-copyright movements, you realize. They were simply a "SOPA goes way too overboard" movements. You'll also notice that none of the recent protests were at all about DRM. They were not about individual pieces of software or individual protocols being locked down by their sole operators. They were about companies and governments trying to attack the very foundations of the Internet. The comparison to DRM is not apt.

                    As far as DRM for anti-cheating measures, that's just lazy programming.
                    <snip>
                    Instead, they should just have the game server not send the user things that they shouldn't be able to see.
                    <snip>
                    At which point the game server can always be the trusted 3rd party, ensuring all actions are legal.
                    That's a simple area of interest filter, and yes, that's basically game networking 101 material.

                    You are making the fatal mistake of assuming the existence of a server. Many games are pure client-server models, but a great many have no server at all during play (and use them only for match making or the like). I don't just mean a lack of a dedicated server, but a complete lack of any server during play at all: pure peer-to-peer protocols (say that 10 times fast).

                    A lot of people seem to think that video chat or somesuch is the pinnacle of networking. Unfortunately, that's really a very different thing entirely. Streaming data is all about bandwidth control. Games are all about latency control. Game network programming often goes far, far beyond the actual network protocol in some pretty surprising ways. I keep getting pointed to this video by a few game networking gurus, so I'll just link it to you as well: http://www.gdcvault.com/play/1014345...rst-Networking

                    Let's head back to visibility cheats for a moment. Let's even take the network out of it and pretend we've got some perfect client-server secured model. In an FPS that relies on cover, like a realistic WWII shooter, a simple "hack" would be to just replace the texture for all foliage with a blank transparent texture and replace the ground with a solid blue texture. Now all those enemy players sneaking in the grass are plainly visible, as even with a highly intelligent server those enemy positions still need to be sent to the client because the hiding mechanic is based on human vision and not on object culling algorithms.

                    Many anti-cheating system (which are essentially draconian DRM technologies minus the "detect a legal license" part) can detect even those kinds of trivial hacks. FOSS software cannot, ever, basically by definition.

                    And again, since even those anti-cheating systems _will_ be broken, it's more about enabling them for a short period of time when a game is new, to ensure that the masses can have a non-frustrating play experience. As games age the player numbers drop, moving to a private server and manual-ban model becomes far more feasible, and the balance between automatic anti-cheating and the benefits of FOSS starts learning heavily towards FOSS. It's those early months after initial release that are so precious to recuperating profits and making enough money to fund the next game.

                    Now, are those anti-cheating systems mandatory for games to be successful, or are they just a nice extra bit of shine? Again, I don't know, and I need to collect more data from people in the know on such things. The so-called "blizzard" here in the Seattle area this week (the big snowphobic wussies) pretty much shut everything down so I haven't yet had a chance to go talk to anyone about it yet.

                    (I do happen to be a network security engineer by day)
                    I too for some years was a network/server guy (government contractor working on systems that had to pass various security certification criteria). So trust me, it's just so different in almost every conceivable way from game network programming. The stuff that you or I rely on as "the obvious solution" is unfortunately an "unworkable solution" when you need to maintain trigger-finger shooter game latencies that work even on "rural American broadband" (which can be a far cry short of what any reasonable person would actually consider broadband these days). You're both minimizing bandwidth to seemingly ridiculous levels (even simple bit packing is quickly becoming kind of a lost art in the general network arena, as everybody outside of games has basically moved to XML/JSON or other text interchange formats) and the latency-avoidance techniques stretch all the way from the _game design_ itself right down to the heavily customized UDP-based protocol.

                    This of course is a per-game kind of thing. Starcraft II may well be using a simple TCP byte stream. A lot of MMOs do that too, and of course those are client-server models. Many games' basic design has little need for extreme low-latency gaming. Unfortunately, many other games basic premise does require such extreme low-latency networking.

                    Single player "anti-cheating" is impossible.
                    Yup. Not aware of anyone that really tries to stop it, either. There's some arguments to be made that single-player cheating devalues Achievements and Score Leaderboards, of course. Those arguments are not made with much conviction, though.

                    Comment

                    Working...
                    X