Sunday, January 4, 2009

HOWTO Contribute to Cube and the Community

I was attracted to the Cube Engine for two reasons; the awesome freestyle editor, and the open source code. This is not unlike many other people who discover this amazing technology and decide they want to do something with it, and like them I attempted to do this in the open source "spirit" by attempting to contribute back to the core project; Sauerbraten. Now, this came as a shock to me when I finally figured it out, but although the Cube Engines are indeed released as open source so that they are free as in beer - the project itself is not run accepting contributions from every developer that comes along. This project has tight control over what can and can't be done, there are rules which were set down a long time ago which results in the compact engine you see today.

As I did when I first came along, there are would-be contributors that would like to see a certain ("advanced") feature in the engine, and attempt to create and share this with the developers. Unfortunately, in almost all cases what could be a good idea with good intention goes unwanted and unused, through no real fault of either the developers or the person trying to contribute. There is simply a miscommunication about how things are really done, and nobody explaining how to do it properly. Cube Engine and Cube Engine 2 (Sauerbraten/Eisenstern) is and always will be the property of Wouter "Aardappel" van Oortmerssen, he came up with the original idea, design, and goal of the project. To this day it adheres closely to that which it sets out to be, a simple and compact engine with fast and generic gameplay. Over the years the map format and rendering technology may have improved, but it remains one of the smallest engines with the largest range of useful features, plus the fact anyone can make a map sure is cool!

So, you may notice that when you do come upon the project and give a suggestion or contribute a patch, it will be passed over. Don't take offense, as the gameplay and feature set in Cube Engine 2 (Sauerbraten) is what it is, and won't be advancing any further as it already does everything it sets out to do. The future of advancements within the engine are in the projects that make use of it, and participate in a more open source collaborative atmosphere, as well as content for Sauerbraten such as maps, models, and textures. Like most gaming communities, we suffer from an abundance of code, with a severe lack of artists and content. Projects (not only in the Cube Engine communities) everywhere need more artists and people making content that allows the developers to present their respective games in a more polished manner; this is demonstrated in both AssaultCube and Blood Frontier, where the Total Conversion ends up looking alot better than the original because of a few dedicated people who give it heaps of tender loving care. The Cube Engines themselves though rarely live up to their true potential because of the limitations on development progress, which in turn scares off contributors.

So when you do come to the decision you want to help out, I'd just say stop and think about what you would really like to accomplish. If it's a gameplay or code feature, does Blood Frontier, AssaultCube, or Sandbox already do that, or would it suit them and you help them do it? If it's artwork or content, you simply need to decide which game suits the style you like, the variety between the different Cube Engine based games is diverse, so there should be something for most people's tastes. With all that said, there is more than just developing code and art when it comes to making awesome games which look and feel great. The community softwares that drive content sharing (like Quadropolis) suffers from a lack of web designers, as do other projects and their websites/communities, some may even have a lack of documentation or another barrier which stops new users from instantly liking it. Have a look around and see what could be better, then offer to fix it or provide a better alternative.

At the end of it all, when you've got something set in your mind and you want to see if you can go through with it, contact the respective project. If it has to do with the community, Blood Frontier, or Sauerbraten/Cube, both eihrul and myself (quin) are on IRC at all times, and within each channel there is usually someone who can answer your questions if one of us can't get to you straight away. As open source developers who spend the bulk of our time invested in making a better product for everyone else, IRC is our most reliable and effective form of communication. If you don't have an IRC client, you can always use a web interface like Mibbit.

I also keep a fresh and more elaborate list on the Blood Frontier Collaborate page, with pointers to stuff in the community, and be sure to check this blog for new project announcements, more people are realising what they can do with this engine every day. Hope this helps you get started, and in the right direction, there's something for everyone, even if they don't know it, so get started working with this great technology and community today!

0 comments: