foreword
overview
the current state of affairs
techne and friends
new modes of production
the bottom line
contribute
back

Foreword

This text turned out longer than expected so a foreword is in order. What it tries to describe is an idea about a community-funded game development project but as this probably sounds like a cheap scheme to profit out of free software please consider reading the full text for the rationale behind it. If, like me, you're of a limited attention span you can get a glimpse out of where we are now here, and where we're trying to go here but it'd be best if you would just continue reading.

Overview

Several years back I started to write some sort of game. I'm not sure any more if I had any particular type in mind but it didn't turn out as planned. Nothing ever does. As the complexity of the venture started to build up and become evident it became equally evident that this complexity is common among whole classes of games. It would be a shame to waste all that effort on a single one. After all there's always something more important than any one thing: it is the means of producing this thing. You might find many of the free applications you use every day very useful but they all were made possible due to the GNU C compiler and assorted tools. These were very special kinds of programs in that they allowed the production of more software. They were means of production and for the first time in human history they were free and accessible to all.

Perhaps more of interest to the production of games is the case of the Quake engines. These were as well, although to a lesser extent productions systems, since they allowed a certain degree of modification and customization. More importantly this process didn't require any sort of "serious" programming so it was accessible to more people. The projects spawned by the community are numerous and some are impressive but are also, necessarily, limited in scope. Once the engines started to become available under free licenses more radical modifications could be undertaken and as a result some of the most sophisticated free games in existence today are derived from the Quake 3 engine in one way or another.

The current state of affairs

The problem is that, read the other way around, the last statement seems to imply that there are no high quality games in the free software world today apart from certain cases that originated from proprietarily produced software. And indeed it looks like this is the case, with few exceptions, and this is not limited to games either. In fact when one encounters a large free project today chances are he's going to discover that it is either an ex-proprietary project turned free, a free project backed by corporate funding in some way or an academic project. And this is great in a way. As in any progressive movement it is crucial for the free software movement to infiltrate the existing infrastructure and it has been very successful in doing so, with immense benefits. It would be very hard to gain wide-spread acceptance and make such quick progress otherwise.

The downside is that this also inevitably ties us to the proprietary world. In many areas of software development the free world is far behind and it seems that the only way to move forward is to convince corporations that there's money to be made by moving in to fill the gap. This is one way to go that would probably benefit the movement in the long run but it imposes limits: what's being produced depends not on what our needs are but instead on where the most profit is to be made. And even then the product will probably be to a large extent proprietary which, apart from simply being unethical, forbids any further development. A product in the end is meant to be consumed and that's all we're supposed to do with it. There are exceptions to this but they are sadly but not surprisingly only exceptions.

It's therefore important to find ways of taking matters into our own hands. The first step has been taken in freeing the means of production. Using these nevertheless requires two things: skill and time. This is of course universally the case but software production tends to be very complicated and this make things even worse. And as it happens, one can have both skill and time only unfortunately not at the same time. At least that's what I discovered. There's plenty of time when one is a student (even if it means never attending classes) but it's hard to be particularly skilled when you've been programming for a couple of years only. As soon as some degree of skill is achieved you're forced into the real world and time becomes a scarce resource.

Techne and friends

I spent most of my time in university programming what would much later be called Techne. I can't really remember how many times I had to start from scratch as, obviously, my experience hardly allowed me to understand what I was getting into, let alone plan ahead for it but when after a couple of years it was ready to be put to use it was also time to find a job. Surprisingly things went better than expected. With half of my day wasted I could still use some part of the rest to write a couple of games for Techne, namely Billiards and Airrace and develop Techne itself on the side as well. This was only possible thanks to the time spent in making the production system first. After some years passed without producing any end-product at all it was surprising how little had to be added to Techne in order to make a couple of games and how little effort had to be put into making them. It often makes me wonder what could be accomplished if more time was available because I can think of svereral kinds of games, currently not available as free software that could be made with Techne more or less as it is now but even maintaining what I already have means that I have to spend most of the day in front of a computer.

Apart from the fact that this is starting to become annoying it also poses a dilemma. I have to decide whether I must dedicate my efforts towards making products or further developing Techne itself. It is becoming increasingly apparent that both are not an option any more. Although Techne takes care of much of the hard part needed to make a good game, namely shading and physics, the rest, although relatively easy seems to take just as much time. Developing and debugging the GUIs with all their stupid complications and the rules and logic of a game may not require much mathematics or physics and computationally-intensive algorithms but it is probably just as time-consuming if not more so. This is probably evident in both Billiards and Airrace. Although I consider them decent enough in terms of graphical and physical fidelity, if you take into account that most of the art was created by a programmer in as little time as possible, they still lack in the areas that make a game out of a simulation. It didn't come as a surprise therefore that I've had relatively little feedback from Billiards, which has been around for more than a year now from actual gamers but have instead been contacted by a couple of parties with academic research in mind. It even has a reference in a paper as far as I know.

The decision is nevertheless hard to make. End products, no matter if they're games, educational software or anything Techne could be used for, are important not only because they're lacking in the free software world but because applications are needed in order to drive Techne itself forward. On the other hand my main interest lies with Techne itself which I consider more important in the same way that a cow is more important than a glass of milk. And in the end, as daytime jobs are becoming more and more demanding it is becoming doubtful whether there will be time to spend in any of the two options in the end. A way has to be found to resolve this.

New modes of production

There's the usual free software practice of trying to draw more people into your project but I've put off attempting it until now. In the end that's the sole purpose of Techne anyway: to allow other people to create real-time animations, be it for games, art or eduction, and without having to be experienced programmers. Nevertheless I've always felt that Techne was not mature enough for others to use and in some respects it is definitely so. There's no manual and with the features it has accumulated by now it would require at least a couple of months of full-time work to put one together and developing an application for it still requires some knowledge of the core of Techne itself. For the core there's even less documentation and it would be even more difficult to write it. I hardly remember how some of the stuff in there works myself. Besides I've always doubted the availability of people with the necessary expertise. In order to gain it they'd have to be professionals or tied up in a project of their own. Still if anyone's interested I'd be very glad to hear about it. It might be one way out of this after all.

There have been some interesting developments recently. Things are starting to turn another way. If we consider one case of high quality free software, namely the modeler Blender which has been of much use to me, we'll see that although it seems to fall into the categories described previously it is not entirely so. Although it did emerge out of a proprietary tool things did not follow the traditional route. A fairly large sum had to be raised by the community in order to release Blender under the GPL and once this was achieved (in as much as seven weeks) the Blender Foundation was then in charge of further developing Blender. Funded by the community it managed to create what are probably the first free movie projects with spectacular results. There are of course other, probably more important socially sponsored projects in existence but Blender should be one of the first concerning software development.

This makes me think that perhaps it would be interesting to perform an experiment. Instead of waiting around for companies to take interest and lay an egg we can then hope to hatch, it might be possible to do away with the first step altogether. Techne may not be ready for prime-time yet but it's enough for Aviation to work which has most of the technology needed for a flight simulation game. Airrace is meant to showcase this and you're welcome to try it out for yourselves. It can handle a huge geographic expanse, about 600 square kilometers with the current dataset and it has a very flexible atmospheric effects rendering module and a configurable flight model. The latter is pretty realistic in that it features most of the effects that make flying an aircraft challenging but without having to worry about what several dozens of buttons on the dashboard do. It's meant to be used for games but serious, challenging games you can become good at, not the kind you master in a few days and spend the rest of the time working through the various missions after which you lose all interest.

The bottom line

My next project, codenamed Project Warbirds until I come up with a proper name, will be a multiplayer combat flight simulator with WW2 era aircraft. I've picked the subject because there seems to be a shortage in this area in the free world. The excellent Flightgear project does not cover combat scenarios and the only other similar project I'm aware of, Thunder&Lightning, although very interesting, seems to be more or less abandoned by its developer due to the reasons I mentioned above. The technology needed for this project is 80% ready. The only features that have to be added are basically an aircraft damage model, some smoke and fire effects which are essentially already implemented but need tweaking and networking support. The latter may be tricky. Apart from that we also need a few new models of different types of aircraft. And then there is the gameplay itself.

I was thinking of doing the same thing I've done with Billiards and Airrace, namely implement the core technology and release it for other to pick up and develop. With the core working the rest is pretty easy since it doesn't require much programming experience or in-depth understanding of mathematics and physics. This practice has proven somewhat successful. It has allowed me to write three applications for Techne instead of focusing on just one and also to develop Techne itself much quicker. No real games have come out of it though as the gameplay in all is quite rudimentary and most important of all, networking for multiplayer matches which I've started adding to Techne had to be suspended. There just isn't enough time.

I'm therefore proposing the following: I'm starting a fund-raising campaign with the purpose of allowing me to work on this project full-time. The original idea was to quit my job if enough funds could be raised to sustain me for a certain period of time, say a year although the game should take far less that that time to become playable. Still the devil is in the details which include documentation, thorough debugging and different game modes and these take time as well. Anyway I'm currently unemployed now so the plan can be simplified. If enough funds can be raised I'll continue working for as much time as possible on the game full-time. The goal will be networked gameplay and various modes such as duels, dogfights and bomber escort missions. I'm very open to suggestions of course, these are just some preliminary thoughts. If funding goes better than expected everything apart from the minimum I need for myself will be directed towards hiring other people fore side tasks. This may include artists and web-developers for the game GUI and pages. If funding fails I'll just create the core technology as I've done until now and move on to the next project. This is the only alternative if Techne is to be developed further. I just hope temporal restrictions will allow at least that.

That's more or less it. There probably are a lot of details to be filled in but this will be done as we go along. I'm treading very unfamiliar ground here so this is necessary. Donations will be accepted through Paypal initially. Ideas and comments are very welcome but please take the time to sign up on the Aviation-devel mailing list and discuss it there. It would be best if all discussion be concentrated at a single point and be public.

I don't expect this experiment to actually work. I don't have much campaigning experience and am therefore probably doing this entirely wrong. Nevertheless it is interesting. Even if I don't manage to pull this off someone else may and I think that there's a lot of potential in such modes of production of free software. It's what it's all about in the end: software from the community for the community.

Contribute

You can contribute to my project by using the buttons below. Contribution amounts shouldn't be large, the goal is for this to become a community-funded project, not backed by a handful of sponsors. You can either choose the amount you'd like to contribute below or choose Other and fill in the exact amount once you've click on the Donate button.

5€ 10€ 15€ Other