Linux.com
Everything Linux and Open Source
Interview: Developing Open Source games
What Open Source projects exist? What are their goals? How are they financed? What are the common pitfalls of developing Open Source games? These questions have many answers depending on who you ask, and it's an enormous task to evaluate the current situation for Open Source games. So, to help me out, I took a quick glance at current projects and humbly asked two developers currently working on Open Source games to answer a few questions
The projects I selected were EgoBoo and FreeCraft, Open Source implementations of two very popular game types; MUD (Multi User Dungeon) and RTS (Real Time Strategy). There are tons of excellent Open Source implementations of other game types, but these two are my personal favorites.
EgoBoo is a MUD game with good-looking 3D graphics. It has a mission engine and networking is underway.
FreeCraft is an RTS game currently without good graphics, although the idea is that you can use this engine
together with your custom graphics and sounds or from your purchased copy of the popular game WarCraft II.
The developers were
Benjamin Bishop from the EgoBoo-project and Lutz Sammer (aka Johns) from the FreeCraft-project.
Question: How come you got involved in game development?
- Ben:
-
It's interesting. My brother wrote all of the original code for EgoBoo
during his last year at college. At one point he got burned out and was
ready to just erase the whole thing (he was planning to market the game
in the traditional way). I convinced him that it would be better to
Open Source it.
At this point the code was Direct3D (windows) only. So I realized that we would need to do some heavy porting. I started a project on SourceForge.net (Open Source projects on-line for free) and some very good people helped get the thing ported. The code now runs on Linux/Windows/Mac using SDL/OpenGL. (thanks Loki)
(authors note: Loki Games specialized in porting games to Linux, libSDL was a direct result of their efforts, while OpenGL is an industry standard for computer graphics.)
(another note from the author: Loki Games has ceased to exist due to a bankruptcy.)
- Johns:
- I like playing games and starting with my first system, I have written games.
- Ben:
-
When I'm not working on EgoBoo, I moonlight as a computer science
professor. So, that probably answers your question :)
My brother and I have been working with computers since shortly after we could read.
- Johns:
- Yes. I have started with a 6502 circuit board over the TRS 80, C64, Amiga to the current PC's.
- Ben:
- I like original games. We get lots and lots of the Same Old Crap from the big game companies. You tend to find much more creativity in indy and Open Source games. I've probably wasted much more time on NetHack and NeTrek than on any pay games.
- Johns:
- RTS. (Real Time Strategy)
- Ben:
- From what I've played of FreeCiv, I think this should be the model that Open Source games aspire to. The graphics are well done and it looks very polished.
- Johns:
- Dark Reign I for it's AI and StarCraft for its story and gameplay.
- Ben:
-
I love Open Source software, but I think external help is really needed
to make it work. People have suggested a patronage model where nice rich
folks give $$$ to thank/help the poor starving Open Source programmers.
I really wish the user community would consider this more.
- Johns:
- If I can choose, I always take the Open Source software. Open Source is good for customers. A problem is that for many no good Open Source alternative exists.
- Ben:
-
Well, there are a number of things you need to think about. The most
important is your motivation for doing the project. Game projects are
pretty involved. You aren't going to get it done in one night (no matter
how much coffee you drink). So, you need some strong motivation to keep
you going.
One good motivation is to help you find a future job. Making a very good quality Open Source game gives you tons of exposure. We have had a number of publishers ask us about distributing EgoBoo and/or future games. Who knows, maybe you will get a call from Carmack.
(authors note: John Carmack, co-founder of and main developer at Id Software. According to many, John Carmack is a game development guru and has brought gaming to a new level many times.)
The other motivation is to do it for the "good of mankind." Maybe a game wouldn't fall into this category, but I'm sure you could make it if you rationalize hard enough.
One serious problem from what I've seen is getting artists to work on game projects. These guys don't tend to be the Open Source types. If you are a programmer cooking up a game project with no art skills, know when and where to look for help. You might be able to get some art students to do work as a project. Or even (gasp!) pay them. You might even convince them that they should do it for job exposure.
- Johns:
-
Pro:
Games can be supported and grow over a long time scale. See StarCraft, which is a very good game, but the consumers must wait for StarCraft II, for new features and enhancements.
Con:
No good artists are working for Open Source projects.
- Ben:
- Yeah, open standards are nice. We are using Ogg in our next big project along with SDL/OpenGL.
- Johns:
- Yes, we use open file formats and codecs (PNG, OGG, FLAC, ZLIB).
- Ben:
- Well, this isn't exactly an answer to your question, but it's related. I think we could solve a lot of stuff by implementing some simple open hardware standards. I suggested at a SIGGRAPH panel a while back that 3d card vendors agree on a common subset of features and a unified way to access this. I don't care if each vendor has their own way to do motion blur (who cares about this anyway) but they really should agree on the basics like rendering triangles etc... This would be a tremendous boost to portability and stability.
- Johns:
- If I see it correct, there are currently no good open video codecs. Smacker or MPEG4 would be fine, if we can use them free.
- Ben:
-
Well, the biggest problem here is inter-operability. We haven't been
clobbered by this one since we only really have to interact with
video/sound/network. However, I can see some applications where it
really is important (office clones for example).
I think the way to address this is to get the ACM to call for standards similar to what the IEEE does for hardware. In fact, support of these standards could be rolled into any settlement in any market dominating monopoly legal case.
- Johns:
- I don't use any closed standards. I can only speak about how I see it. Closed standards have normally better performance and lesser stability, but who needs better performance with the current memory and CPU prices?
- Ben:
-
I think the publishers have nothing to worry about in terms of users
copying OSS games. The fact is that users copy traditional games as
well, if a user wants a copy, he or she is just going to make it without
regard to the license.
One real potential problem however, is another company could just grab the CD and start selling copies at an undercut price. There are some ways to get around this however.
- Develop OSS for consoles. Other companies could be prevented from undercutting you if the console maker imposed restrictions on other "authorized developers".
- Cut a deal with the big retail chains that they will only distribute your version of the software.
- Figure out how Red Hat does it.
- Johns:
-
There are many ways:
- It is possible to sell the content (graphic/sounds/music/story) for money. An engine is only an expensive part of a complete game.
- If the content is also free, it is possible to sell CD/DVD's with regular updates and printed handbook.
- Merchandise.
- Charge for server service, multiplayer games need server services which are very expensive.
- Find an advertising sponsor.
- Magazines can use it as adjunct.
- Ben:
-
I used to play traditional text MUDs back in college. Its amazing how
addictive these games were (especially considering the technology behind
them). As best as I can tell, this was due to the fact that the users
actually participated in the game design. Now that is a really important
point. You have a huge number of users, think of all the depth that
they can add to the game.
I think that is one great opportunity for online Open Source games to surpass the commercial ones. It will just take a really solid engine, good/easy to use in-game tools, and enough data to make the game fun to play from the start.
- Johns:
- Open and free standards means lesser costs. Open things can be better used and adapted for [each player's] own needs.
- Ben:
-
I think Id is doing as much as they can. They are really a progressive
company. After say 2 years what point is there in any game company
keeping the code locked up? By releasing it, game companies should be
realizing that they get lots of free hype and goodwill. It seems like
most of the big companies are too short-sighted to realize this.
One major debt that we all owe to Id is for their support of OpenGL. If not for that, D3D could very well be the only game in town.
- Johns:
- It is a good thing for the customer. But they didn't use the advantage of Open Source for new development.
- Ben:
-
You are right. This is a very real problem. I see the root of this as
being a couple things.
- Microsoft is pushing non-portable standards at developers. From experience, complicated D3D -> OpenGL ports are not fun! We really do need to push for open standards here (see ACM tirade above).
- I read an analysis of the game market. It was claiming that windows had the lion share and Mac and Linux each owned about 3%. This analysis was claiming that the Mac market was more profitable (presumably because Linux users think they should have free - as in beer - software). Linux users need to get out of this philosophy. Think of the great classical composers that wouldn't have been able to do any work if not for their patrons. Open Source game developers should be listening to the guys that have scanned canceled checks of their donations on their web pages.
- Johns:
- Better (faster) and more stable 3D video driver support. And support for a high resolution timer ~1ms (exporting jiffy to user space would be enough). Some standard for insert CD/DVD and play. A good game should never need to be installed.
- Ben:
- If I made a console, it would be simple enough that it didn't need a traditional operating system.
- Johns:
-
Linux, stable and costs nothing.
(authors note: Linux also utilizes a kernel design that makes it very adaptable to new hardware that requires direct access.)
- Ben:
-
Well, first off, EgoBoo isn't really a MUD (at least not yet). It did
support networking in its early non-portable form (the code is still out
there). However, that was broken in the port. Any volunteers to fix it?
;) Even in that case, EgoBoo was geared to the LAN party kind of game.
Dealing with Internet scale lag would be tricky.
However, EgoBoo does have a lot of nice things:- It is 3d with nice graphics
- It is Open Source
- It has originality
- Multiplayer on one machine
- Ben:
- Three kingdoms text mud of course! :) (I was "melf" by the way)
- Ben:
-
I think this is a funny question. I've played Ultima Online in the past
(I was one of those guys who returned my copy for a refund). I think the
only thing we would have a hard time challenging is their marketing.
Making a game of this kind poses some interesting problems for Open Source people. Consider how much it would cost for the bandwidth to your server. How many Open Source developers are willing to foot that bill? One idea that my bro and I have been vigorously kicking around has been the idea of a peer-to-peer sort of thing. The game data would then be mirrored over multiple user machines. This idea is nice because it eliminates the need for the T3 to your house. We would still need a meta server, but we can handle really small amounts of bandwidth like that. Wonder if SourceForge.net would be willing to run a multi-meta-server for OSS.
There is a game idea that my brother and I have been kicking around for some time. We don't have time to implement it right now, but it would make a great Open Source MUD. It would be simple enough that a good programmer could actually finish it, and it would have the nice qualities of a good MUD. The idea is basically for a side scrolling war game (think scorched earth) that is extended to include a lot of multiplayer elements. Players would pop into an online circular 2d world with perhaps 16+ players at a time. It would be similar to a realtime strategy with unit production and experience. Some interesting things you could do is have units carry over from one match to another, salvaging units, have unique/special units and perhaps later user contributed units. One big advantage of this kind of game is that since its 2d, the artwork required is not very heavy.
Anyone who wants to do this kind of game is welcome to use our stuff as long as the end result is GPL'd. We have some concept art (that could probably be just scanned for in-game art) at http://www.cs.uga.edu/~bishop/tank.jpg If you are serious about developing this further, contact me and I can give some more ideas and maybe help.
(authors note: Ultima Online is classified as one of the most popular MUDs ever with around 225,000 subscribers)
- Johns:
- Yes.
- Johns:
-
I have avoided using Blizzard and the game name (WarCraft) in any context to avoid
any lawsuits. If Blizzard would have asked me to port it to Linux, I would
have done it for free.
(authors note: I believe that most game developers could have their games ported to Linux for free, no charge, by enthusiasts if only they used open standards)
- Johns:
- Knowing the problems in advance. There is the endian problem, the word align problem and the word size problem. Than define an own mid level API, never use the low level direct. In FreeCraft I use my own API, which can use libSDL as one possible back end. Thanks to SDL we are very platform independent.
- Johns:
- You must see the timescale, the time it was developed, games was written in assembler (I think) and uses many low level tricks, to get good speed. The PC hardware was and is very game unfriendly.
- Ben:
-
How about one decent naval game?
How about physically realistic modeling? Remember how much fun it was to blow things up with the dwarf in myth? We need to get Id or the Unreal guys to do rigid body dynamics in their next game. Forget motion blur, we want rigid bodies! Heck, thats one other opportunity for OSS games to get ahead of the mainstream. Can somebody implement an Open Source physics library similar to Havok?
If you don't know what I'm talking about, here is an example: http://www.havok.com/movies/fracture.avi.
- Johns:
- A million sold GPL games.
-
My goal was not to make a clone of the original game. I knew that I'm able
to write a RTS game, but I knew that I was not able to make the graphics
and that it is hard to find any artists.
I have spoken to some friends, who does commercial graphics and all told me, that I wouldn't find anybody. So I have chosen a commercial package, which formats was well documented ('clean-room' reverse engineering, here in Germany even reverse engineering is not forbidden). Than I started writing, but I always tried to have an engine, which allows to make any RTS game, but this isn't proven.
And after 4 years of development, we still have not much and good free graphics and sounds.
While NetHack, and similar games, may work for the most dedicated MUD:ers, most of us want fancy graphics, music and sound effects
comparable to those we see/hear in movies.
There is a fundamental lack of artists to provide Open Source games with this.
If you are a talented artist who wants to get involved, please have look at SourceForge
and the games/entertainment section. There is
well over 4,000 projects waiting for your contribution.