Archive for January, 2007

Doxygen Documentation and SVN Mailing List

Wednesday, January 31st, 2007

We have started generating Doxygen documentation for our code. You can find our the docs for our rewrite in the Protocce docs. We need to go through and document more of the code, but it is at least a start. I also generated Crown and Cutlass docs from the old code. That code isn’t documented, but Doxygen sure makes it easier to read code. If you are interested in checking out what we are doing in the rewrite or if you just want to laugh at our old code, check out those docs. Note that these are very much aimed at developers. At this point it does not make sense to write end-user documentation.

We also created a mailing list for SVN notifications. If you are interested in really keeping tabs on what we are doing, you can subscribe to it and receive emails whenever we check in code. While emails are sent out within a few seconds of the commit, it appears to take several hours for a message to get into the archive.

Ubuntu and Developers

Friday, January 26th, 2007

I’ve mentioned that I do not think Ubuntu is the most developer friendly distro out there. I think this bug is a pretty good example of what I’m talking about. I believe that is due to the fact that the Eclipse packages are from the “Universe” repository (non-official) and Debian did not update the package in time for Ubuntu’s release. However, the fact that they have a package combo that is known to be broken highlights some QA issues. Ubuntu 6.10 (Edgy Eft) was released in October of 2006. Both Eclipse 3.2 and CDT 3.1.0 were released in June of 2006. I don’t get how the team maintaining the packages had time to update the core Eclipse packages but not the CDT packages.

There is a fairly easy workaround. You just install the CDT from inside Eclipse. That works, but it means your CDT install is outside of the standard package management. It seems like in the three months since this glaring issue was reported, they could have released an update for the CDT package. I would say incompatible package versions that result in the package not working at all should be addressed in an update. I should note that I believe is already fixed in Feisty Fawn, but that is scheduled to be released in late April.

This issue (along with the fact that the Ogre packages in Feisty are still over a year old) is an example of why Ubuntu is not the ideal platform for developers. I could start maintaining some packages myself, but I currently have enough on my plate with just Crown and Cutlass itself. Also, since at least an updated CDT package exists for Feisty, it seems like it’s not a lack of a maintainer that’s preventing an update for Edgy. I guess it could just be that Ubuntu is aimed at my grandpa (who actually did just started using Ubuntu!) not me. Maybe it’s time to go back to Fedora…

More History

Tuesday, January 16th, 2007

This is a followup to David’s earlier post.

David and I were roommates in college so during his initial development of Crown and Cutlass, I was often the first tester of his new code. Generally that consisted of me sailing around and saying things like, “Where are the pirates? Why does the ship look so crappy? Why does your game suck so much?” Clearly very helpful.

Early on, I did a Windows port from David’s code because I wasn’t running Linux at the time. That was the beginning of any ideas about cross platform concerns. That has since become something that we’ve valued, although it’s often a hassle. I didn’t do any coding in those early days.

Once David setup the Sourceforge project, I became more involved. My initial interest was in the GUI system. At first, I wrote something of a custom solution, which for how simple it was, worked remarkably well. The problem was that it wasn’t reusable, so there ended up being lots of duplicate code, and it basically looked like crap. So we moved to Guichan, which did a nice job for the small things we asked of it. Since we’re doing a rewrite, and OGRE works so nicely with CEGUI, and Guichan is still in beta, we’re moving away from it.

David and I are often motivated by different things when it comes to C and C. David does things because it’s cool, and he’ll work for lots of hours to get the waves to look the way he’d like. I, on the other hand, want to have something to show for my work. I often focus on what will result from the work. I want a finished game that you can play, and while that’s David’s ultimate goal, he looks at the project as more of a sandbox where he can try out new ideas.

Because of the nature of a project like this, there may never be any final or finished version of Crown and Cutlass. And while in some ways, that’s disappointing, it also leaves room for lots of growth and experimentation, which is really exciting. As we go forward, it would be great if more people were able to become more involved in the project. We’ve setup a wiki (which is in disarray right now) to show our design decisions as well as what we’re working on. It’s a good way to see how the game and the new engine are setup. Since we’re doing a rewrite, the code is very new and not tested very well. Also there are many items on our to do list. So there is no better time to get into the code. If you’re interested check out the wiki and see if something interests you. Or check the Protocce code out of Sourceforge and build it. Run the unit tests and read the code to see how different systems work. If there’s something you’d like to work on, send David or me a note letting us know what your plan is. Then submit a patch.

I’m excited about the future of Crown and Cutlass. I hope lots of people become involved beyond just trying the game out. If you’re interested, or just want to chat, drop us a line: collin AT This Domain, or dthulson AT This Domain. Hope to hear from you soon.

MySQL AB and the GPL

Monday, January 15th, 2007

One of my coworkers recently brought up some questions about MySQL AB and its dual-licensing with the GPL. I am not a lawyer, but I consider myself something of a free-software nerd so I dug around a little to get an answer for him. As a result of looking around at what MySQL AB says about their licensing and the GPL, I have some concerns. I found what I believe is a misuse of the GPL, and I have decided that MySQL’s support is inadequate at best and perhaps even intentionally confusing in order to drive more people to the commercial version.

First off, I found this document describing the internal protocols used to talk to the MySQL server. They claim that because that doc is part of the GPL’d MySQL system, any project that uses the document to implement the MySQL protocol must be released under the GPL. Again, I am not a lawyer. However, I do not believe that is not a valid use of the GPL. I would say the document itself could be copyrighted. However, ideas can not be copyrighted, so I would argue that projects that use the ideas and information in the document (the protocol description) can not be forced to be released under the GPL. If I read a chemistry book, could the author attempt to tell me how I could license any products I produce using his description of the chemical reactions? Unless he has patented the content of the book, I don’t think he could. Why should MySQL AB be able to restrict how its description of the protocol is used?

I also have concerns about the support the MySQL team gave its users. A lot of developers using MySQL are unclear about whether they need to purchase a commercial license or if they can use it under the GPL. That’s understandable since licensing is a fairly complicated issue. MySQL AB set up a licensing forum for people to make inquiries and get answers about MySQL licenses. However, the answers there rarely seem to consist of more than “I don’t know, buy a license just to be safe”.

Here is one such response. A user is asking for MySQL AB to clarify their interpretation of the GPL, which seems reasonable to me. The “Community Relations Manager” tells the user that the only interpretation of the license that matters is the judges in a court case. While that is true, it is MySQL AB’s interpretation that would land the user in court. He concludes with this gem: “All I can say is that MySQL AB is not a litiguous company. We produce software, not court cases.” Perhaps some one finds that comforting, but if I had questions about how I was using MySQL I would not feel comforted by that. I might feel more comforted by some kind of guidance to the license though!

I also found this response. While this “Support Engineer” is more helpful, he tells this user that it is “Best not to wonder though. Just call sales, describe what you want to do and find out for certain.” Perhaps I am just cynical about sales people, but somehow I suspect that even if the sales team is adequately prepared to answer licensing issues, they would not give an entirely balanced view of whether a user should purchase their product or not. I might think that perhaps the “licensing” forum would be a better place for that question!

Finally, there are a whole slew of replies by the same guy along the lines of this forum sticky. I’m not entirely sure who Edwin DeSouza is, but it looks like he was the senior director of product management at some point. If I had posted a question in the licensing forum, I would find a response like that very frustrating. Why have a licensing forum at all if all you do is tell everyone to read your website, and call your sales team?

All in all, I am not impressed with MySQL AB. I have never had serious technical issues with MySQL. However, when there are plenty of alternatives with more straightforward licenses and, more importantly, stronger feature sets (e.g. PostgreSQL and Firebird), why bother with MySQL at all?

Annotated Commercial Game Contract

Friday, January 12th, 2007

Gamasutra has an article looking at a commercial game contract.  The contract is between Spark and Activision for the development of Call Of Duty: Finest Hour and it has been made public in a court case.

That is a really interesting article.  While $8.5 million sounds pretty good, I sure am glad we don’t have to deal with weekly progress reports and non-compete clauses for Crown and Cutlass!

Do we need an “Open Source Second Life”?

Monday, January 8th, 2007

Updated
Glyn Moody has an interesting post over on Linux Journal about Second Life. To which Techdirt responds.

The idea of an open source implementation of an MMO style world presents some interesting problems. One of the great things about the web is its decentralized nature. Why not an MMO-application in the same fashion (this is something that Moody gets into, as well as being discussed in the comments)? The users would host their characters, any sort of in world object they created, or even perhaps the land they own.

This is something that David and I have discussed in the past and while this isn’t a new idea, it does present some interesting problems. What appeals to us about the idea of a distributed MMO-application is that we don’t have to create content. To be honest, it’s not something we’re very good at (as is evidenced in most of our artwork…if the artwork is any good, we had nothing to do with it). This way, the users could create whatever experience they wanted and not be confined by our limited imaginations.

But what happens when someone is offline? Does that “land” disappear from the map? This could be handled in a very similar way to the way the web handles this kind of issue now. If the website you’re looking for is offline, that’s too bad. What about security? Once again, I think the web has a good system in place. The browser runs in something of a sandbox (as does the webserver). Also, you avoid shady e-commerce sites, and while these kind of places could exist in the virtual world, it would be easy enough to avoid. But what other security issues are there? I’m sure I’ve overlooked something.

What about currency? To be honest I’m not much of an online game player. I have never gotten into any sort of persistent online world so I’m not sure how it works in current implementations. But I assume you have a credit to your account which “The Company” tracks. When you spend money, the money is debited from your account, and if you mine gold, that is credited to your account. All you inventory would work the same way (if my imaginary scenario is correct). So let’s say we have a fully implemented distributed virtual world but with no standard currency. Ideally, “banks” would be created by users. These banks could create their own currency, or simply use real currency. When you visited an establishment (reputable, of course), they would need an account with the bank, and through an API supplied by the bank, you could transfer the appropriate funds to the owner of said reputable establishment. So essentially, instead of one company providing all the currency for the game, you could have a free market which anyone could enter with their own “banking” product. The same could be done for security/law enforcement. Who knows if that would work, but it’s interesting to think about.

If we ever finish with Crown and Cutlass, this may be a future project for us. This clearly shows how our motivation works. We do stuff if we don’t know how it works, or if it’s cool, or it peaks our interest.

Collin

Update (1/8/2007):

Linden Labs has announced that the client portion of Second Life has been released under the GPL. They liken the move to the release of the Mosaic browser in 1993. It’s great that Linden made this move, but it by no means fulfills what I describe above. Open sourcing the server software would go much further towards that goal. I certainly understand why this decision was made and don’t slight Linden for protecting their business model, but this is not the open source victory it may seem at first glance. Perhaps there will be some work done to create a compatible open source server for the viewer.

I am excited to look at the source code to see how things are structured. Going through our rewrite, we’ve often wondered how commercial games are setup, and this affords us the chance to see another example.

Some Quality Wii Time

Friday, January 5th, 2007

I’ve been delinquent in my Crown and Cutlass duties lately. David and I did get together earlier this week to flush out some issues with some new ideas we’ve been batting around.

But since then, I’ve become the proud owner of a Nintendo Wii. Lots has been written about people’s experience with the new console, so I won’t spend too much time going over my experience, but needless to say, I find the whole experience quite compelling. David and I can get carried away with our grandiose visions for Crown and Cutlass, so you can probably put the following into that category. I think that Crown and Cutlass could benefit from the Wii control system. Sword fighting would be the obvious immediate connection, but ship navigation could have an interesting implementation as well.

All that to say, I’m off to play more Wii, and dream about finishing Crown and Cutlass.