This interview has been translated to czech. This is the original version.
Tento rozhovor vyšel česky. Toto je originální verze.
Hi David, classical question for the start. Can you briefly introduce yourself to our czech readers, please? Tell us few basic information about yourself. Where are you from? How old are you? What is your job, your hobbies, etc.?
Well, I'm 25, married with a child on the way. I'm from Sydney, Australia originally, but now live in Dallas, Texas with my American wife. My current job is writing software which searches for low-priced air fares. Besides programming and other computer geekery, I like spending time with my wife and dogs, and being involved with my church.
How did you actually came to the programming of the PC's games? How old have you been that time?
Well, I've wanted to write some games for many years. In fact, I used to write simple games in BASIC when I was seven or eight. But I gave up on programming after that, because I didn't think I was good enough at it, and I didn't have a very good computer, so I found it frustrating.
When I was fifteen I decided to learn C -- a language which I had heard most games were written in. I learnt to program in C, and wrote a simple text-based adventure game. I didn't even know how to write header files, or even pass parameters to functions, so my entire game was in a single source file, with global variables used to communicate between functions. Really ugly stuff. :)
Next I wanted to learn how to program graphics. I didn't really understand why my book on C didn't explain this, since I considered it a fairly 'obvious' thing that anyone might want to do. I knew nothing about how different platforms have different APIs for graphics, and that a book on standard C couldn't possibly include documentation on that. After a few attempts, I grew frustrated, and decided that programming really wasn't for me after all. I gave up on things for another year or so, until my brother and a friend bought a new compiler -- Watcom C/C++ -- which we had heard was used to program many games.
I wanted to learn C++, but I couldn't afford a book on it, so having just gained access to the Internet, I learnt some of the basic principles off a website. I also learnt how to change video modes and access the frame buffer in DOS, so off I went, writing a platformer. I think technically it was pretty good for a 16 year old, though the gameplay design made the game rather boring.
My next game project was a simple overhead car game. The aim was to capture flags. A car would turn the flag to its colour by driving over it, and could carry one flag around at a time. This was probably my first game that was actually fun to play. I probably should have released it, but I never quite thought it was 'good enough' to do so. Instead, I bored of it, and once again I gave up on game development for more than a year.
Playing Civilization III, I thought that there were a number of game elements that could be improved, especially the AI. I made some brief, failed attempts at a civ-like game. Eventually I decided I needed something strategic, but simpler. I knew I was a good programmer by this stage -- having a degree in computer science and working as one -- so I reasoned if I chose a simple but fun game that I had enjoyed as a child, it should be technically easy for me to write a much better version with modern technology.
Two games that I remembered as fun were Warsong (also known as Langrisser) and Master of Monsters. They were both turn-based games with a fantasy theme. I considered Warsong to have a far better storyline, but Master of Monsters had a better combat system and gameplay. Further, I considered both of these games to have elements that have since been 'forgotten', and so my game would add genuine value in resurrecting gameplay values that I considered to be fun. Within a couple of weeks of development I released version 0.1 with horrible graphics but simple gameplay that was fun and worked. Within a few days, my first contributor, Francisco Munoz sent me some very good improvements to my graphics. The project was off and rolling.
What language does the Wesnoth use and what operating system it is based on?
Wesnoth is written in C++. When I started development I was mostly using GNU/Linux, but these days I mostly use Windows. It's not based on any particular operating system though -- it's written in portable C++, and uses libraries such as the Simple Directmedia Layer (SDL) which work on multiple operating systems. Because of this design it works on the three major platforms: Windows, GNU/Linux, and MacOSX. It also works on many other platforms, such as BSDs, Solaris, even Amiga.
However, I wanted to be able to develop Wesnoth quickly, using the latest technology and latest C++ features. Because of this I didn't spend much time focusing on things like minimizing the memory Wesnoth takes up, or trying to make it ultra-fast. This does limit its portability a little in that it is difficult to get working on systems with limited memory, particularly embedded systems. Some people have gotten it working on some PDAs though.
What made you to do the strategy game? What all did you need before you started on the Wesnoth? Did you have any experiences from before?
Hmm...I think this is answered in question 2. :)
Where your inspiration for the Wesnoth came from? Was there any historical game(s) which inspired you and if yes which one?
Master of Monsters and Warsong were the main ones -- both Genesis games. I wanted a game which was very simple -- just a few possible commands from the user -- but also rather deep. However, I didn't want to make a simple 'clone', so while Wesnoth takes some inspiration from these games it is in a different world, has different game rules, and many more features.
There are nearly two and half years gone from the begining of the Wesnoth. Can you tell us what is your role now in the " Wesnoth project"? What are you doing now?
Well, it's hard to contribute continuously to a project without getting 'burnt out'. These days I don't actually do as much work on it as I used to. Fortunately there are many developers who have arrived to shoulder the burden.
I do do some coding on it from time to time, but mostly I 'guide' controversial decisions, and give approval for big changes.
How many hours per day do you spend on the Wesnoth? Does your family understands your obligation on this? Don't they miss the time with you?
At the moment, not very much. When I first started the project I would work all day, then come home and do 3-4 hours work on it. On weekends I would spend 8+ hours on it. I wasn't married at that time -- it would be more difficult to do that now. :)
Later, when I moved to the US and got married, I couldn't work for about 8 months while the government approved my immigration. During this time my wife supported me, and I could spent 8+ hours a day on development.
Since I got a job, my time to work on it has been more limited, and it is difficult to work on a project intensely for a long period of time anyhow.
My wife has been very supportive though: she also enjoys playing Wesnoth with me from time to time.
Day by Day is the Wesnoth becoming known to more people all around the world. Do you remember when was the break point in this? Did you expect this game to become one of the most popular free games?
I think that we picked up alot of momentum early on, since Wesnoth had fun gameplay, and good graphics compared to other Free/Open Source games from early on. Since then it has continued to grow and grow. The addition of multiplayer has introduced the game to a new community of people who the single player game doesn't attract.
What does this success means to you?
Well, my aim and the aim of other developers has always been stated to be to make a game that I personally enjoy, and which the other developers enjoy. The biggest benefit of a wider group of people enjoying it is that there is a larger chance of people contributing content to the game, and making it even more enjoyable for us.
Of course, having a large number of people play something that I had a part in creating is rather gratifying in itself.
It is not long time ago when the new version 1.0 was released. What are the plans for the future? Are there any changes in the game planned or do you want to extend the game?
Since 1.0 we have split development into two branches. Some people want to play a stable, complete game. So we have the 'stable' branch which people can play and be assured a good, consistent, complete experience.
Other people want to develop new things, and experiment with some new rules, units, campaigns, and so forth. We have a development branch where we are implementing all sorts of cool new functionality: some rule changes, and lots of interface improvements such as better replays. We're even playing with making some aspects of the game scriptable using Python.
How many members has the team which work on the Wesnoth at this moment? Isn't it difficult to coordinate team like this especially when the members can be from all the different countries around the world?
The development team is very 'fluid'. There are some very core contributors who contribute many things, and then around this core there are other contributors who contribute all sorts of content, to varying degrees. Co-ordinating things can be very difficult -- one of the biggest problems is when contributors make valued contributions but in the 'chaos' of development they get overlooked and the contributors get understandably frustrated at this.
In short, it's difficult, but we manage.
Are you also working on other projects? If yes are they more commercial or not?
My only other project is the commercial project of my employer.
I'm playing Civilization IV at the moment, and they say that they will release a C++ SDK for it which allows one to write a custom AI. When that arrives I might play around with it and try to write a custom AI for Civ IV.
We can find out that there is much more commercial games comparing to the free opensource games. Why do you think this is happening? What do you think is the main problem which cause this?
I think that since commercial games are clearly dominant, it's natural for any different games model to have its quality compared to commercial games. I think this is mostly a reasonable thing to do.
One thing that has to be understood though is that comparisons should take into account a variety of factors. Too many comparisons focus on one area: graphics. No-doubt because it's the easiest thing to identify in a game -- one can make an assessment of a game's graphics without even playing it; simply by seeing screen shots.
Now commercial games focus heavily on graphics. Years of investment have gone into making better and better graphics, and the result is that any top-tier commercial game has to have a large team just to program and draw/model the graphics. Good graphics sell games, and so that is what production houses focus on.
Graphics are an important part of most computer games, however they are only one important part, and certainly not the most important part. Open Source games have very different production values. They focus on making a game that the developers will enjoy, rather than a game that will appeal enough to alot of people to put down a small amount of money for the game.
Open Source games will tend to focus on creating a deep and compelling experience for the people who make the game -- and perhaps for a niche set of other people (or perhaps even for very many other people). Generally when this is the aim, the graphics have to be decent enough to make the people playing enjoy the game, and be able to stare at those graphics alot, but they don't have to be stunningly beautiful raytraced scenes that look great the first time you see them, but dull the fiftieth time.
Now, at the moment few Open Source games even accomplish this -- to be truthful, there are only a handful of Open Source games that are much good at all. This is an unfortunate situation which hopefully will be rectified eventually. Hopefully.
What would you recommend to the Authors - beginners of the opensource games? Is there anything they should avoid? Where they should take the motivation from?
Don't do too much design. Don't try to make everything perfect. Release early. Release often. Never add new features while your program has high-severity bugs (crashes). Fix the bugs first.
Take motivation from being able to play your game quickly after development starts. Don't make a clone of a commercial game. Take inspiration from other games, especially ones that you think have gameplay features that are good, but have been unfairly ignored by the market, but add value in what you do.
What complications did you face regarding the Wesnoth? Where there any moments when you were ready to stop the development?
There have, of course, been many complications. Issues over copyright over some material. Problems with everyone wanting to add more and more features at times when we needed to release a stable version. It seems that when software is ready to be called 1.0 is still a matter of great debate. :) Personally I think projects should aim to get something complete and stable, but with a small feature set, quickly and release it as a stable 1.0.
Do you know any Czech projects or czech developer?
I can't name any off the top of my head.
We came to the end of our interview. Is there anything you would like to say to our reader?
I hope you enjoy playing Wesnoth. :)