Forgot your password?
typodupeerror

Open Source Game Development 147

Posted by samzenpus
from the free-games dept.
Boudewijn Rempt writes "Amazon's recommendation system recommended me "Open Source Game Development: Qt Games for KDE, PDA's and Windows" when I was looking for an introduction to OpenGL. While it does contain two chapters on OpenGL, there's much, much more. It's not just an introduction to writing open source games, it's a complete introduction to participating in open source projects like KDE." Read the rest of Boudewijn's review.
Open Source Game Development: Qt Games for KDE, PDAs and Windows
author Martin Heni, Andreas Beckermann
pages 554
publisher Charles River Media
rating 8
reviewer Boudewijn Rempt
ISBN 1-58450-406-4
summary Complete guide on writing small to medium games for Linux, Windows and PDA's using Qt.


As maintainer of Krita, the KOffice paint application, I need to know about graphics. Unfortunately, the four months of retraining from sinologist to Oracle Forms developer that launched me into a life of coding didn't include anything on graphics, and certainly not on OpenGL. Which is very much where Krita 2.0 is going.

So... I was looking for an easy introduction to OpenGL to kind of ease my way into the Red and Orange books. And Amazon's weird recommendations system recommended Open Source Game Development: Qt Games for KDE, PDAs, and Windows by Martin Heni and Andreas Beckermann to me. Intrigued, I ordered the volume forthwith. Turns out that that was a good move: this is an excellent book.

In the first place, the text is very clear and concise, but never dry. Forget about the ho-ho-I'm-funny chatty style that's prevalent in many technical books. This book comes to the point immediately. Then, the information is carefully ordered and the presentation very neat and clear. Those would be good points for any book.

But what makes Open Source Game Development: Qt Games for KDE, PDAs, and Windows even more interesting is that it's much more than its title indicates. It is squarely intended at the hobby coder who wants to work on what the book calls "desktop games" -- not the multi-million dollar multimedia productions that demand a new graphics card every half year, but the games that you play while thinking out a knotty problem or that have some educational value for your kids. The kind of project a single coder, or a small team can complete and maintain while still staying sane. And, of course, that kind of game, defender or zaxxon-type games, maze games or tetris-style games work are perfectly suited for pda's and mobile phones, too,

Actually, this book is the perfect introduction to joining a big Open Source project I've seen. Of course, the focus is on Qt and KDE, which means that if you always had this itch to join KDE development but didn't have the necessary skills, this book will help you get there in a very pleasant way.

One way this is done, is by always first giving a general introduction to a topic, and then more detailed discussion in the next chapter. So, first we've got a very good "Qt Primer", and three chapters "KDE Game Development", "Qt Game Development Using Microsoft Windows" and "Game Development and PDA's". And there's a chapter on "OpenGL" in general, and then a chapter on "OpenGL with Qt".

The first part of the book deals with this type of introductory material. The second part discusses "Artificial Intelligence", "Pathfinding" (this chapter was a revelation to me -- I never understood how that worked. If only I had this information while trying to write games for my ZX Spectrum!), "Particle Effects" and "Math and Physics in Desktop Games". The material in these chapters is foreshadowed by the very first chapter "Introduction to Desktop Gaming", which deals with game balancing, architecture and the ins and outs of developing free software. Armed with these chapters, you can add enough game play to your games to make them satisfying to play.

The next three chapters discussion the Qt network classes and how to use them in your games, the KGame library (free software, of course), that contains a lot of boring groundwork that's the same for most games -- players, input devices, network stuff. For me personally, the "XML" chapter wasn't that useful, but then, I'm a corporate cubby-hole programmer by day, and XML is my bread and butter. It's amazing how many billable hours XML can add to a business application project.

A very important chapter, "Open Source and Intellectual Property Rights" makes it very clear what's allowed and what not. The summary chapter, "A Practical Summary" is a novel idea -- at least, I hadn't come across something like this before -- and it works quite well, tying all strands together. There are plenty of references to earlier chapters, so if works like a kind of hands-on index. Not that the actual index isn't top-notch, too.

I should make clear that this book is not just about coding for KDE. That's what most interesting to me, but if you want to code a game for Windows, for a Qtopia or Qt/Embedded environment, then this is the right book. After all, with the release of Qt4 under GPL for Windows (Qt was already released under GPL for X11 and OS X, as was Qtopia), Qt is a good choice for Windows hobby programmers. You get a high quality toolkit that really helps with the boring ground work, and excellent documentation. Coupled with the clear text in this book, there's nothing to hold you back.

Andreas Beckermann is the author of Boson, an OpenGL real-time strategy game based on Qt and KDE. His experience in working on Boson really is apparent in this book. Martin Heni has written a couple of games that that are in KDE's games pack, and has won a prize for his QTopia game Zauralign.

Oh, and the chapters on OpenGL and OpenGL with Qt were enough to make me understand the OpenGL Krita already has and did prepare me quite adequately for the big Red and Orange books. And I've got the itch to write a little game now..."


You can purchase Open Source Game Development: Qt Games for KDE, PDAs and Windows from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

Open Source Game Development

Comments Filter:
  • You sold me :-) (Score:3, Interesting)

    by Coeurderoy (717228) on Monday May 29, 2006 @04:39PM (#15425752)
    I was looking for a book easyng me into Qtopia, and it seems to fit the bill.
    Thanks for an useful review.
    • The Book is published by No Starch Press, and is available [nostarch.com] from them for USD ~39 or one can be purchased at the bargain bin for USD ~5 or from eBay for USD 0.99. Covers all topics from modern Video and Sound and Network libraries in application development, and applied to entertainment purposes (which we all know is just a bend from business programming).

      The author died recently (9th Month of 2005), and his page is still heldhttp://overcode.yak.net/ [yak.net]. To summarize his death, a new and unusual Mole formed o
  • by Grey Ninja (739021) on Monday May 29, 2006 @04:52PM (#15425786) Homepage Journal
    How exactly do you make money on open source games? They are a different beast entirely from regular apps. If someone is paying for support for a game, then there's something very wrong going on. I mean, I'm all for open source software, but I've never been able to figure out how to code them, and still put food on the table. As a result, most of my games have been proprietary.
    • by CrazyJim1 (809850) on Monday May 29, 2006 @04:55PM (#15425795) Journal
      You can make your game opensoure X years later where X years is when you stop making a profit. The reason some of the big dogs don't do this is that they want to resell the game X years in the future in a classics pack. Or rerelease atari 2600 for example. Making a game open source brings more fame to it as more people enjoy mods on your game and your good heart for allowing it to happen, which brings fame to your company. Company fame results in more units sold in the future when you make new games.
      • not overly true, Quake 4 special edition came with Quake 2. Quake 2 has been open source for some while now.

        Making the game opensource does not supply people with the game content, only the engine code :)
        • Thats a matter for the companies to decide. iD software for example, decided to release the Doom source code, but explicitly not the Doom graphics and data files, they could have done, if they wanted to, but since Doom is still being ported to and sold on every small and embedded platform under the sun, it wasn't in their interests to do so.
      • by xtracto (837672) on Monday May 29, 2006 @05:13PM (#15425847) Journal
        It is quite simple really, and it is the way even some closed games have made money: SAS.

        Yeah, the buzzword makes sense for games too, a company could make a game and give away the code while maintaining a good online game community/forums etc. Setup some servers and go!

        What I would do is making open source the client, keeping the server, then, let the community improve the client and I would improve the network infraestructure, of course with the client code it would be deadly easy to replicate the server, but there is where the company would have to provide some *special* value on its servers (something like Xbox Live community).

      • The reason some of the big dogs don't do this is that they want to resell the game X years in the future in a classics pack.

        The other reason is that a few years in retirement can be good for a title, a character or a genre. Lara Croft and Tomb Raider is the perfect example. Fallout may be another.

      • Making a game open source brings more fame to it as more people enjoy mods on your game and your good heart for allowing it to happen, which brings fame to your company.

        Name at least one example of something like that ever happening...
        • Making a game open source brings more fame to it as more people enjoy mods on your game and your good heart for allowing it to happen, which brings fame to your company.

          Name at least one example of something like that ever happening...

          That's the wrong way to counter that argument - the release of the source code for Wolf3D shows that the company is willing to show how they did the work. It is also a pattern followed through for the classic Doom series and the Quake series. In a way, it's permanently ke

      • Actually, you don't have to wait. Arguably, most of what builds up a game nowadays isn't code, but artworks, storyline, 3d models and such.

        You can thus release the "engine" under the GPL, for example, and your commercial opponents will anyway have to produce their own artworks/material for their own game, even if they use your code. This can take a year or more for a well-done job; in the mean time the engine "as it is" would probably be obsolete for a _new_ game to hit the shelves, so it isn't a big lose o
        • The problem is that you'd still be investing millions of dollars/man-hours to create this engine, and giving it away for free to your competitors. Sure, everyone can then create their own art/story/content, but why give should my competitors get to use an engine that I spent much dollars/man-hours creating, free of charge?

          I really think Epic has a better understanding of this industry than random slashdotters or RMS. Epic spend years creating their Unreal 3.0 engine, and guess what, the *license* it to ot
    • You open Source the Engine, but close the content. Like the Doom/Quake model. Open Source Engine, Closed content packs (WADs, PAKs.)
    • In conjunction with the closed content/open code trick already mentioned, online games should be very easy to open source. You can easily charge for access to the server for the player's account, instead of for the initial disc purchase.

      This flies in the face of the Guild Wars model, but for the WoW model, where you pay for both the disc and the account, it can be amended so that for example, you are forced to buy a certain minimum of months of play.

      In my uninformed opinion there really is no reason for pai

      • by xtracto (837672) on Monday May 29, 2006 @05:25PM (#15425884) Journal
        In my uninformed opinion there really is no reason for paid-account MMORPGs to be closed source. They might say that it's to prevent cheating, but I say that open sourcing would kill cheating dead.
        --


        The problem here is what happened to blizzard and bnetd, but, with an Open Source client it would be trivial to create servers and you wont be doing andy "reverse engineering" thus not breaking the law.

        What is needed in these cases is the company to create a "community" with some value in order to persuade people to join. (Certified servers, fast servers, some kind of updates, etc)
        • It seems like a different situation to me. BNET does not host games. BNET simply provides chat and an interface through which players can find and advertise games. On the other hand, making a MMOG server would be a rather large task. In theory, a MMOG server is the part actually running the game and the client is just a thin-client rendering what the server tells it to. Sure an open source WoW client would aid the development of a similar online game, but it is only a small piece of the whole game.
        • you wont be doing andy "reverse engineering" thus not breaking the law.

          Just a clarification: Reverse engineering is not illegal. If you've agreed to some contract that prevents you from performing reverse engineering, that's contract violation, and if the reverse engineering you do is to work around copy protection designed to prevent copying of copyrighted works, then distributing a tool that bypasses the copy protection system is illegal. Finally, if you reverse engineer something so precisely that

          • Finally, if you reverse engineer something so precisely that your reversed implementation appears to be a duplicate of the original, then you may be accused of copying, which could land you in court. The notion of "clean room" reverse engineering was invented to ensure that the copyright owner had no prayer of claiming that the code was copied -- not because clean room reverse engineering is actually necessary, but because it's safer than the alternative.

            That's fine and dandy for computer programs. But

    • > How exactly do you make money on open source games? They are a different beast
      > entirely from regular apps. If someone is paying for support for a game, then
      > there's something very wrong going on. I mean, I'm all for open source software,
      > but I've never been able to figure out how to code them, and still put food on
      > the table. As a result, most of my games have been proprietary.

      You don't do it for money. You do it for a laugh, or to learn something. It's a hobby, right? I'm learning Ja
    • From the review, I get the idea that the focus of the book is actually contributing to Open Source, scratching an itch as hobby.

      The money comes later when you apply for a job in the industry, and can point out some first-hand examples of what you can already do. Plus you'll have some experience already.

      With my own application for a job, I've actually used my own Open Source project and website as examples for the conversation, with great success. :-) Your milage may vary off course, and I must admit I've

    • Engine is open and free.
      Artwork is open and free.
      Anti-cheat is closed and pay for/reliant on central server.
    • In fairness to the book and the reviewer the word "hobbyist" is mentioned several times.

      It's not a book about how to make a commercially viable game, it's a book for the hobbyist programmer wishing to have some fun.

      L.
    • The same way any website-with-traffic does in the Google age - Google ads [google.com].
    • How exactly do you make money on open source games?

      This is not always the reason for participating on open source development. However, assuming it is, note that if you want to enter the game industry as something better than a peon there is no better way than by already having the experience on your resume by joining an open source game project and having the results to show for it. That means results in the form of running code or even better, running code in distribution.
    • It's quite simple: you open-source the game, then simply tell everyone who plays it (perhaps on the title screen or whatever) that if they want more games like this from you, send a donation; otherwise you'll have to use up your time doing something that does pay you so you can eat, have a house, etc. which might mean that society will not see more games from you.

      If society values your efforts and talents enough, they will compensate you; if they don't, then you will need to choose if you will continue to

      • Economics really isn't that difficult when you realize that there is really no obligation for society to compensate you for your creative efforts unless you were contracted to exert that effort.

        Hmmm... the problem with open source is that society doesn't have any "contract" with you to compensate you. With closed source, you produce a product, and if society finds it valuable, it compensates you. Simple economics.

    • You could make the game engine itself open source and then sale levels for it.
    • One option is subscription fees to network services.

      Sure, if it's open-source, someone could probably reverse engineer it and build their own server - but still, someone is going to have to pay for the hardware/software to run a big enough game world.

      If the choice was between playing a free version on a game world with 20 players, vs a properly maintained cluster that could support thousands, i'm sure a lot of people would be willing to pay for the larger game world...

      Just because the game client is o

    • I'd guess it would depend on the type of game. However, one model I always wondered about was opening the software while selling the content. For a role-playing or FPS, the content would be storyline, graphics, models, music, sound effects, etc. For a puzzle game, content might be levels or some such.
    • This is a sad sad thread. The article clearly stated the book was aimed at the, "hobbyist coder". Despite almost religious believes to the contrary, not all human endeavors must be for profit.

      A whole generation of programmers grew up with magazines such as, "Creative Computing", and books such as, "Basic computer Games". Why an entire kernel was created, to quote the author, "just for fun".
    • 1.) Don't start out open source. Id has only two games out lately -- Doom 3 and Quake 4 -- to which they haven't released the source, but they always wait till they really have no further use for the game.

      2.) Open source it from the start, but sell the content under a different license. Id has also (technically) done this with all of their open source games -- I'm still legally required to buy the Quake 3 game if I want the Quake 3 maps and models, though technically I could redo all that and still use
  • I like CrystalSpace (Score:4, Informative)

    by CrazyJim1 (809850) on Monday May 29, 2006 @04:52PM (#15425787) Journal
    CrystalSpace requires good C++ and 3d skills, but its a very nice open source 3d coding system.
    • by xtracto (837672)
      I am currently making a 3D game in SDL and OpenGL. I was making the game from the ground up, when I thought of using a 3D/Game Engine.

      I tried some of the free engines including CrystalSpace, unfortunately (at least, last time I checked) there ARE NOT precompiled libraries or binaries of that library. I tried compiling it but I really got pissed off after two hours of trying so I threw it up.

      The problem with the Open Source engines (at least in my experience) is that they are not readily available, as a game
      • by Malawar (674186)
        Ogre3D [ogre3d.org] is a very nice LGPL 3D Graphics library. It does have precompiled libraries for Windows available for download, but compiling from SVN is a snap as well. While it doesn't have the other parts of a game engine (sound, networking, physics, etc), there's always other libraries that work well with it, such as: The Open Dynamics Engine [ode.org] for physics, OpenAL for sound and SDL for crossplatform network and input. Ogre's visual quality can easily compete with a lot of top game engines today, as well.
      • There are several precompiled libraries (depending on compiler) for Ogre [ogre3d.org], at least for windows (since it is MUCH harder to build Ogre proper on windows than it is on linux). To be honest, I also did the source compile on windows, but mainly because I'm crazy.
      • So rather then spending more then two hours getting the game engine to work you will spend a year or so making an engine?
      • there ARE NOT precompiled libraries or binaries of that library

        Maybe you need a more Universal OS [debian.org].

    • CrystalSpace requires good C++ and 3d skills, but its a very nice open source 3d coding system.

      Wasn't the review about small desktop-games, instead of going for the big projects with bigger risks they won't get anywhere?

      It is squarely intended at the hobby coder who wants to work on what the book calls "desktop games" -- not the multi-million dollar multimedia productions that demand a new graphics card every half year, but the games that you play while thinking out a knotty problem or that have some e

  • A large amount of Linux Game programmers make incompotent descions.

    Take Boson for example.

    There is no reason why Boson should be tied to KDE the way it is.

    Some game programs don't utilize automake or autoconf at all.

    Another problem is that some Linux game Programmers program are Windows programs who put in a minimum effort nessessary to build a Linux version.

    The fact is that we need people to work on better Linux games and Engine Source ports.
    • I think the problem is that an open source project has to be self starting to the point where it'll gain a critical mass of developers.

      For an original game, that means you'll need a good idea (pretty rare in itself), a rudimentary (or better) engine -- that you'll have to code yourself, plus sufficiently well designed graphics and sound to get people interested.

      That basically requires four separate skill sets, whereas writing a web server etc, needs at most two of those, and probably only one. And if yo

      • open-source is completely viable for the game industry - in fact if the industry is to survive in the future beyond one or two massive 'mega-publishers' (like EA owning criterion & renderware etc), the rest of the industry is going to HAVE to shift to open-source to defend themselves against these massive companies.

        much like how linux gained it's foot hold in the webserver & OS market. the game industry is just a bit further behind the curve.

        how much longer will 'indies' (ie small non-publisher-

        • But I think the point of this is that it's not the tools that are the problem: there are great open-source engines out there that will improve slowly over time as with any lively project... it's the creation of a game itself (on a case-by-case basis) that isn't viable in a traditional open source environment. Rather than slowly chipping away at a project over a few months or years, you need to slog away intensely - and very likely in secret - so that your end result is worth playing.

          I don't know that it's

          • by xtracto (837672) on Monday May 29, 2006 @05:31PM (#15425904) Journal
            I will tell you the main problem in a word: CONTENT.

            For some strange reason, software developers enjoy giving away their work/time without expect anything in return, but please tell any decent designer, sound fx creator or graphics drawer to give away their time just "for fun" and you wont get really a lot.

            In that way, open source will NEVER compete against the big studios. The only "hope" is to make people look at less "graphic intensive" but more "fun" and innovative games. With a bit of luck, Nintendo will aim that way, but I do not have much hope
            • by LocoMan (744414) on Monday May 29, 2006 @06:08PM (#15426000) Homepage
              I think it has some to do with the subjectivity in the artists side. Or at least that's how it seems to me (3D animator with basically no coding skills other than the ocassional script in maya).

              Coding is a very creative process, however, most of the times the results can be masured objectively. If you're making a 3D engine, you can measure how many polygons per second it moves. If someone makes a change, you can measure if it's faster and/or slower, and exactly by how much.

              The same doesn't happen that often in the art side. Let's just say I create the animation of a character swinging a sword. Then someone else comes and changes the animation and makes it completely different. Suposedly both are within the parameters of the game (how long it is, the starting and ending poses), how do you define which is better?. Maybe for the other guy his animation is a lot better than mine, but for me maybe mine was better and his hurts my work (to put it in a way). Most of the times there's just not a real measurement of quality when it comes to the art side.

              This is one reason (IMHO) that the artists tend to be less of a group workers than coders. Usually in 3D animated series and movies, for example, you can have hundreds of animators working at the same time, but in most of the cases each scene is animated by a single animator, and if there are several, they don't overlap (one animator does one single character on the scene, or in the case where two animators work on the same character one will do the main animation and the other the secondary movement).

              In the coding side it just seems to be "ok, here's what I did, let's fix it, or try to fix it"... in the art side it seems to be more of a "ok, here's what I did, tell me what's wrong but DON'T fix it, I'll fix it myself".

              Or at least that's how it look from this side of the monitor.
              • ### how do you define which is better?

                You look at them and if they both are good enough, you use them both in the game, more varity is a good thing after all. There are of course issues when an animation/model/texture doesn't fit the style of the game, but for such one simply needs a style-guide and or a lead artists doing most of the art for a project. This is really not so much different then with coding, especially with game coding, since there isn't any easy way to tell which thing is better either, esp
            • by miyako (632510) <miyako.gmail@com> on Monday May 29, 2006 @06:56PM (#15426114) Homepage Journal
              I have done both programming and 3D modeling/animation professionally. I still do 3D work and graphics design on the side, as well as contributing code to F/OSS applications. While I'm a decent programmer, I don't really have experience writing 3D engines or related code that would be useful to many open source games. Many times, if I come across a game that seems interesting and I would like to contribute, I offer to contribute artwork.
              What I have found, and it is really a strange thing to me, but many projects simply do not want to accept contributions from artists. There have been a few projects that I've stepped into the mailing lists or IRC channels for and asked "hey, great game. I'm interested in contributing some artwork to the game, anyone have any ideas of things that might be particularly useful?" or simply looked at what was needed and gotten back "we don't need any more artwork/artists". A lot of times the art in these games is either bad, or a mixed bag of decent stuff and terrible stuff (not that no open source games have good artwork, but more that if a game has enough good artwork then I'm more inclined to offer to contribute to a project that seems like they could really use the contributions).
              Another thing I've noticed is that one of the big goals of a lot of open source games is to be able to run on older hardware. This isn't necessarily a bad thing, but it does mean that it limits the quality of the artwork. Many commercial games are released when even a top-of-the-line gaming rig can barely get top performance, while many open source games tend to be written to run on any machine built in the last 5 or 6 years. I'm sure part of this is that not ever open source developer can afford a top of the line machine with two bleeding edge video cards (because buying one video card every 6 months for $500 wasn't draing PC gamers wallets enough apparently, they had to invent SLI) and a couple of gigs of ram.
              What would be nice is some sort of site like sourceforge but for creative commons licensed artwork that open source games could make use of.
              • one of the big goals of a lot of open source games is to be able to run on older hardware. This isn't necessarily a bad thing, but it does mean that it limits the quality of the artwork. Many commercial games are released when even a top-of-the-line gaming rig can barely get top performance, while many open source games tend to be written to run on any machine built in the last 5 or 6 years.

                Five years ago saw the GeForce 3 (although admittedly as the high end, not "any machine"), which is perfectly capa

              • ### What I have found, and it is really a strange thing to me, but many projects simply do not want to accept contributions from artists.

                I think the biggest problem isn't that they don't accept contributions from artists, but much more basic, most projects simply lack almost any kind of organisations. So nobody knows what needs to be done or when it should be done or even how. With engine coding that isn't to much of a problem, since everybody can just code a bit here and there and have his fun, maybe even
            • but please tell any decent designer, sound fx creator or graphics drawer to give away their time just "for fun" and you wont get really a lot.

              Actually, it's not at all uncommon for these folks to work on indie games for free, especially when they're just starting out...the game industry is generally pretty difficult to get into without having at least a few games under your belt, and one of the most popular ways to do that is to do work for free. Many of the people doing this are, in fact, quite talente
            • I'm working on a couple of doom3 mods right now which more or less agrees with GP and disagrees with Parent. They're both single-player "total conversions", which require a significant amount of work from volunteers, since none of the assets from the original game will be used in the final product. They both use the "Walled Garden" as GP puts it: developers and content creators are welcome to join the project after demonstrating sufficent skill and motive. However, the source, and the content isn't open

            • You've hit the nail right in the head dude! Totally agree with you. CONTENT is the factor that is missing. When I wanted to build a game, all i cared about was building up a good 3D graphics engine. That was the challenge for me, and is for most programmers. Once a good engine is made, I lost interest. I doesn't feel like a challenge to throw content in it!

              Even today, there are so [freeprogra...ources.com] many [garagegames.com] good 3d game [slashdot.org] engines- but very few games. Probably because people don't find it appealing enough to make the content.

              * lo

            • Just look at all the free mods for popular games and you will see plenty of people are prepared to give free content, including modeling, skinning and animation.

              The problem is, I think, people who do content want to see it in the game. You can get them to do it for a mod for an existing and popular game, but its going to be hard to get anyone to add content to you half complete, always being changed open source engine.

              An engine without content though isn't going to interest anyone, so it's something of

        • Problem is, the megapublishers and their infrastructure are imploding, much the same way as hollywood. With the blockbuster/IP is everything mentality, the industry is rapidly pricing itself out of the business. After they implode, open source will look very nice.
  • Reason? (Score:4, Interesting)

    by xtracto (837672) on Monday May 29, 2006 @05:07PM (#15425834) Journal
    Well, I understand this book must be an "introduction" but, I am sure there are several better books on OpenGL, personally I have read the "Beggining OpenGL game programming [Premmier Press]" which I think is quite a nice book if you are new to OpenGL.

    I mean, besides of the OpenGL-QT bindings you will have to do (mostly just to create a GL window to render if it is similar to SDL) there is nothing magical in the GL-QT combination. I would recommend to get a nice KDE book AND a nice OpenGL book also, as the author said, besides the blue and red books (which I personally use just for reference . Another great book for OpenGl is the OpenGL Super Bible [Sams], and you can find a bunch of KDE books including the KDE Bible.

    Of course if you want to go the "student" way, there is, as I have found, PLENTY of information on all of these topics. Just get into Gamedev.net, the Nehes tutorials are one of the best in my opinion.

    Now, if looking for game development I would personally incline to SDL, which will provide you with almost everything you need like input support (joystick, mouse, etc), audio and also OpenGL.

    As a last comment, could I ask the SlashDot editors do to their job and check (at least) the book reviews grammar/spelling. My native tongue is not English but it kind of hurted my eyes to read the review (which was quite nice anyway).

    • Of course if you want to go the "student" way, there is, as I have found, PLENTY of information on all of these topics. Just get into Gamedev.net, the Nehes tutorials are one of the best in my opinion.

      Seconded; I found these more useful than the textbooks or lectures during my computer graphics courses, at least for the OpenGL stuff.

    • You're commenting on grammar and spelling yet you use the word "hurted" (not a word) in the same sentence as the critique.
      • Touché, but then again, in that same sentence I said:
        My native tongue is not English but it kind of hurted my eyes to read the review (which was quite nice anyway).

        And my commen was not [supposed to be] proof read before publishing in the front page of a very important news site.

        Me comprendes?
        • I realize that you, a lowly commenter on Slashdot, feel less responsibility to grammar than a front page book reviewer on Slashdot. However, setting yourself up as an arbiter of good and bad grammar while not possessing said grammar yourself is asinine. Here in English, we have a few aphorisms you should study:

          Don't throw stones in glass houses.
          Pot. Kettle. Black.
          Those who can, do; those who can't, teach.


          And here's the classic treatment from Jesus:
          Do not judge, or you too will be judged. For in the same way
    • I just wanted to throw in a quick voucher for 'Sam's OpenGL SuperBible' as I picked it up this last weekend (3 days at the inlaws (-8). It's excellent. Being a 4-5 kilo book, it has both breadth and depth on the subject of OpenGL. As a math person, I wish that it touched a bit more on the linear algebra side of things but the fact that it keeps things within the mathematical grasp of about any reader while still being useful is probably a better decistion.

      And while I'm posting (this doesn't happen of
  • Small is good (Score:5, Insightful)

    by Excors (807434) on Monday May 29, 2006 @05:18PM (#15425861)

    It is squarely intended at the hobby coder who wants to work on what the book calls "desktop games" -- not the multi-million dollar multimedia productions that demand a new graphics card every half year, but the games that you play while thinking out a knotty problem or that have some educational value for your kids. The kind of project a single coder, or a small team can complete and maintain while still staying sane.

    That seems like pretty sensible advice - the phrase "game development" immediately brings to mind the big successful commercial games, but that's not the area in which open source seems capable of competing, and it is much more productive to realise that simple games can be more worthwhile to make.

    As for why open source game development has problems when trying to emulate commercial game development, there was some discussion [slashdot.org] a while back; shamelessly reposting my comment from there:

    there are hundreds or thousands of GPL game projects on SourceForge, and most of them are dead

    Perhaps the open source idea of havings thousands of eyes, and encouraging anybody to jump in and out of the code making changes, is incompatible with the process of creating a game?

    I don't know of any open source applications that are "finished", or even try to be - their early releases are at least slightly useful, and they are always releasing new versions and adding new features. And there always are new features that can be added, each of which will improve the application, so people can work on their favourite features and the project will continue on its path of continual improvement.

    Traditional games don't work like that. They're barely recognisable as a game for a large part of their development time - during that time, there has to be a vision for the finished product, and everybody on the project has to work towards that distant vision. It'll be years before anybody can really see the results of their work. That's not very enticing for somebody who can only be certain of spare time for the next couple of months - they would rather work on something much smaller, like a mod or a tech demo, just to get visible results.

    And unlike most open source projects, people can't just add features they think are cool and useful - everything has to fit into the overall design of the game. You cannot simply add features without considering the consequences on the whole of the rest of the game - and you can't consider all the consequences unless you've already spent months working on the game and getting a feel for how everything interacts.

    For professional game development companies, they get people working towards the vision by simply paying them to do so. That won't work for community-based open source projects, so they need some other way of doing it.

    But I don't know what way that would be. I've been working on a "freeware, hobbyist" game instead (0 A.D. [wildfiregames.com]), which is a full 3D RTS with its own game engine, comparable in scope to commercial games (or at least to those of a few years ago) - it's making use of various open source libraries (SpiderMonkey, Vorbis, Xerces, etc), but is not itself open source. And I think that's a factor in how it has kept going for so long: 'membership' is still open to anyone who has the right abilities and dedication, but that means there is a strong concept of membership - we're part of a team and feel some responsibility towards making progress, following the design, and seeing the game through until it's finished. I don't think that feeling would be as strong if we were primarily a loose community of people who are just poking around the code with no commitment, which is how I perceive most open source projects.

    And programmers are only a small part of game

    • Re:Small is good (Score:5, Informative)

      by xtracto (837672) on Monday May 29, 2006 @05:51PM (#15425956) Journal
      there are hundreds or thousands of GPL game projects on SourceForge, and most of them are dead
      There are 22141 games listed in SourceForge.
      Of those, 575 (2.59%) are INACTIVE,
      7637(34.5%) are in PLANNING.
      6022(27.1%) are in PRE-ALPHA.
      4302(19.43%) are in ALPHA
      4453(20.1%) are in BETA
      3592(16.2%) are in PRODUCTION-STABLE
      460 (2.0%) are in MATURE.

      Which does not add to 100% because some games have more than two states, however it seems there is a really high trend towards "Unfinished" games. Or as I read from some game developing book, EVERYBODY can have a good game idea, but it takes some hard effort to actually implement it, and it takes really hard nuts to finish it.

      And as you said, a game is in fact FINISHED, not like said, OpenOffice, which will never be "finished", with games you can only make bugfixes, but a new game version is something completely different.

      • Of the 153,183 projects on Sourceforge as of this writing, 40,823 (26.6%) are "beta", 34,131 (22.3%) are "production", and 2,936 (1.9%) are "mature".

        Forgive me for not walking through the rest, but games aren't *that* far away from the average; other ways of slicing the data set would show above-average completion.

        My point is that in your phrase:

        EVERYBODY can have a good game idea, but it takes some hard effort to actually implement it, and it takes really hard nuts to finish it.

        the word "game" is extraneou
      • The numbers are quite disheartening. In many ways, in fact. What frustrates me is how many one-man, burst-of-effort projects one sees. One wonders how many good ideas died for lack of re-inforcing enthusiasms.

        There, are, however, complications to a stastical analysis based on one development site - even a high-profile site like sourceforge. Some projects exist in many places at once - sourceforge, freshmeat, happypenguin, savannah.nongnu.org, linuxgames, berlios, web presence, etc. According to Sourceforge

      • If, as you quote,
        And as you said, a game is in fact FINISHED, not like said, OpenOffice, which will never be "finished", with games you can only make bugfixes, but a new game version is something completely different.
        then why is that the distribution is essentially the same for games as it is for everything else? Perhaps games do evolve? What would be interesting is to see how this distribution has changed over time...
      • Why should games ever become "finished"? If there is a first-person or platform game, can't additional levels always be added to it? Can't new, exciting enemies and weapons also be added in newer versions? Can't the graphics get better and better, as newer hardware comes out?

        The only reason why games are ever "finished" is because proprietary software companies want to put them into a box and release them, but even in the proprietary games industry, you still see companies releasing mission packs, which are
    • Very informative. Please mode parent up. The two styles of development are quite different exactly as you said. I won't go into more details since I think you hit just about everything.
  • 3d engine resources (Score:3, Interesting)

    by Paralizer (792155) on Monday May 29, 2006 @05:38PM (#15425924) Homepage
    On the topic of game development and OpenGL, can anyone recommend any books/websites/resources good for building OpenGL rendering engines from scratch?

    I've recently took an intro course to GL and for a project written an MD3 (quake3 mesh animated model) renderer in Qt (bindings are easy and well documented with "Qt Assistant"). I've wanted to increase my knowledge of GL over the summer by building a relatively primitive rendering engine in C++, and perhaps evolving it over the course of the next few years. I'm considering starting with an importer for Quake3 maps (BSP trees). Ultimately I'd like to build something similar to (of course I'm sure much less advanced) that of the Irrlicht engine [sourceforge.net].

    I've read through the Red Book [amazon.com] and have already bought the Superbible [amazon.com]. Has anyone any other resources which might help me design and build such a system?
    • by nexusone (470558)
      some good general sites:
      http://www.xmission.com/~nate/tutors.html [xmission.com] basic's
      http://www.gamedev.net/ [gamedev.net] Game programming
      http://nehe.gamedev.net/ [gamedev.net] OpenGL programming/game site
    • Well, this comment is kinda lateral (as in 'not related to opengl and games'), but I think you'd appreciate flipping through a few basic computer graphics books and related maths --- after all, opengl is just an implementation of the few of the most basic concepts and the red&blue books are mostly 'just' technical reference manuals. getting a handle of the basic concepts also probably clarifies what you actually want to do with the code.

      Graphics:

      watt&watt: Advanced Animation and Rendering Techniques
    • Please not that it takes more than graphics to make a game. After you learn graphics and OpenGL, you will need to learn some datastructures to organize all of your data, AI, Physics simulation, collision detection, audio, UI. Then you will also need art work. So even if you have a great idea and know open gl you are only 5% of the way (at most) toward making a game.
  • by Anonymous Coward
    We managed to effectively rewrite xpilot in SDL/OpenGL and porting across platforms then became trivial.

    XPilotNG (5 stars on Tux games)

    http://sourceforge.net/project/showfiles.php?group _id=13411&package_id=15770 [sourceforge.net]

    Works on just about everything , but there are packages for Linux / Windows and Mac OSX.

  • by Trogre (513942) on Monday May 29, 2006 @05:58PM (#15425975) Homepage
    ...then please please PLEASE first take a look at the hundreds of other OSS games [happypenguin.org] out there and consider building on (read: contributing to) one of those.

    It's sad looking at the large number of games that have shown promise but for one reason or another have been abandoned or development has slowed or forked. We really don't need another nethack clone, MMORPG or 3D engine. We have all of those in abundance. What we need now is to build on these, both with shader code and good content. It's often easy to tell the OSS games from the commercial ones from a single screenshot because the commercial studios have good artists and the OSS devs don't (I am being overly broad here and there are exceptions such as Frozen Bubble, but these are rare).

    One not-quite example: I am a fan of the excellent OSS flight simulator FlightGear. The latest version 0.9.10 has some nice ground textures and real-world data that makes for a truly beautiful view when flying at 30,000 feet. But the planes themselves look like crap. The model detail and decals are average but what really lets it down is the way the plane interacts with light. The engine is badly need of work to take advantage of OpenGL shaders. And the sky looks completely wrong. As you ascend beyond 50,000 feet you should see the sky darken to a very deep blue with some stars becoming visible but the engine doesn't allow for this (you're basically inside a big solid-blue sphere). Not vital properties for learning to fly a 747 I know, but still important polish for a realistic flying experience.

    If you have a truly original idea then by all means start from scratch if nothing existing fits the bill, but don't just fire up a text editor and start another MMORPG from scratch. The OSS gaming community don't need it.

  • Anyone here have experience with a good isometric game engine in C, C++ or Java on Linux?

    I'm not into sidescrollers or FPS, but I love isometric RPG and adventure games (even wrote one back in the day, and always itching to do so again).

    • I have written a mostly complete isometric adventure game framework, I have yet to release any actual games, due to the lack of anything but a vague idea of the story i want, and amount of work needed to create the graphics, but i have a decent renderer, lua scripting, sound and a pretty functional editor for the levels.

      http://marchingcubes.com/games.html [marchingcubes.com]

      A lot of unpolished graphics on there, but the chess shot is kind of more where i want to go graphics-wise (i'm also doing a battle-chess type remake).

      I'm
  • It's clearly a Slashvertisement. But it teaches people how to contribute to open source projects.

    Slashdot, help! How do I feel about this?

    • I'm afraid you will have to submit an "Ask Slashdot" before I can answer this.
    • It's a book review. Obviously it's talking about a specific book. And an interesting one at that. And encouraging OSS games. So don't fret about it. If you think book reviews are slashvertisements, then don't look at any of them.
      • I think the GP was joking, but supposing we take the first part about it being obvious that this is a Slashvertisement seriously (and that is, I agree, ambiguous), we can go to the link that the guy provided to find that there is, indeed, a person by that name listed on koffice.org as maintainer of Krita, and he is not one of the authors of the book. So if GP wants to come back with some conspiracy theory about how the authors are in it with the Krita guy and he's willing to risk his OSS cred on the cut he
        • I think the GP was joking

          Yeah, I was just kidding. I just thought it was kind of funny that the main page had a pretty clear advertisement on it, which a lot of slashdotters dislike. But the product was open-source friendly. Seemed like a goofy kind of a quandary to me. Sort of like watching a lawyer go off a cliff - but in your car.

  • by QuantumG (50515) <qg@biodome.org> on Monday May 29, 2006 @07:21PM (#15426169) Homepage Journal
    I know what you're going to say, you're a programmer, you can't make content. Lies! No, I'm not seriously suggesting you break out Blender or even 3d Studio. What I'm suggesting is that you, as a programmer, develop new and exciting tools for content creations. For example, how many open source tree generators are there available that are suitable for use with open source graphics engines? Zilch. Another example, can you write an algorithm that can turn a description of an animal's skeleton and how much weight there is on various points of that skeleton into a walking animation? How about a running animation? How about fighting animations? Can you write an algorithm that turns that same input into a fleshed out 3d model? You can? Great, we're half way to making all the content we could ever want.

    "Programmer art" should not be a derogatory term for content whipped up by non-professionals.
    • Agreed... More Opensource Game Tools are needed.
    • So you're suggesting that, when a programmer is faced with the problem of getting content created for his game, he should stop making games and make tools? Most people who create games do so because they want to make a game, not because they want to make tools.
      • If you are talking about programming, it's all tools. A game engine is just as much a tool as photoshop, it just fits in a different spot in the pipeline.

        I like to keep the actual software the player uses (the engine) absolutely as compact as possible, which means I spend a lot of time writing software that gets used in production only. For example: our tool chain supports all kinds of image formats for asset creation, but the data actually used by the engine is always in platform specific formats, and
      • Creating tools is half the work that goes into creating a game. You can't expect people to create levels, if there isn't a level editor available and neither can you expect good 3d models, if the most common modelers aren't supported due to the lack of export/converter scripts. Last not least many things simply are done better in code then in content, a physics engine will make realistic behaviour of the environment much easier then trying to fake it via hand animated stuff, caustics or water in general are
        • You make good points. It's the "done better in code" aspect that I was pushing. So many things are done by the artists today simply because that's how they were done 10 years ago. Hopefully that will change in the future and we'll see procedurally generated characters, animations and whole environments a lot more often.
    • ACK, or even if people do work on engines, don't just concentrate on the engine itself, but also on the tools surrounding the engine, nothing sucks more to have a shiny open source engine, but then no exporter available to export some Blender model into the engine.
  • That means little or no interest from gamers. That could also be translated as "little o no money" as well.
  • I'm sure I'll get busted up for posting this as I have in the past, but as a non-programming person I hope that one day there will be software tools available, either for purchase or for free, that facilitate the straightforward creation of games so that the medium becomes more accessible to idiots/illiterates like myself.

    Before you start calling me a lazy a-hole, take the analogy of the GUI. GUIs are what made computers of ANY kind a tool usable by anyone. Prior to GUI, idiots like me struggled with comma

"The pyramid is opening!" "Which one?" "The one with the ever-widening hole in it!" -- The Firesign Theatre

Working...