On the first day of sessions (Saturday), one of the sessions I attended was that of managing content in open source games. There was a previous session on open source games in general, which I will cover in a later post. A very important question in open source games is how we can develop games with high-quality content, but still manage artists who are not familiar with open source development procedures?
The folks from Battle for Wesnoth began talking about their problems in getting content for their game. Originally, they stated, they had a system that had fairly bad graphics. Over time, it has become a much more aesthetically appealing system, with animated sprites and high-quality artwork. Over time, they were able to find a good artist to place in the position of lead artist. The lead artist is the person who signs off on all the artwork in the game, whether it be textures, conceptual artwork, or sprites and animations.
One thing Battle for Wesnoth developers had to deal with is younger artists. They were able to get artwork from a number of teenagers, but this artwork was fairly low-quality, due to the lack of experience of the artists. So, at times, it was necessary to just tell people that their artwork wasn't of the quality necessary in Battle for Wesnoth. On the other hand, they admitted that they accepted artwork from a number of artists who weren't initially very good, but improved over time.
Worldforge is another project that had representatives present in this session. Worldforge isn't exactly a game, really, but rather an open source world-building application. The requirements for this application are incredibly massive, and a method is needed for developing a method of accepting, rating, and storing assets. The representatives from Worldforge stated that they have begun building an application that takes assets from artists, and stores and presents it for evaluation from an administrator. Ideally, it would be nice to have a system that can rank assets, present it for approval to an administrator, then if approved, commit it to the asset version control system. The application they presented is called Wombat, and they are asking for help from open source developers to evaluate and improve this application.
BZFlag also spoke about their asset-management system. A primary problem they encounter is that artists don't understand licensing. One of the things they had to place into their application was an option for "I stole this" for artists submitting content.
One of the things that I find more difficult about content in games is finding artists. I realize that expecting artists to commit assets into an svn server is probably not going to work, but how does one come upon artists to begin with? I think this is a very important question, as both groups brought up the idea that artists aren't as familiar with open source software development as computer scientists are. Thus, they aren't as exposed to the different groups as we are, and don't have any idea that they can get experience with an open source software group. Some of the questions that I have are, "How can we advertise in a more effective method, to minimize budget constraints, to get artists more interested in our projects?", "How can we keep artists around, once they've developed a single piece of artwork?", "How can we help improve a mediocre artists' skills?", and "How can we express to an artist what we need done, and have them actually do the necessary work, rather than what they want to do?".
More pictures and posts to come!
So, I just got back to Roseville from Mountain View, CA. It was pretty nice there, so it's not quite so wonderful to return to 34 degree (F) weather here in Minnesota, but home is home, and I'm glad to be back.
It was a great trip. It was my first time attending the mentor summit (as this is the first time I was a mentor for gsoc), and I had a great time. I learned a ton, and had the opportunity to meet a large number of very interesting people. In addition, I learned quite a bit about open source management, as well as game development in general. I intend to share all of these things with you over the next few days, but I need to get some sleep right now, so I will leave you with the next best thing: pictures! (more to come, I promise)
So - back to work on COLLADA conversion. I'm still reworking the 3d surface triangulation algorithm I originally wrote last summer, but with all the changes to the rendermanager and such, I've mostly been getting caught up with setting up a good testing environment. In order to isolate and identify bugs in the code I wrote, I am attempting to visualize the 3D surface triangulation using a csSimpleRenderMesh. So, once triangulated, the csTriangleMesh is converted to a csSimpleRenderMesh, and then visualized. I am having difficulty right now trying to visualize this. I can't seem to get the csSimpleRenderMesh to appear on the screen. Part of the situation was in getting the render manager set up and working, but now that seems to be finished.
I have the following code setup to perform the rendering of what (I believe) is a simple triangle:
// we want to draw result
verts.Set (0, 0, 0);
verts.Set (10.0, 0, 0);
verts.Set(0, 10.0, 0);
cols.Set(1.0, 0.0, 0.0, 1.0);
cols.Set(1.0, 0.0, 0.0, 1.0);
cols.Set(1.0, 0.0, 0.0, 1.0);
rendMesh.vertices = verts;
rendMesh.vertexCount = 3;
rendMesh.colors = cols;
rendMesh.meshtype = CS_MESHTYPE_TRIANGLES;
alf.alphaType = alf.alphaSmooth;
alf.autoAlphaMode = false;
rendMesh.alphaType = alf;
g3d->BeginDraw(engine->GetBeginDrawFlags() | CSDRAW_3DGRAPHICS);
However, all I get is a black screen. I should say that a bit ago, I got a black screen. Now, I added the line
view->Draw() and get a segfault. This was due (in part) to the rendermanager not being set correctly. This problem has been corrected, but I am rebuilding the Crystal Space core library at the moment, as I was previously getting a number of weird errors with walktest. Walktest displayed, but not like it did previously, without the new rendermanager code in the trunk. The level seems to be full of errors now. I thought perhaps it could be my platform, along with some weirdness in incremental linking with the msvc compiler, so I am rebuilding things just to be sure. Once this is complete, I will see if the new 3D triangulation test visualization works.