Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Status Report From the Open Source Games Community

Zonk posted more than 6 years ago | from the there-are-some-great-ones-out-there dept.

Games 81

qubodup writes "Free Gamer, an open source gaming blog, has recently become the center of open source artists, developers and gamers. In its forums, the GPU-hungry Classical Java RPG and the Neverball-killer irrlamb have found their second home. So did sub-communities like extremist free gamers, who insist on games not only be free software but also to contain free content and want to build a knowledge base of existing free games. There are also free content artists, which address an old problem of open source games and want to supply graphics and sound for projects in need of game media."

cancel ×

81 comments

Sorry! There are no comments related to the filter you selected.

free booty! (0)

Anonymous Coward | more than 6 years ago | (#20674081)

Avast, free and easy booty be the best kind of booty around, arrrr!!

wrong link (4, Informative)

Simon80 (874052) | more than 6 years ago | (#20674237)

wtf, zonk, you're supposed to be editing before you post. freegamer.net is obviously not an open source games blog. I think the submitter meant to link to http://freegamer.blogspot.com/ [blogspot.com] . I have no clue how someone could screw that up though.

Re:wrong link (1)

Geoffreyerffoeg (729040) | more than 6 years ago | (#20674965)

It was right in the Firehose submission. I wonder how Zonk *intentionally* changed it to the wrong URL.

Re:wrong link (1)

qubodup (1103165) | more than 6 years ago | (#20675377)

Aw crap -_- (Yes, it is supposed to be http://freegamer.blospot.com [blospot.com] )

Re:wrong link (2)

qubodup (1103165) | more than 6 years ago | (#20676085)

am I an idiot? try again: freegamer.blogspot.com [blogspot.com] 'Blaming' my previous post would be a good idea..

Re:wrong link (1)

somersault (912633) | more than 6 years ago | (#20678679)

Maybe not quite up to idiot levels, but you could see a therapist about your freudian slip? :P Blospot.com.. probably NSFW

Here is a list of great open source games... (3, Funny)

Anonymous Coward | more than 6 years ago | (#20674251)

*crickets chirp*

Re:Here is a list of great open source games... (1)

Brian Gordon (987471) | more than 6 years ago | (#20674533)

.....xeyes?

Re:Here is a list of great open source games... (1)

Daimanta (1140543) | more than 6 years ago | (#20675353)

Xeyes, fun for minutes...

Re:Here is a list of great open source games... (1)

Brian Gordon (987471) | more than 6 years ago | (#20675823)

It's just the demo, if you upgrade the pro version is amazing. Fully 3D graphics!

Re:Here is a list of great open source games... (0)

Anonymous Coward | more than 6 years ago | (#20677483)

It's just the demo, if you upgrade the pro version is amazing.

Is the pro version Open Source? 'cause, ya know, that's like the topic and everything.

Re:Here is a list of great open source games... (1)

Brian Gordon (987471) | more than 6 years ago | (#20686763)

*woosh*

Re:Here is a list of great open source games... (0)

Anonymous Coward | more than 6 years ago | (#20714319)

"whoosh" does not excuse a stupid post.

Re:Here is a list of great open source games... (3, Informative)

ucblockhead (63650) | more than 6 years ago | (#20674907)

Nethack.

Re:Here is a list of great open source games... (1)

Brian Gordon (987471) | more than 6 years ago | (#20675337)

How is that offtopic? Someone give him an underrated point and bump it back up to 2..

Re:Here is a list of great open source games... (1)

BoberFett (127537) | more than 6 years ago | (#20676781)

It would be on topic if this were posted in the late 1980s. I would assume this discussion taking place in 2007 would assume we're looking for games less than 20 years old.

Re:Here is a list of great open source games... (1)

CronoCloud (590650) | more than 6 years ago | (#20677031)

Nethack 3.4.3 is less than 20 years old, released on December 8th of 2003. Nethack is under continuous development you know.

Re:Here is a list of great open source games... (1)

Petersko (564140) | more than 6 years ago | (#20681943)

"Nethack 3.4.3 is less than 20 years old, released on December 8th of 2003. Nethack is under continuous development you know."

No... it's under sporadic and infrequent development. Actually, that's being charitable. Seems like the only update since 2004 is a file name change.

Re:Here is a list of great open source games... (1)

ucblockhead (63650) | more than 6 years ago | (#20682165)

I've been playing the Nethack port on my homebrew-hacked PSP. That platform didn't even exist in 2004. One presumes "porting" counts as active development.

Not to mention all the extensions, mods etc. still in active development.

But active development isn't the point. The point is that lots of people still actively *play* nethack.

still waiting.... (0)

Anonymous Coward | more than 6 years ago | (#20675077)

*by which a tumbleweed rolls*

Re:Here is a list of great open source games... (4, Insightful)

Clover_Kicker (20761) | more than 6 years ago | (#20675385)

Re:Here is a list of great open source games... (2, Informative)

Bongo Bill (853669) | more than 6 years ago | (#20676945)

The Ur-Quan Masters [sourceforge.net]

Re:Here is a list of great open source games... (0)

Anonymous Coward | more than 6 years ago | (#20678061)

If you like shooters (that's shooters in the gradius and R-Type sense of the word) then there's:

-Kenta Cho's body of work, especially noiz2sa, rRootage and Torus Trooper.
-Tenmado

If you know what ikaruga is then you should know what these are too.

SuperTux is a decent mario 1 clone.

Liquid Wars is fun, but too unique to try to describe here.

Also there's: freecraft, wargus, various nethacks, the quake engines.

Re:Here is a list of great open source games... (1)

MrNiceguy_KS (800771) | more than 6 years ago | (#20681405)

Another great shooter is Power Manga.

Other great OS games I've found are Vega Strike, (Elite/Privateer style space flight) and Frets On Fire. (Guitar Hero clone)

Re:Here is a list of great open source games... (1)

KDR_11k (778916) | more than 6 years ago | (#20681169)

Just play Spring RTS [clan-sy.com] .

Sigh. (0)

Anonymous Coward | more than 6 years ago | (#20674565)

Leave it to today's gamers to want "frustrating gameplay" as the Irrlamb site says. Neverball is the same way; more focus is put on trying to make the controls as difficult as possible to use.

This trend towards games with bad control and frustrating gameplay is just terrible. Back in my day, we called such games "bad".

Re:Sigh. (1)

Brian Gordon (987471) | more than 6 years ago | (#20675379)

But the controls make the game hard :) I agree, neverball's only challenge is in the controls. I'm stuck on an insanely difficult level close to the end of the Hards, and I could do it in 15 seconds flat with solid keyboard controls [wikipedia.org] . And the developers seem very hush-hush about a cheat key that could help me immensely- their reasoning is along the lines of "The player doesn't know what he wants. He really wants to beat it fairly."

Re:Sigh. (1)

xhrit (915936) | more than 6 years ago | (#20677097)

what kind ov noob hacker are you!? code dive!! it is an open source game. use the source!!!!

hell, you could even ADD a cheat key!!!

...

now it is time for a shameless plug : http://www.xhrit.com/zp3/ [xhrit.com]

Re:Sigh. (1)

Brian Gordon (987471) | more than 6 years ago | (#20686609)

Yeah I looked through the source for half an hour or so and got frustrated.. you try to figure out their keyboard implementation (I have no idea how to capture keystrokes) and find the relevant source.

Re:Sigh. (1)

xhrit (915936) | more than 6 years ago | (#20732445)

OK. I have intimate knowledge ov irrlicht's input methods, as my own game engine uses the lib. Maybe if I get bored rewriting the zp3 scriptable networking layer I will look at hacking irrlamb.

I like neverball... (1)

SanityInAnarchy (655584) | more than 6 years ago | (#20686435)

I don't think the controls are what makes it hard. It's an interesting control method, sure, but once you get used to it, no harder than an FPS...

Consider an FPS, actually. You could have a game with really "easy" controls, like an auto-aim. We call that an aimbot, aka, CHEATING.

Or, you learn the controls you're given, and you find that it's not just the controls that make the game hard. It's the game itself -- in Neverball, it's the physics of momentum in a world where it's easy to fall off the edge.

By the way -- this is hardly new. A LOT of old games have much more frustrating gameplay. In general, it's arcade-style games anyway -- the idea, I guess, being that you'd lose, but you'd be SO close that you'd have to try again, so you'd put in more quarters. But it is actually fun -- the flipside of it being frustrating is, it's that much more rewarding to finally beat it.

I don't like the trend these days towards easier games, by the way -- towards games which have an "I can win" setting (even if I like that setting), which have like 5-10 hours of gameplay to make sure everyone can finish it (even if they don't really have the time to be playing games anyway), to the point where it's just not worth it to buy a game anymore, if you can rent a console game and finish it before you have to take it back.

Incompatibility between CC and GNU licenses (2, Interesting)

tepples (727027) | more than 6 years ago | (#20674763)

If I develop a game, and I want to distribute it under a copyleft license, what license should I use? Due to the lack of a native file system implementation on some platforms, the code and its related assets (graphics, sound, maps, etc.) must be combined into one executable file, but the GNU licenses appear to require that a single executable file be distributed under a single license. Licenses based on the Creative Commons Attribution License ("CC-BY") are not intended for software; instead, Creative Commons recommends GNU licenses for software. However, the GNU software licenses are not compatible with any of the Creative Commons licenses. Section 4(a) of the Creative Commons Attribution License versions 2.5 and 3.0 allow a contributor to require that downstream distributors remove the contributor's copyright notice, but the GNU licenses do not allow the removal of copyright notices. Is there a way to solve this without having to track down every single artist on Wikimedia Commons individually and ask them for waivers of this requirement?

Re:Incompatibility between CC and GNU licenses (0, Troll)

Brian Gordon (987471) | more than 6 years ago | (#20674887)

Forget copyleft in this case, just go with a permissive license. After all, if you're going to be sucking in non-GNU work into your application, you shouldn't relicense it with the GNU virus and take their work. That clause is in the GNU license for a reason; even RMS realized that it's unfair to take others' free work and glob it together with restrictions the original author didn't intend. Copyleft is fundamentally incompatible with what you're looking to do. If you want to copyleft your own code then it's your own business and I don't mean to say that's wrong.. but when people make their work freely available you simply cannot put it in your executable and relicense the whole thing.

Re:Incompatibility between CC and GNU licenses (1)

tepples (727027) | more than 6 years ago | (#20675341)

Forget copyleft in this case, just go with a permissive license.
Even many permissive licenses, such as the FreeBSD license and the MIT license, appear to require preservation of authors' copyright notices. But Creative Commons Attribution License and its related licenses allow an upstream author to forbid a copyright notice after the fact, which debian-legal has condemned [debian.org] .

Re:Incompatibility between CC and GNU licenses (1)

LunarCrisis (966179) | more than 6 years ago | (#20677449)

but when people make their work freely available you simply cannot put it in your executable and relicense the whole thing.
Why not? The MIT license (generally considered to be one of the permissive licenses) for one specifically permits sublicensing. If the original author did not want you to relicense his software he shouldn't have specifically allowed it in the license, it's as simple as that.

Re:Incompatibility between CC and GNU licenses (1)

Workaphobia (931620) | more than 6 years ago | (#20685073)

As a nitpick, there's a difference between relicensing and sublicenseing. Someone please correct me if I get this wrong: Relicensing is placing a new license on a piece of software (or other work), which is a right that only the copyright holder has; whereas sublicensing is a non-copyright holder applying additional terms on a work that do not conflict with the license he received it under. So I think the GP meant to say sublicense. Additionally, he claimed

> "it's unfair to take others' free work and glob it together with restrictions the original author didn't intend."

Neglecting, of course, that if the author didn't intend this, there's a perfectly usable and relatively mature copyleft license available.

Re:Incompatibility between CC and GNU licenses (1)

Simon80 (874052) | more than 6 years ago | (#20674889)

The GPL probably only prohibits the removal of copyright notices from the GPL licensed work, without caring what you do with the other works, even if they're distributed in the same file.

Re:Incompatibility between CC and GNU licenses (1)

nuzak (959558) | more than 6 years ago | (#20675035)

I rather doubt that including a GPL'd asset into a JAR would or could trigger any kind of requirement, since it really is "mere aggregation", as much as packing them into an ISO image for a distribution would be. The JAR *is* the filesystem in your case.

That said, I would tend, if possible, to steer clear of assets that are GPL'd. The concept of GPL'ing a texture or clip just doesn't make a lot of sense, and it indicates the creator either blindly slapped GPL on without thinking, or it "inherited" the license from its parent project (the latter seems more likely, but you are talking about wikimedia, which has standalone license). It's better to deal with people that put thought into reuse, whether it's code or assets.

Re:Incompatibility between CC and GNU licenses (1)

tepples (727027) | more than 6 years ago | (#20675265)

I rather doubt that including a GPL'd asset into a JAR would or could trigger any kind of requirement, since it really is "mere aggregation", as much as packing them into an ISO image for a distribution would be. The JAR *is* the filesystem in your case.
From the GPL:

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
I don't exactly understand what was intended by "works, which are not by their nature extensions of the covered work", nor how a judge might interpret it, especially in light of the following from the GPL FAQ [gnu.org] :

If the modules are included in the same executable file, they are definitely combined in one program.
If the app's source code included a program that unpacked an asset archive appended to the executable, would that be enough to make the final work an "aggregate"? And what of the audiovisual work that appears to be created when assets under Creative Commons license are combined with behaviors of a program under the GPL?

It's better to deal with people that put thought into reuse, whether it's code or assets.
In other words, by "deal with people", we're back to "ask first", right?

Re:Incompatibility between CC and GNU licenses (1)

grumbel (592662) | more than 6 years ago | (#20676565)

### If the app's source code included a program that unpacked an asset archive appended to the executable, would that be enough to make the final work an "aggregate"?

Since you are only packing the files into the executable due to hardware limitations this is really no different then a .tar.gz, .iso, reiserfs, ext2 or whatever, especially when there are tools to properly extract the files from the binary and replace them, which there of course are, since you distribute source according to the GPL.

The safest bet is of course to go dual-license GPL+CC-by-sa if possible, but even without I don't really see a real problem with mixing a GPL app with CC-by-sa when the mixing is really doing nothing more then attaching data to the same file.

From the CC-by-sa side it is a bit trickier, since a game could be considered as an adoption instead of a collection from the artwork and thus might need to be covered under CC-by-sa as well. However CC-by-sa doesn't really give a clear answer of when a thing becomes a adoption and when a collection, since in this case its a bit of both.

Last not least I would say, don't worry to much, people licensed their stuff under GPL and CC-by-sa so that other people could use it, not to send out lawyers to other people in the same spirit. If you want it bullet proof contact the original authors and ask for permission, but for practical purposes you should be fine even without.

Re:Incompatibility between CC and GNU licenses (1)

vrmlguy (120854) | more than 6 years ago | (#20675639)

Take Linus Torvales' approach. He simply defined exactly what types of combination he would consider to be aggregations and which wouldn't. If you package everything in a .jar file, then append a clause to the GPL license stating that for the purposes of the GPL, only things in the 'bin' directory are covered. If you have everything as resources in a Windows .exe or .dll, do someting similar, maybe all odd-numbered ids or something.

Re:Incompatibility between CC and GNU licenses (1)

tepples (727027) | more than 6 years ago | (#20675859)

Take Linus Torvales' approach. He simply defined exactly what types of combination he would consider to be aggregations and which wouldn't. If you package everything in a .jar file, then append a clause to the GPL license stating that for the purposes of the GPL, only things in the 'bin' directory are covered.
I have a couple questions about your proposal:
  1. If my program includes libraries written by other people, do I have authority to do this? I'm guessing not. Mr. Torvalds owned the whole copyright in Linux 0.02 or whatever the first version of Linux under GNU GPL was.
  2. Practically, how do I manage the case where an author of something in the CC licensed portion of the Collective Work invokes the copyright notice removal clause? Do I have to make available some specific mode of contact and maintain its accuracy?

Re:Incompatibility between CC and GNU licenses (1)

vrmlguy (120854) | more than 6 years ago | (#20677051)

If my program includes libraries written by other people, do I have authority to do this?
You probably don't (although the Linux and OpenBSD communities are hashing out the details of this even as we speak), but you do have the ability to clarify that your use of GPL or CC licenses in your works does not "contaminate" code or media that were originally issued under some other license. You can read Linus' exact thoughts on the subject here: http://kerneltrap.org/node/1735 [kerneltrap.org]

Practically, how do I manage the case where an author of something in the CC licensed portion of the Collective Work invokes the copyright notice removal clause?
Let's see...

If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(c), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(c), as requested.
I'd say that you delete the licensor's name from every file that you distribute. If you make old versions available, delete it from them as well. It's not a code change, so nothing should break (unless you do something funky like runtime checksums on the licenses). Something like this: find . -type f | xargs perl -ie "s/Licensor/Anonymous Contributor/"

Here's what is wrong - sucky tookits (3, Insightful)

sofar (317980) | more than 6 years ago | (#20675631)


these games *DIE* because the developers pick tools that nobody wants to maintain in the long run. Look at irrlamb: written in scons, needs boost. This is bound to die a quick death as a project. Java gaming? maybe, sure it is cross platform, but your app is horribly VM limited and performance will sucky no matter how you tweak. You kill your project and game by choosing the wrong development tools.

frozen-bubble keeps getting revived but in the end is not compileable with newer versions of SDL_perl. A tragedy, but I ain't gonna fix this, even if it won fancy awards.

the better the toolkit, the longer lived the project - look at the old quake engines...

I would donate plenty of money to anyone who picks a sane tookit to develop a 3D MMORPG that *encourages* development (no python, no boost, no java, plain autotools, C, no c++, SDL+GL, gtk+, no wx). Bring it on.

Re:Here's what is wrong - sucky tookits (2, Interesting)

qubodup (1103165) | more than 6 years ago | (#20675851)

On the Free Gamer forums there is a "FOSS games targetting users with lower end hardware?" discussion and one of the members insisted that games have crappy art/gfx/snd because the dev-tools suck.. Sorry sofar, I'm pretty clueless, and don't understand: do you want library independence or, the contrary + the game written in high-level? Which tools *do* you want for a game development?

Re:Here's what is wrong - sucky tookits (1)

tepples (727027) | more than 6 years ago | (#20675939)

one of the members insisted that games have crappy art/gfx/snd because the dev-tools suck.. Sorry sofar, I'm pretty clueless, and don't understand: do you want library independence or, the contrary + the game written in high-level?
Whether or not the program is written in a static language compiled to native code, a static language compiled to a virtual machine, or a more dynamic language, has 0 to do with art/gfx/snd. What we need are some design documents for what would constitute good tools to develop art/gfx/snd, beyond just "GIMP and Audacity".

Re:Here's what is wrong - sucky tookits (1)

Nasarius (593729) | more than 6 years ago | (#20675901)

I'm with you on Java and funky build tools, but what exactly do you have against C++ and Python? They happen to be the tools with which many successful commercial games have been written, and are quite nifty when used properly. What's the last major 3D game that was written in C?

My ideal toolset is something like OGRE + OpenAL + Bullet or ODE: wrapped up in a small, fast, C++ core with a stable Python API. Lay down some sane code style rules, and you can write the vast majority of a complex game in Python. Unless you're doing serious CPU-heavy simulation stuff, rapid development (ie, no compiles) is worth a bit of overhead.

Re:Here's what is wrong - sucky tookits (0)

Anonymous Coward | more than 6 years ago | (#20676137)

I've noticed that a lot of the FUD with C++ is just that, FUD. It is a sign of a crappy game designer that they want to go for it without the glorious object-oriented paradigm. Games are full of objects; C++ creates objects at the language level (you can do OO in C, but it takes serious discipline). Do I see a logical conclusion?

Re:Here's what is wrong - sucky tookits (1)

SimHacker (180785) | more than 6 years ago | (#20679033)

You can do OO in C++ too, but it takes even more serious discipline than doing OO in C.

-Don

Re:Here's what is wrong - sucky tookits (0)

Antony.Muss (1152597) | more than 6 years ago | (#20676653)

Uh, isn't Java generally at least a few times faster than Python?

Re:Here's what is wrong - sucky tookits (0)

Anonymous Coward | more than 6 years ago | (#20677035)

Python 2.5, especially with Psyco, is roughly comparable to Java. But that's not the point -- the point of Python is usually for a scripting engine, and a prototyping language. (I.E., you write it in Python for quick dev, then rewrite the speed-critical parts in C or C++, which can be dropped straight in with very little effort, whereas linking Java code up to C or C++ code is a bit more... involved.

Re:Here's what is wrong - sucky tookits (1)

mcvos (645701) | more than 6 years ago | (#20681965)

Python 2.5, especially with Psyco, is roughly comparable to Java.

Really? Then Python is almost as fast as C++. Java 1.5 isn't anywhere near as slow as it was in the 1.1 days. A well-written Java 1.5 program is only about 10% slower than a well-written C++ program.

linking Java code up to C or C++ code is a bit more... involved.

No argument there. If you choose Java, you basically have to do everything in Java or Java-interpreted script languages. Python with C/C++ libraries looks like a natural fit for games. Java is all-round, and a decent choice if you want to do everything in the same high-level language. Python + C/C++ means you use high-level Python for the high-level programming, and high-performance code for those places where performance matters. Because appart from that 10%, there's also the fact that not every JVM speaks equally well to every 3D graphics card. If you want to get the most out of your 3D hardware accelleration, using your own (or optimized by others) C/C++ libraries mean you get every last bit out of it in your favourite OS. Trusting the abstraction of a JVM means it works everywhere, but you have no control over how well it works with your graphics card.

Re:Here's what is wrong - sucky tookits (4, Insightful)

grumbel (592662) | more than 6 years ago | (#20676331)

All thus buzz over toolkits, lack of graphics and stuff... its pointless. Those are not the problems of Free Software games, sure, they can annoy, but they also would be pretty easy to fix. They are not what makes a project succeed or not. The game design that is *BY FAR* the biggest issue. It is the lack of a team, the lack of a vision and the lack of basically everything that makes a game a game instead of just little graphic tech demo.

If you for example look at a MMORPGs, we almost had it already back then in seven years ago with WorldForge:Acorn. It might not have been the best looking MMORPG ever, it might have not been the best code base, but it was there and running. In seven years of time you would expect that it would have expanded, got polished and all that stuff. Nope, didn't happen, UClient (the 2D client running Acorn) got ditched and WorldForge seems to be toying around in 3D now. I don't really know and don't really care what they are doing right now. They simply haven't managed to get a game done in all those years even so all the bits and pieces where already there and that is simply sad. They simply don't seem to know what they actually want to accomplish. Know maybe the will come out with a playable game one day, but I kind of have given up hope.

Its really that simple, most people simply prefer to toy around instead of deliver a finished game and most 'teams' are horrible unorganized in that *nobody* knows what they are actually trying to accomplish, everybody is just pulling their strings, all in different directions and going nowhere in the end.

People always say that ideas are cheap and handle them as basically worthless, but from my experience its exactly what the Free Software world lacks. People with good ideas, who know what they want and who have the will to drive a team to accomplish that goal from start to finish.

Re:Here's what is wrong - sucky tookits (2, Insightful)

LunarCrisis (966179) | more than 6 years ago | (#20677475)

People with good ideas, who know what they want and who have the will to drive a team to accomplish that goal from start to finish.
The other solution, of course, is to work on smaller ideas so that it takes fewer people less time to complete. Some of my favourite games could be (or where) written by a single person in some form, for example Geometry Wars or rRootage.

Re:Here's what is wrong - sucky tookits (1)

vrmlguy (120854) | more than 6 years ago | (#20678831)

In seven years of time you would expect that it would have expanded, got polished and all that stuff. Nope, didn't happen
Amen, brother! Have you ever heard of Todd McFarlane or and Eric Larsen? Back when Image Comics got started, most of the founders preached these grandiose ideas about what they would be doing with their new company. McFarlane stood out by saying that his plan was to get an issue of Spawn out every month, on time, period. And he did. If you look at Image now, only two of the original comics survive, Spawn and Savage Dragon. They were the only ones not plagued by missed schedules and late shipments. Woody Allen once remarked that 80 percent of success is showing up on time. I wish more OSS developers would take that advice.

Re:Here's what is wrong - sucky tookits (1)

SwordsmanLuke (1083699) | more than 6 years ago | (#20682777)

Dammit, I just used my last mod point.

I agree completely. Follow through is the single most important thing you can have as a creator, regardless of your medium. In regards to game development, the real trick is finishing a project before you start the next one. It doesn't matter if you have a vision in which the One True Game is laid out before you. Finish your current project, within it's original scope first.


Anyone of a certain level of intelligence can learn to write code. The real test is whether or not you can actually make the game you set out to make.

Re:Here's what is wrong - sucky tookits (0)

Anonymous Coward | more than 6 years ago | (#20676459)

What exactly makes C sane compared to C++ when in comes to game programming? In the last years nearly every game company switched to C++ (even id software) and so far I still haven't heard of stories where the companies regretted that and plan to switch back. Also Java is at least already used successfully in a MMORPG (runescape).

Oh well, you will need to donate a lot of money anyway before you'll get that ;-)

Re:Here's what is wrong - sucky tookits (1)

goose-incarnated (1145029) | more than 6 years ago | (#20678657)

What exactly makes C sane compared to C++ when in comes to game programming?


Not specifically for games programming, but for long-lived toolkits.

For example, lets say that we implement a toolkit for NPC behaviour. If we implement it in C we get certain benefits that will not be available with C++:
1. It will be portable to more platforms
2. It can be distributed in binary system libs (.so, .dll)
3. It can be used from almost any programming language

For #1 above, sure C++ is almost as portable as C, but C still cannot be beat. For #2, it is certainly possible to ship C++ written .so or .dll files, but then they are limited to only the functionality provided by C anyway. For #3, bear in mind that this is a *toolkit*; you want every language to be able to interface to this - last I checked, very few languages could interface to C++ classes or templates.

If I wanted to write my game in gcl, I would not be able to call C++ code, although I could call C code. The same goes for many other Lisp dialects/implementations, scripted languages and other compiled languages. (Hell, even *C* cannot call C++ libraries!)

In order to expose your toolkit to the largest number of users it needs to be in exposed via C.

Re:Here's what is wrong - sucky tookits (1)

everphilski (877346) | more than 6 years ago | (#20680007)

1 is a non-issue, really. I've written tons of code (graphics and simulation, OpenGL/C++/STL, plus some open source packages) using a good portion of the STL and haven't run into problems on either Windows or Linux. No #pragma's, no #ifdef WIN32. And you aren't limited by #2 to C funcionality but you have to provide appropriate interfaces to the programming language in question - so yes, if you are talking C, you have to be careful how you construct classes and provide wrappers for templates.

You can easily interface with Java, Python, Lua, any .NET language (if that's your cup of tea), and many others. Yes, C can access C++ code and classes if you are a good programmer and (1) careful in the initial coding and (2) provide wrappers for templates. (I've done this before, applying modern c++ libraries to c code almost as old as I am :) )

Finally, I can't speak for GCL but there are Lisp implementations that can handle c++ calls fine, for example, ECL.

I've never understood the problem people have with c++.

Re:Here's what is wrong - sucky tookits (0)

Anonymous Coward | more than 6 years ago | (#20681535)

I've never understood the problem people have with c++.


i think the clue to your understanding is in the your post:

1 is a non-issue, really. I've written tons of code (graphics and simulation, OpenGL/C++/STL, plus some open source packages) using a good portion of the STL and haven't run into problems on either Windows or Linux. No #pragma's, no #ifdef WIN32. And you aren't limited by #2 to C funcionality but you have to provide appropriate interfaces to the programming language in question - so yes, if you are talking C, you have to be careful how you construct classes and provide wrappers for templates.

You can easily interface with Java, Python, Lua, any .NET language (if that's your cup of tea), and many others. Yes, C can access C++ code and classes if you are a good programmer and (1) careful in the initial coding and (2) provide wrappers for templates. (I've done this before, applying modern c++ libraries to c code almost as old as I am :) )


the practices you mentioned, would a typical hack or code-monkey have any inclination in applying them?

Re:[AC]Here's what is wrong - sucky tookits (1)

everphilski (877346) | more than 6 years ago | (#20681797)

the practices you mentioned, would a typical hack or code-monkey have any inclination in applying them?

Granted, and such a person would run into problems in any programming language, which is what I was trying to say. The results might not be as insidious, but the problems would still exist.

Re:Here's what is wrong - sucky tookits (1)

goose-incarnated (1145029) | more than 6 years ago | (#20693335)

1 is a non-issue, really. I've written tons of code (graphics and simulation, OpenGL/C++/STL, plus some open source packages) using a good portion of the STL and haven't run into problems on either Windows or Linux. No #pragma's, no #ifdef WIN32. And you aren't limited by #2 to C funcionality but you have to provide appropriate interfaces to the programming language in question - so yes, if you are talking C, you have to be careful how you construct classes and provide wrappers for templates. You can easily interface with Java, Python, Lua, any .NET language (if that's your cup of tea), and many others. Yes, C can access C++ code and classes if you are a good programmer and (1) careful in the initial coding and (2) provide wrappers for templates. (I've done this before, applying modern c++ libraries to c code almost as old as I am :) )
I'm not even sure where to begin ... Can you provide a small example in C accessing the following C++ code:

template <class T> add (T first, T second)
{
return first + second;
}
How about accessing class members? Classes with multiple-inheritance, getting the construction/destruction correct? Classes that overide operators? Hell, you cannot even access plain functions (as C++ implementations do rather complex name-mangling) without implementations providing some help, nevermind accessing overloaded functions.

The sad fact is, if you are writing a toolkit, then it must be accessible to as many different language implementations as possible. Currently, C is the lowest common denominator - every language has bindings to C purely because every (non-niche) OS is written in C. Any language that needs to run on the OS needs to call OS routines, hence they need to have an interface to C-written code.

Like you, I have also written much cross-platform code, a lot of which was written in C++; however I have also written quite a lot embedded code and I have to say the C++ support is not as uniform as you seem to think it is.

(ps. I was not aware that ecl provided bindings to C++; the ecl documentation does not mention anything other than C and I've never been able to get ecl to access C++ code. Could you perhaps elaborate?)

Re:Here's what is wrong - sucky tookits (0)

Anonymous Coward | more than 6 years ago | (#20700965)

1 is a non-issue, really. I've written tons of code (graphics and simulation, OpenGL/C++/STL, plus some open source packages) using a good portion of the STL and haven't run into problems on either Windows or Linux. No #pragma's, no #ifdef WIN32. And you aren't limited by #2 to C funcionality but you have to provide appropriate interfaces to the programming language in question - so yes, if you are talking C, you have to be careful how you construct classes and provide wrappers for templates. You can easily interface with Java, Python, Lua, any .NET language (if that's your cup of tea), and many others. Yes, C can access C++ code and classes if you are a good programmer and (1) careful in the initial coding and (2) provide wrappers for templates. (I've done this before, applying modern c++ libraries to c code almost as old as I am :) )

I'm not even sure where to begin ... Can you provide a small example in C accessing the following C++ code:

template <class T> T add (T first, T second)
{
    return first + second;
}


extern "C" char add_char(char t) { return add(t); }
extern "C" short add_char(short t) { return add(t); }
extern "C" int add_int(int t) { return add(t); }
extern "C" float add_float(float t) { return add(t); }

etc, etc...like he said ( and you quoted), provide appropriate interfaces

Re:Here's what is wrong - sucky tookits (1)

CuteAlien (415982) | more than 6 years ago | (#20681191)

The question was what makes C more sane for *game programming*.

1. Portability is simply not an issue here. Which plattform suitable for games does not have a modern c++ compiler (speak: gcc)? Embedded platforms and very old workstation plattforms are really not much of a concern when it comes to games :-)

2. and 3. Yeah well, this are valid concerns if you want to make very general libs. But we were talking about a game - not about a library. And when doing a large project like a mmorpg (which is very large!) I would miss C++ features like templates and sane inheritance too much to abondon it.

C++ is just suited very well for game programming. C++ with an additional good script language (good beeing mostly defined as "scripts can be debugged") on top of it is even better imho.

Here's what is wrong -Hoover tookits (0)

Anonymous Coward | more than 6 years ago | (#20676583)

"I would donate plenty of money to anyone who picks a sane tookit to develop a 3D MMORPG that *encourages* development (no python, no boost, no java, plain autotools, C, no c++, SDL+GL, gtk+, no wx). Bring it on."

Nebula [radonlabs.de] is a good basis for a game.

Re:Here's what is wrong -Hoover tookits (0)

Anonymous Coward | more than 6 years ago | (#20676659)

Ts,ts ... he wanted no C++ and no Python and as Nebula2 is currently Windows only I rather doubt it's using autotools ;-)

Re:Here's what is wrong -Hoover tookits (1)

qubodup (1103165) | more than 6 years ago | (#20676671)

Seems to be windows only, are you joking?

Re:Here's what is wrong -Hoover tookits (0)

Anonymous Coward | more than 6 years ago | (#20680417)

Gee, you all bothered to click the link. But you didn't notice the part about being multi-platform. Look on the right-side for links to the sourceforge site. You can handle it from there.

Re:Here's what is wrong -Hoover tookits (1)

CuteAlien (415982) | more than 6 years ago | (#20680773)

I did notice that part. But if you check current sources you will notice that while Nebula 1 was multi-platform, the newer version are no longer, but Windows only.

Re:Here's what is wrong - sucky tookits (1)

Jartan (219704) | more than 6 years ago | (#20676853)

I would donate plenty of money to anyone who picks a sane tookit to develop a 3D MMORPG that *encourages* development (no python, no boost, no java, plain autotools, C, no c++, SDL+GL, gtk+, no wx). Bring it on.


Wait what? You started off good but then you said "no c++". The large majority of the game industry uses c++. I can understand arguments trying to say c is better or some such but certainly c++ is a "sane" choice.

Re:Here's what is wrong - sucky tookits (1)

andi75 (84413) | more than 6 years ago | (#20678225)

I can comment a bit on the C/C++ matter. For any long term software project (i.e. not of the write-once-then-forget-quickly) software maintainability is the most important factor from a coding perspective. Also, on almost any long term software project, there's bound to be some crappy programmers getting their grubby hands on the beautiful code, making a total mess of things.

If all they have is the C language, they can do some damage (stray pointers leading to some heap corruption, spaghetti code etc.), but it's really not that bad. It's nothing you can't refactor in a day, or in bad cases a week (e.g. if they get to write more then a few thousands lines of code before someone steps in and whacks them).

However, given a powerful tool like the C++ (ever compared Stroustrup's book to K&R?) the possibilities to wreck havoc are endless. And sometimes you don't notice how bad it is until it's too late, and it takes ages to sort through that mess of templates, multiple inheritances, virtual functions etc.etc.etc.

C++ can be very useful if you have tight control on the project, can enforce interface guidelines, coding style etc. etc. but in an almost "free-for-all" OSS project, it's just too dangerous to use.

Re:Here's what is wrong - sucky tookits (1)

everphilski (877346) | more than 6 years ago | (#20680053)

ever compared Stroustrup's book to K&R

Yup, but Stroustrup also covers the STL.

C++ can be very useful if you have tight control on the project, can enforce interface guidelines, coding style etc. etc. but in an almost "free-for-all" OSS project, it's just too dangerous to use.

Then why do so many open source project use it? OpenSceneGraph, Qt (and virtually all of the gui toolkits), ... look on Freshmeat, C++ code is after C, and very competitive with Java. Yes, C++ takes some time to learn and code well, but all rewarding things in life take an investment of time and energy...

Re:Here's what is wrong - sucky tookits (1)

andi75 (84413) | more than 6 years ago | (#20680237)

You mention OpenSceneGraph and Qt, which exactly proves my point. Qt is (or was, I haven't checked) entirely controlled by a single company, Trolltech, and OpenSceneGraph was basically a one-man show for years.

Now try a collaborative project, like Crystalspace. I have observed the project for about 5 years, and the C++ induced complexity made me cry.

Re:Here's what is wrong - sucky tookits (1)

everphilski (877346) | more than 6 years ago | (#20680471)

OSG is a far cry from a one-man project, at least over the last three years I've been on the mailing list...

My point with Qt is, that, there are many projects using it, despite the fact it was written in c++. KDE, for example.

Re:Here's what is wrong - sucky tookits (1)

Chris_Jefferson (581445) | more than 6 years ago | (#20678361)

You might donate plenty of money, but would you program?

I don't write games professionally, but I know a lot of people who do. I can tell you C++ is all over the place, as is boost. In particular, boost provides an implementation of TR1 which you can use on any compiler. Also off the top of my head, Eve (which is almost a 3D MMORPG) uses Python and seems successful for it, so I'm suprised you are so against it.

Also, using plain autotools? I assume you'd want this game to run on windows, seeing as that is the biggest market. Well then plain autotools isn't going to get you anywhere.

I have no idea why you want gtk+ but no wx, but I can't believe your favourite widget set makes that much difference. I do know wx has better windows support.

Re:Here's what is wrong - sucky tookits (1)

sofar (317980) | more than 6 years ago | (#20698817)

I have no idea why you want gtk+ but no wx

there's a native gtk+ implementation for windows, and pretty much any platform

the wx toolkit is extremely unstable. try compiling wx applications on a slightly-different distribution. remember the unicode mess? While the idea of wxwindows was good (portability), the implementation is horrible, and only suitable for binary-form distributions. Anyone doing development (i.e. compile) on Wx will get hung on the spaghetti of build requirements. The latest WxWindows often breaks compile of applications, and vice-versa.

Re:Here's what is wrong - sucky tookits (1)

kalirion (728907) | more than 6 years ago | (#20679907)

Java gaming? maybe, sure it is cross platform, but your app is horribly VM limited and performance will sucky no matter how you tweak.

What are you talking about? Haven't you heard that Quake II, written in Java, can run flawlessly on a machine that's a mere 5 times more powerful than the the original required? And any day now we'll have the hardware to run a Java version of Quake III! What more do you want?

Re:Here's what is wrong - sucky tookits (1)

mcvos (645701) | more than 6 years ago | (#20682167)

Java gaming? maybe, sure it is cross platform, but your app is horribly VM limited and performance will sucky no matter how you tweak.

Depends on what you want. The very excellent game Puzzle Pirates [puzzlepirates.com] uses Java Webstart. But if you want the most advanced pixel shading stuff in your game, Java is not for you. Although in that case, perhaps Open Source development isn't for you either.

Re:Here's what is wrong - sucky tookits (0)

Anonymous Coward | more than 6 years ago | (#20683475)

How about the Shadowrun: Awakened [awakenedmmo.org] project? It's a 3D MMORPG, uses C#, and the popular XNA toolkit. While the change to XNA requires a focus on Windows, it *is* open source [sourceforge.net] .

Yes! Let's ignore 10 years of progress! (1)

SanityInAnarchy (655584) | more than 6 years ago | (#20687091)

Java gaming? maybe, sure it is cross platform, but your app is horribly VM limited and performance will sucky no matter how you tweak.

Java itself is open source, so you can tweak it if you have a problem.

Besides, this has been discussed to death, and I seem to remember the conclusion is that Java can be fast, and that most of the reasons people don't like it for game development are purely academic. For example, complaining about a "stop-the-world" garbage collector -- I believe newer VMs use a generational gc, and even if they didn't, it's still not a significant impact -- it's stopping the world for less than a frame.

frozen-bubble keeps getting revived but in the end is not compileable with newer versions of SDL_perl.

So what's wrong with using an old version?

the better the toolkit, the longer lived the project - look at the old quake engines...

Yeah, let's go back to Quake, where they had to invent their own fucking C! Or maybe something like Unreal Tournament, which, to its latest version, has developed its own embedded scripting language.

The thing is, you're talking about reinventing the wheel for no apparent reason, and you seem to have arbitrarily selected which toolkits a project should use, and which it shouldn't. Yes, scons will be the death of the project! (Except it's just a build system, and Make isn't that good.)

Yeah, let's throw out Python and develop our own scripting language instead! Or better, use straight C!

I just love tracking down memory leaks. Let's do our own memory management, for no reason!

But, conversely, let's use GTK+ instead of rolling our own UI entirely in GL!

Look, I realize there are toolkits out there that suck. But that's no reason to throw the idea of a toolkit out, and just go with as bare-bones as you can get. And frankly, I'd be much more encouraged to develop a game that, say, embedded Python -- a game where I could actually have an eval loop when I hit tilde, and control much of the game from there.

What about the real message of the post? (0)

Anonymous Coward | more than 6 years ago | (#20694189)

There is a nice effort going on the mentioned site (freegamer) and forum to unite the creative power of open source game development. Many new project could be created if a solid free licensed media library can be put together at such a place so that people with ideas are not left without the help of a community and precreated resources. It is just building up there by creative people who want to share their free game media, ideas and creative power.
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>