Thursday, April 16, 2009

FOSS Gaming Needs Distributed Content Development

Looks like FOSS gaming needs more than just promotion and financial support. After my last post about it, i recieved a very insightful email from Tim Blokdijk since my comment form was broken, and i thought it would be worth sharing with all of you. Seems the biggest barrier to FOSS gaming development isn't code, but content.

I can't comment on your blog but I still feel a need to respond to your “Linux needs games, games need you” posting.
Up to about a year ago I was quite involved with the spring project, springrts.com one of the more successful open source “games” out there.
To me the nr 1. challenge/problem is that “we” the open source people more or less cracked the problem of distributed code development. It's all text based and a lot of focus and effort has been put into that “way” of working. But it's different for content, as you cannot “diff” a picture or a blender file. Distributed content development is a pain in the ass. Spring has loads of content but it's very difficult to get a distributed team to work on integrating all this into one style that can compete with commercial games.
There is progress, the creative commons licenses makes it easier to do things as the GPL and other traditional licenses are to much focused on code. Broadband internet makes it easier to send around large binary source files. The 3D drivers for Linux are improving.. Gimp actually starts to get useful so artists are more open to the idea to look beyond Photoshop for a second. Wings3D is stable enough and useful enough to get people modelling. And Ton is finally committing himself to a gui rewrite for Blender. All these things used to be big blockers but it's still not practical to start a distributed content development project.
The only real successful open source content projects are “Elephants Dream”, “Big Bug Bunny” and “Yo Franky!”. But that involved getting 10+ people together for 6 months to work on a project. And even then they had problems managing the content files. They were using svn but had to use a small webapp to keep track who was editing what files.
A service like launchpad would need “a lot” of work to make it practical to develop content in the same way as it's possible to develop code. Your constantly running into/pushing the envelope. Dpkg repository's are not designed to cope with "source" files of many gigabytes. Executable files that need to be binary identical (or very close to) to allow people to play multiplayer games (across win/lin/mac platforms). And there are more issues like preventing cheating.. and stuff.
I personally think that you really need a company as canonical purely dedicated to game and content development to get to a level where you can speak of “reaching a tipping point”. The Blender institute is a contender but they lack a large amount of hard cash to accelerate the field.
So there you have it. Can the Blender Institute take on the challenge? Will Canonical step up to the plate?

15 comments:

  1. Wow, posting comments here finally works! ^.^

    Canonical won't step up to the plate; they're in an entirely different business. And the Blender Institute is taking on the challenge, but as you said, they don't have the resources to do it all by themselves.

    Mr. Blokdijk explained the technical problems in ways that I hadn't considered, and I think that his concerns will have to be addressed to help make Open-Source game development viable. Personally, though, as a writer and "content creator," I think that one of the biggest problems is that creative types don't always "get" Open-Source. And when they do, their talent is often secondary to their commitment to openness.

    How many artists on DeviantArt get furious at people who "steal" their artwork, for use as roleplaying characters and the like? How many writers are desperate to protect "their" ideas (themselves inspired by everything the writers have read), and dreaming of making it big with the publishers? By selling copies of their ideas, instead of being paid to work on the ideas themselves?

    Artists and creative types are still locked into the proprietary way of doing things, and it keeps them from finding Open-Source projects and makes them subject to the whims of the media companies. There's only scattered adoption of Creative Commons licenses, and there are few real attempts at making a common "codebase" that everyone can use and benefit from. Flickr and Jamendo come close, but visual artwork aside from photographs has no central, searchable database, and neither does creative writing (that I know of).

    If there were real, Free / Open-Source creative projects -- whole "worlds" of artwork and creative writing -- then gaming would probably come naturally, as programmer / 3d modeller fans build on the foundation. And this is the point at which Mr. Blokdijk's technical suggestions would really help. Until then, though, we need to find some way to convince creative types of the merits of openness, and to help them to build on each others' work instead of reinventing the wheel.

    ReplyDelete
  2. Linux gaming needs good artists, not more coders.

    ReplyDelete
  3. Anonymous6:37 PM

    In my experience, although it is true that the contribution/cooperation infrastructure being used by most open-source games is rather lacking, the main thing holding games back is the sheer lack of interested and talented artists. There's several reasons why this is the case.

    1. The open-source gaming community is small and fractured, resulting in a small talent pool to draw developers and players from.

    2. Anyone who has the skills to match commercial-quality game assets is either already working in the industry, or is trying to get into the industry, in which case they are better off working on mods of commercial games to show off their skills. While producing commercial quality game art may have been attainable for the casual hobbyist 10-15 years ago, that is no longer the case. Getting to that level takes years of dedicated work.

    3. Mods of commercial games are much more attractive to artists because they usually have large bodies of content that can be built upon. Not so with open-source games, which usually have to start more or less from scratch. Also, commercial game mods are more likely to attract players because they have a large playerbase to draw from. This is part of the reason why quake-based fps 'clones'(nexuiz, tremulous, warsow, urban terror, etc) are among the most succesful open-source game projects out there. Most of them started out as commercial mods, too, which is where a significant portion of their player and developer base comes from.

    4. Many artists are uncomfortable with permissive licenses, or are put off by the open-source community's obsession about licensing. Many projects get bogged down because discussion of any content submission primarily focuses on licensing, often resulting in frustrating discussions which alienate potential contributors. This seems to be exacerbated when people try to use the GPL as a content license, resulting in ridiculous discussions about what constitutes the 'source code' of an image file, or leads to absurd conclusions like requiring any music to be in tracker format so that it is 'human-readable'.

    5. Linux, whose users comprise most of the open-source gaming community, is primarily geared towards very computer-literate people, most of whom are coders, not artists. Similarly, Linux lacks top-quality graphical tools like Photoshop or 3dsmax. GIMP and Blender may be good, but compared to their proprietary alternatives they are still quite lacking.

    Combine that with the lack of a proper contribution infrastructure for game content and the typical amount of mismanagement or lack of leadership that hobbyist projects usually involve, and you don't exactly have a formula for success.

    I don't want to sound overly negative, but unless open-source games get blessed with some kind of artistic messiah(more like a whole team of them), there will probably never be an open-source game that can seriously compete with commercial titles. If it ever happens, it will be most likely as a niche title with modest art requirements (eg. World of Goo).

    ReplyDelete
  4. Anonymous6:57 PM

    Begin looooong rant....

    As one of the aforementioned "creative types" I am completely committed to openness (I work in Blender, Inkscape and Gimp mainly with a little Krita, Ardor and Kdenlive on the side). Here's the problem I've run into many times before though. The creative side is treated as a second class citizen to code. The project is usually begun by a coder, who naturally then has the power to grant / deny svn access. They have particular goals in mind, which are almost always only code based goals (nothing wrong with that). They knock up some rough graphics that even as they ask for art help they become attached to. The problem is when art help does come along one of a couple of things happens:

    1. The artist works on scratching their itch, which is usually improving something that looks appalling as it is. Trouble is they're submitting something subjective (the artwork) to someone who's attached to it (they created it) and doesn't have the skills to critically judge it well. This usually means rejection of work that in any public poll would be judged far superior.

    2. The artist is expected to *only* contribute the precise parts that the coder wants fixed. You wouldn't ask a java programmer to contribute php scripts only. This happens all the time with art. "The website says we want new enemy character sketches, not a new logo!".

    3. Because of the subjective nature of creative work, it needs frequent feedback from the earliest draft stages to ensure time isn't wasted polishing a completely wrong concept. It is stunning how often I've submitted rough drafts, early proposals, more polished proposals, refined versions, polished versions and then complete versions, all begging for feedback only to hear nothing until the final version is submitted - after dozens of hours of work - only to be told by a maintainer with no skill in this area, but holding the SVN commit rights "no, that's not the style I wanted." Huh? Well why didn't you *say* so in the *early* drafts? My theory is that because it's not code that it's honestly of less interest, so it's ignored.

    4. As mentioned before, the structure of contribution is often skewed against creative arts. Most dev's seem to hang out/communicate mainly on mailing lists and through SVN commits. Sending 2mb+ images to email lists is generally considered bad form and artists rarely get SVN commit rights. When they do get rights they quickly discover SVN to be difficult and confusing and completely different to any visual application. Forums are much better venues for posting visual work... but often dev's avoid the forums of their own project (I'm guessing because they're often full of demanding users!).

    5. Project maintainers usually want something very specific created (eg I need a better green, fuzzy texture for this wall than the one that's here already). Visual creatives are juiced by coming up with creative, new looks, images ideas. This runs into the "that's not quite what I was thinking..." problem. In code you can show a new way is measurably faster, done with less lines of code. It's very hard to "prove" the superiority of one design over another when trying to persuade an SVN commit-rights holding maintainer who has become attached to a particular idea for a long time.

    6.Being started by coders, most projects have style guides for the code, but nothing to keep visual consistency. This problem compounds with differing first languages, and that the language of coding and art itself is very different. Being told that something "just doesn't quite look right" isn't very helpful. Being told that an image doesn't conform the pre-defined line-style, colour pallate or reference images is specific and useful. Given that in coding one usually strives to be a "better" coder, but in art one strives to have a *unique* style, consistency guides are vital to avoid wasting time and discouragement later on when artwork is turned down at the last moment because it didn't meet vague and undocumented wishes of a coder without a visual clue (even if they are amazing at their programming language).
    There are a bunch of other common frustrations I could mention having helped out in a few places before. These are a good starting point though.

    For any coder / project maintainers out there looking to it better my advice would be simple:

    1.Find the best artist you can and get them to set up the visual look of the project, even if they don't help beyond that. That way you won't get trapped into becoming attached to a look that is actually poor, and turn down better offers.

    2.Have a visual style guide with reference images, palletes etc.

    3.Have a medium for contribution and discussion friendly to images (eg forum) and go there often.

    4.Make sure you give constructive feedback at *every* stage when an artist posts it. Practice understanding that a rough draft is not supposed to look finished and wonderful yet. No it doesn't look very good yet. It's the same as pre-alpha code.

    5.Make sure you get all key decision makers giving feedback on the parts that are new and different in the newest draft. Think long and hard about making radical change suggestions to parts that were OK'd or ignored three drafts ago. I worked on a design for a large project and had the person who asked for it totally love it. Encouraged I spent a huge amount of time working on it until they thought it was perfect. Then we found that the other key team members *really* disliked it as they had something else in mind. Trouble was they never looked at the early drafts to give feedback when it could have changed.

    6.If possible, have an *artist* making the *artistic* decisions for your project. Yes, you can look at a picture and say if you like it or not in a way that an artist would never do with your code, but the best programmers often seem to make the worst artistic decisions... and make everyone else stick to them! You liking / disliking an image doesn't mean it's right / wrong for the project as a whole. I've created many great images that were totally wrong for what I made them for..

    7. Be brepared to go visually in unexpected directions, even if they don't meet with your original vision. Remember, this is about creativity and originality. Projects that give these opportunities get the best artists as this is what we love exploring. This means letting go in areas that aren't your skill. Usually we will be prepared to do the same with your code!

    *sigh* End rant. :)

    ReplyDelete
  5. Anonymous8:58 PM

    Anyone interested in free software and games should join the FreeDesktop games group:

    http://www.freedesktop.org/wiki/Games
    http://www.freedesktop.org/wiki/Games/Resources
    http://lists.freedesktop.org/mailman/listinfo/games
    irc://irc.freenode.net/freedesktop-games

    Those Debian/Ubuntu folks should join the Debian Games team:

    http://wiki.debian.org/Games
    http://lists.debian.org/debian-devel-games/
    irc://irc.debian.org/debian-games

    ReplyDelete
  6. oliver7:43 AM

    Re Anonymous looooong rant: thanks for stating this!

    I have started to work on (coding) some simple games several times with a friend, but we have usually found that there was no way we'd get good content, and hence put the projects away after a while.
    So, to address the concerns you mentioned, maybe it would work better if you as artist started a game and asked a coder friend to help with programming? Usually there are really many coders willing to work on new open source games, but only few artists are known. If you assembled the game dev team around an artist at the core, you could better control the focus of the game, and also you'd have solved the biggest hurdle for open source games right from the start.

    Btw. I found it really helps if you work on a game with a friend from your neighborhood. Two people can get more stuff done, and can inspire each other, and I find it much easier to discuss something in person rather than over IRC or email.

    ReplyDelete
  7. Anonymous6:15 AM

    Ive been working on a Spring RTS game (rather than the engine itself) for some years now.

    Getting content is absolute murder. The content we can get our hands on is of varying quality and style. We have a fully playable, 'finished' game (though, as with most open source projects, its under perpetual development) but barely any art content for it.

    Anonymous makes a few good points on how to organize content for a project properly. Art is more subjective and many of the things he says are quite true. Different approaches are needed than for code.

    Yet for us the issue has not so much been organization of artists as simply not having enough artists in the first place, a manpower problem. Its a matter of promotion and PR. Commercial games are capable of advertising, getting huge playerbases and a lot of attention. Naturally an artist, if they wish to try their hand at modelling for a game, is going to work with that and make a mod rather than an open source game they probably wont even have heard of.

    Ironically, even Spring itself and my own project started out porting over content from a commercial game (Total Annihilation) into a totally new engine, partly because of a love for that game but also, i am sure, because it would be impossible to find content for the engine otherwise. Yet in many ways being tied to this content (though there are many open-content games for the engine) makes us a total pariah in the open source gaming community.

    Still, when we have pictures that look like this, it is slightly encouraging...
    http://licho.eu/alba/ca/CA_pretty_map.sized.jpg

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. In response to "looooong rant", which was an astute observation.

    Commercial game studios usually place high importance upon the role of "creative director", whose job is to not only define the vision for the look and feel of each game, but to also evaluate it competitively against other games.

    The lack of such a role in most open source games leads to the developers needing to assume those responsibilities, for which they are usually an ill fit. As a consequence, the artistic aspects of the games suffer.

    For an example of a volunteer-based game that did this right, check out Ultima V: Lazarus. Granted, it was based upon existing IP, but the presence of a project director and creative director led the game to succeed whereas almost all other similar remakes died a quick and silent death.

    ReplyDelete
  10. www.getdropbox.com for effective collaboration/backup etc
    No need for patches and stuff like that. Changes done on the fly by transferring the difference where the case (delta), you can access it from your pc or from web interface... it has a (video) tutorial as well.

    You can register through my referral link so we both get bonus space

    https://www.getdropbox.com/referrals/NTEyMjU2MTk

    ReplyDelete
  11. You may be interested in a recent blog post I wrote on open-source gaming. The title is tongue-in-cheek, and I'm pretty harsh towards the whole of open-source gaming, but our discussion really focused on that content versus programming dilemma. There's plenty of great open-source game engines out there, but a striking dearth of great content. Plot, characters, beautifully designed graphics, these all seem to be lacking in open-source game projects. And that's a shame.

    ReplyDelete
  12. No mention of
    FreeGameDev"
    or FreeGameryet? (Free as in speech, of course)

    Anyway, yes, lots of pertinent views here.. I can't say I'm a big dropbox fan, I'd rather see something like Verse get upgraded to the point where it can be an asset storage facility than rely on a closed service..

    ReplyDelete
  13. Anonymous1:48 PM

    And what benefit is prepared for artists?

    ReplyDelete
  14. Anonymous4:45 PM

    It looks like the community could make use of a set of plug ins like these for the open source graphics tool chain (Blender, GIMP, Inkscape, etc.): http://www.perforce.com/perforce/products/plugins-p4gt.html

    Maybe there is already something in use or something that could be modified for this purpose out there? I know that the Blender folks have tools for working with SVN which they are using on the Durian project and seams to work pretty well. Maybe just expand upon that and add Git,Bazaar, etc. support for it as well as plug ins for other such tools.

    I also like the idea of having a project director and a creative director. As long as the project director is willing to differ to the creative director on art issues.

    ReplyDelete
  15. I wish someone help me to add dozens of games that have Ubuntu Games for Ubuntu repository. Can anyone help here?

    ReplyDelete