Slashdot Mirror


Open Source Game Development

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.

36 of 147 comments (clear)

  1. You sold me :-) by Coeurderoy · · Score: 2, Interesting

    I was looking for a book easyng me into Qtopia, and it seems to fit the bill.
    Thanks for an useful review.

  2. Does it answer a really important question? by Grey+Ninja · · Score: 5, Interesting

    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.

    1. Re:Does it answer a really important question? by CrazyJim1 · · Score: 5, Insightful

      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.

    2. Re:Does it answer a really important question? by ImTheDarkcyde · · Score: 3, Interesting

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

    3. Re:Does it answer a really important question? by linvir · · Score: 3, Interesting
      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 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.

    4. Re:Does it answer a really important question? by xtracto · · Score: 3, Interesting

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

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    5. Re:Does it answer a really important question? by vdboor · · Score: 2, Insightful
      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 got lucky it's a small company with a technical-oriented atmosphere.

      --
      The best way to accelerate a windows server is by 9.81 m/s2 ;-)
    6. Re:Does it answer a really important question? by xtracto · · Score: 3, Insightful

      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)

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    7. Re:Does it answer a really important question? by swillden · · Score: 2, Informative

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

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    8. Re:Does it answer a really important question? by modecx · · Score: 3, Funny

      SAS?

      Yes. Isn't it clear enough?

      1) The SAS (Special Air Service), Great Britian's answer to the Navy Seals, will send troops to HALO jump straight into the houses of everyone that plays your Open Source game.

      2) They will then proceed to ransack the houses of said players, looting any valuables they happen to find, then they will make love to the wives of these game players for no less than a half hour after a romantic dinner at an expensive resturant, and finally they will kill anything that moves before executing a stealthy exit via the Fulton Recovery System.

      3) Profit!!!

      --
      Constitutional rights may be respected, repealed, or modified; but they must never be ignored.
    9. Re:Does it answer a really important question? by I'm+Don+Giovanni · · Score: 2, Insightful

      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 others for a *fee* (and the license may even include the source, but not for redistribution to others). I'm sorry, but open source is not amenable to creating things like Halo, Half-Life, World of Warcraft, etc. Stick with Tux Racer trivialities.

      A sidenote:
      I've worked on software for years, and the "art" (icons, pictures, sounds, etc) is considered part of the "source". So why do you separate the "art" from the "source code"? You say that devs can GPL the engine but keep the "art" 'closed'. Why not "GPL" the art as well? Seems that the true OSS advocate would advocate "open sourcing" the art/story/content, letting the "community" improve it, and reaping the benefits of the community's effort. That you concede that the art should remain 'closed', tacitly admits a flaw in the GPL model (as far as money-making is concerned).

      --
      -- "I never gave these stories much credence." - HAL 9000
  3. I like CrystalSpace by CrazyJim1 · · Score: 3, Informative

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

    1. Re:I like CrystalSpace by xtracto · · Score: 2, Interesting

      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 programmer, I do not need/care to compile the library nor to modify it, I am completely happy with a .lib or .so and a bunch of .h files which I can compile and link in order to start to implement my idea right away.

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    2. Re:I like CrystalSpace by Malawar · · Score: 3, Informative

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

  4. Linux Games (SDL, OpenGL) by Zombie+Ryushu · · Score: 2, Insightful

    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.

    1. Re:Linux Games (SDL, OpenGL) by xtracto · · Score: 4, Insightful

      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

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    2. Re:Linux Games (SDL, OpenGL) by LocoMan · · Score: 3, Insightful

      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.

    3. Re:Linux Games (SDL, OpenGL) by miyako · · Score: 3, Insightful

      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.

      --
      Famous Last Words: "hmm...wikipedia says it's edible"
    4. Re:Linux Games (SDL, OpenGL) by omeomi · · Score: 2, Informative

      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 talented, but have yet to really prove themselves.

    5. Re:Linux Games (SDL, OpenGL) by Excors · · Score: 2, Informative
      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 capable of making good-looking games as long as you rely on decent art rather than just adding HDR and bloom and bump-mapping and specular highlights and hoping it'll look good - we've had some reasonable success using none of those features. Currently the only pixel shader in the game is for high-end water, and we have an equivalent effect for GF3/4s; pretty much everything else is just a plain texture map. You can even run modern games like Oblivion on a GeForce 3 and it looks good (though it doesn't run quite so smoothly).

      It is a bit harder if you want to support the common integrated graphics chips with limited memory and processing power - but I'd tend to blame ugly games on bad art instead of a bad graphics engine. Anyone can download OGRE and set up a rendering system with modern features, but artists are much harder to find - contributions from people like you can make a big difference (at least when the programmers are happy to accept it)!

    6. Re:Linux Games (SDL, OpenGL) by grumbel · · Score: 2, Insightful

      ### 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 producing something half usable in the end. But with games its pretty much catastrophic when nobody knows, not even the maintainer, what should be finished next and often not even what should be produced in the end, let alone things like style guides, specs about intended triangle count for and object, etc. So the thing isn't so much that they don't want to accept contributions, but simply that they can't, because they have no idea what to do with the contributions or which contributions are needed.

      At least thats experince with doing graphics for OpenSource games.

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

      Yes, such a thing could definitvly be usefull, while not necessary for direct in-game use, it can be quite helpfull to have some 3d models or drawings for inspiration or reference. I once started such a thing, but it never went very far:

      http://clanlib.org/~grumbel/mediarepo/show.cgi?new s

    7. Re:Linux Games (SDL, OpenGL) by grumbel · · Score: 2, Insightful

      ### 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, especially when it comes to stuff that is gameplay relevant and not just polygon plotting. I might be able to messure the performance of a piece of code, but for most code speed is not really an issue, API elegance, easy to maintain it and such are often far more important and not really easy to messure either. Last not least most artwork and code will be something new, not an improvment to existing code, so you don't have anything to compare with to begin with.

      ### "ok, here's what I did, tell me what's wrong but DON'T fix it, I'll fix it myself".

      This has not only something todo with artwork itself, but also with the fileformats in use, with code I can diff/patch, see the differences, compare and merge them. With an image/model I get two chunks of raw data, I can view them, but I can't merge them without lots of additional work, which makes collaboration a lot more difficult, since conflicts are much harder to resolve then with code.

    8. Re:Linux Games (SDL, OpenGL) by JFitzsimmons · · Score: 2, Interesting

      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 outside of the occasional media release we make to let people following the mod know that we are in fact still alive. I know for sure that when the games reach their "when it is done" state, we will make a source release along with the normal release of the games. I can't say what will become of the media for the game, since I'm not an artist. A condition of both projects is that artists have to basically "surrender" their rights to their work to the project, although some of us have made contracts that the game cannot go commercial without renegotiating the agreement.

      However, the point I'm trying to make is that it seems some artists are in fact willing to donate their time, especially if they're trying to beef up a portfolio. Interestingly enough, both of the projects have a surplus of willing artists and a distinct lack of coders. [For interested coders (or artists I guess), see the end of this post for shameless plug]. Walled Garden doesn't work perfectly though, obviously. A huge downside to it is the sheer amount of time it takes to get anything done. Since everyone is working on a volunteer basis contributions trickle in slowly. A second problem is member turnover. Often times members will leave the team or simply go without communication for months on end, citing lack of progress, personal reasons, education, etc. It is very hard to keep volunteers motivated, especially on a project which progresses so slowly. OTOH, a leader may decide to keep a very small team of highly-dedicated volunteers and avoid the turnover problem, but then introduces that things get done that much slower since there are less people and the process is even more closed. Interestingly enough, both the projects I'm working on exibit each of these characteristics: one has the Cathedral-Garden and the other the Bazaar-Garden.

      In this way I agree with the GP in that the so-called Walled Garden does work as a possible open source game development method. However, it does not work well. I'm not sure if there's a better organization method, but if anyone thinks of something I'd certainly like to know about it.

      I agree and disagree with the parent. He claims that "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." I agree that open source games will not compete with game studios - in terms of timeline. I strongly believe that a group of skilled and motivated volunteers create a game which is just as more "innovative" and fun as any studio, but it will likely take them a significantly longer amount of time. In this respect I disagree with the parent. High quaility models, animations, textures, sounds, music, code, and others are not out of reach of a volunteer project, they just take longer to create, for the simple and obvious fact that people aren't being paid to do it.

      If you're wondering why a single coder is working on two projects at the same time, the reason is simple: I noticed that both projects had a reasonable amount of overlap and decided to join both teams and develop the requirements of both games that were the same.

      The two projects are:

      • Sapphire Scar - Futuristic shooter loosely based on game concepts from FPS/RPGs like Deus Ex or System Shock
      • Ground Zero - Post Apoc Timepunk third-person loosely turn based game based on some concep
      --
      Beware he who would deny you access to information, for in his heart he dreams himself your master. -Anonymous
    9. Re:Linux Games (SDL, OpenGL) by lon3st4r · · Score: 2, Interesting
      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 many good 3d game engines- but very few games. Probably because people don't find it appealing enough to make the content.

      * lon3st4r *

    10. Re:Linux Games (SDL, OpenGL) by Mant · · Score: 2, Informative

      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 a catch-22.

  5. Reason? by xtracto · · Score: 3, Interesting

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

    --
    Ubuntu is an African word meaning 'I can't configure Debian'
  6. Small is good by Excors · · Score: 5, Insightful

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

    1. Re:Small is good by xtracto · · Score: 4, Informative

      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.

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
  7. 3d engine resources by Paralizer · · Score: 2, Interesting

    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.

    I've read through the Red Book and have already bought the Superbible. Has anyone any other resources which might help me design and build such a system?

    1. Re:3d engine resources by nexusone · · Score: 2, Informative

      some good general sites:
      http://www.xmission.com/~nate/tutors.html basic's
      http://www.gamedev.net/ Game programming
      http://nehe.gamedev.net/ OpenGL programming/game site

      --
      Wise men speak because they have something to say, Fools because they have to say something!!!!
    2. Re:3d engine resources by Faraday's+Sloth · · Score: 2, Informative

      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 - not a very recent book but the material is still relevant and the presentation of different concepts is relly good
      Hearn & Baker: Computer graphics (c or opengl version depending on your preferences). Basic computer graphics. Pretty good. The opengl version eschews some of the more basic code samples from the c version, which is a bit shame really.
      Moller & Haines: Real-Time Rendering - relevant for real time applications and contains great references to computer graphics resources in general

      Geometry & linear algebra:
      Philip Schneider & David Eberly: geometric tools for computer graphics (contains recipes for eg. checking collisions, raytracing, clipping...). Might be not best book of this type(?) but it's ok.

      Freely available online material:
      comp.graphics.algorithm faq:
      http://www.faqs.org/faqs/graphics/algorithms-faq/

      The physical modeling course of David Baraff available online is quite nice:
      http://www.cs.cmu.edu/~baraff/sigcourse/index.html

      Graphics gem's codes:

      http://www.acm.org/pubs/tog/GraphicsGems/

      The book's themselves are also excllent recipe repositories, but really useful only after you know the basic concepts from basic textbooks etc. ...and, if you have the access then the http://portal.acm.org/ stuff is really good. (search for 'siggraph "course notes" for starters') You can find details to most of the stuff Pixar, Alias etc. do from there...

      If you have the time and resouces, then the Moller & Haines book is a decent roadmap to the field ("Oh, what's this...let's see the referred book/article has to say.. oh, that's interesting!") from the grass roots of z-buffers up to modern fps engine concepts.

  8. If you're considering writing an OSS game by Trogre · · Score: 4, Insightful

    ...then please please PLEASE first take a look at the hundreds of other OSS games 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.

    --
    "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
  9. Stop Making Engines, Start Making Content by QuantumG · · Score: 2, Insightful

    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.

    --
    How we know is more important than what we know.
    1. Re:Stop Making Engines, Start Making Content by grumbel · · Score: 2, Insightful

      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.

    2. Re:Stop Making Engines, Start Making Content by QuantumG · · Score: 2, Interesting

      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.

      --
      How we know is more important than what we know.
  10. Sam's OpenGL Super Bible by Combatjuan · · Score: 2, Interesting

    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 often), I'd like to throw my two cents into the fountain of this Indie games debate. Good for you if you want to write a game, however... Do something new, do something creative, do something that you and your friends and family members and immediate contributors can realistically accomplish. And for the love of sanity, DO IT FOR FUN! If you're in it for money and it's not your full-time job, then don't bother.

    Also, if you're a good programmer and find your game lacking content, consider procedural content. It really depends on the kind of game you're writing. The downside is that it can remove the beautiful, personal touch of human-generated content, and it is also very hard to do. The upshot is that if you really enjoy programming and are making your game for you own personal enjoyment, the challenge can be very exciting and entertaining. The second upshot is that procedural content when done well and applied to the right kind of game, can greatly add to replayability. This is the path that I've chosen for the game I'm writing right now (In-depth pausable real-time tactical starship combat). I'm having a blast!