Espiritolivre Online Magazine Interview
Created in April 2009 for Espiritolivre Online Magazine (from Brazil), you can find it in the web archive here (I think they disappeared meanwhile). Questions and answers are original text without changes.
Q 1: Who is Bernhard Wymann. Make a presentation to the readers of the magazine.
I was born 1971 in Bern, Switzerland, I have 3 older brothers (8, 10, and 11 years older). I lived a long time in Langenthal (a little village in the Kanton Bern). I can remember from my childhood that I liked "Lego" and "Matchbox" cars very much. With Lego my favored subject were space stations and space ships. Around ten or eleven years I got very interested in model aircraft and built some free flight gliders (without remote control).
Around this time the first "Computer" hit me, it was a HP33e pocket calculator. I found it somehow very exciting to enter the "moon landing" program and to play with it (you had to enter the 28 (?) step program each time when you switched on the calculator, because it had no persistent store). In school I was mostly interested in natural sciences, math, creative handy work and drawing.
Around 11 I had saved enough money to buy my first remote control and to build a remote controlled glider. At this time I joined the local model aircraft club to get support and access to the model aircraft airfield. I think this hobby had a huge influence in my life. With model aircraft mistakes lead to real damages and frustrations, so you can learn a lot from this hobby (there is no "restart" button...). You get with this hobby some social skills (in such a club you have very different members), you learn something about engineering and technology, you will improve your handy work skills, and the most important thing, you learn how to deal with yourself and frustrations/mistakes.
In 1984 destiny hit my family, my father died because of cerebral hemorrhage, apart from being tough for me I think it had as well a big influence on how I look at the world and the life. A bit later a brother of mine got a Commodore C64, I could use it and I read several books about it, did some simple programming in BASIC, Assembly, Pascal and Lisp. And I loved to play with it, it was pretty exciting when I created my first sprite and it moved smoothly from left to right:-)
Back to school: There was offered as well a free computer/programming class, which I joined, this was not very common at this time (we had some Digital machines with 5 1/4 disk drives, CPM and maybe 128k RAM). First I had a course in BASIC and later in Pascal.
With 16 I started my industrial education as mechanician. I was basically fed up with school at this time and there was no computer related industrial education available at this time in Switzerland. During this time I started to like school and studying again and decided to study mechanical engineering after the education. After finishing my industrial education in 1991 I had to do my basic military training (17 weeks, there was no real choice, back then you either served your country or you had to go to prison, it was a real crime with trial and criminal record if you refused your military duty... fortunately this has changed meanwhile).
In 1992 I started the studies of mechanical engineering at the FH Burgdorf (FH: university of applied sciences or polytechnic), which I finished in 1995. I never lost my enthusiasm regarding computers, so around 1994 I started to think about studying computer science on the Federal Institute of Technology (ETH Zürich). To apply at the ETH I had to pass an entry exam because of my untypical career (usually you apply on the ETH with a "general qualification for university entrance", which I didn't have). At this time I visited as well an IT exhibition (Orbit) where I bought my first SuSE CD, which just contained some ftp snapshots, including Slackware with a 0.99 kernel if I remember correct. This was my first conscious contact with GNU/Linux and Open Source in general (of course I used it for sure before without being aware of it like most people do, e.g mail, ftp or dns servers, etc.).
In 1995 and 1996 I prepared my ETH entry exam and worked for the FH Burgdorf, I continued the work of my diploma thesis (robotics) and helped to modernize the control engineering lab. In the summer of 1996 I passed the exam and started studying computer science on the ETH. Another milestone was in 1997 when I first had internet connectivity from home, whew:-)
In 1999 I had the first contact with TORCS, I was just searching for an application to try my 3dfx Voodoo Banshee with an experimental XFree86 3.99 with OpenGL support. Because I enjoyed racing games very much, I just searched the internet for an Open Source racing game, and hit TORCS 0.16 if I remember correct. I was really impressed, especially on the suspension behaviour on track dirt-2, so I began to play with it. After passing the second intermediate examination for a diploma in late 2000, I took a break from studying and joined Accenture for an e-commerce project with an insurer till the summer of 2001. You might hear a lot of jokes and complaints about Accenture in the industry, but I was really impressed how focused and organized the team worked (which was of course just a tiny part of a 100'000 people company, so I cannot speak for the rest). In this year I wrote as well my "berniw" TORCS robot and published it initially. I became a TORCS developer and did a lot of bug fixing and testing.
In fall 2001 I continued my studies and finished in late 2003. In my first semester thesis I ported Intimate Linux to a wearable device developed by the ETH in collaboration with the MIT, the "WearARM". The second semester thesis was about self collision-detection of deformable objects. I did an internship with Ergon AG in Zürich, the subject was to implement a remote procedure call stub generator based on model driven architecture, there I was impressed about their "Ergon Application Framework", it was really a nice piece of well engineered code.
After my studies I worked as subcontractor for Elsewhere-Entertainment, a little game studio in Belgium, Remi Coulom and I cross-licensed some "berniw" robot technology for an upcoming title and helped with the integration into their code base (you never heard of the game because it was canned, their publisher was 10tacle Studios, which had Simbin concurrently developing a similar game, so for the publisher it made no sense to publish both games). After my time as freelancer I was employed 2005 as senior software engineer with Logismata AG in Zurich, which develops software solutions for the financing industry (banks and insurers). Currently I am living in Zurich and work for Logismata.
Q 2: Tell us about the TORCS?
TORCS is an acronym for "The Open Racing Car Simulator". It is a highly portable multi platform car racing simulation. It is used as ordinary car racing game, as AI racing game and as research platform. It runs on Linux (x86, AMD64 and PPC), FreeBSD, MacOSX and Windows. The source code of TORCS is licensed under the GPL, the documentation under the FDL and the free artwork under the Free Art License (beware, e.g. the Rally Cars have non-free licenses).
Q 3: How the TORCS is innovative?
I would not call it innovative. What makes it unique is the simplicity of the code base, its stability and that it demands not much resources to run fluently. So basically a researcher can take it and after a few hours he/she can start modifying the source. The parts which you cannot find in commercial games are the AI competitions (www.berniw.org/trb) and the rich tool chain and documentation which is available (e.g. robot tutorial on berniw.org, track editor, etc.). There are as well some unique performance adjustments, like texture down-scaling which you cannot find in any other game.
TORCS has been used as base for certain research and education projects, I am aware of around 10 research projects which used TORCS as base, there are citations in several research papers.
Q 4: What are the main difficulties in develop a open source game and free distribution?
The main problem is that open source does not work for games in my humble opinion, let me explain why: A game is from its characteristic more like a movie, you consume it once for your entertainment and then you are done with it (I talk about the casual user, not about modders and people like me). If it crashes here and then it is just annoying, not more.
With infrastructure projects like kernels, servers (http, ftp), tools, etc. it is a totally different story, because these things cost enterprises money everyday when they are running suboptimal, that's the reason why it makes sense to share the investment, because they just are base components for bigger systems and solutions which must be rock solid and reliable.I could imagine that we see more game engines as open source, and game studios concentrate on content and some customized scripting/configuration/extension.
As open source game project leader you face an additional problem with legal issues, there are sometimes contributors which pop up with content which has been grabbed from dubious sources, so you really have to nail the people down to ensure that you do not release illegally stuff under free licenses. Before I became the project leader some risky content gets included into TORCS, but I work on replacing these things release for release (that is the reason why you will find less and less real car names etc. in TORCS). The content which is not free is clearly mentioned (e.g. the rally cars).
Another problem is that such a project attracts "the wrong people", e.g. some "genius gamers" or modders which mean to know more about the correct behaviour of racing cars than a mechanical engineer. Finding "the right" developers is hard as well, a lot of people are able to add quickly some features in a buggy/non-portable way, but finally I need people which really nail it down to perfection, otherwise it generates more work than if I would implement the feature by myself. Simply said, people are quickly up for the nice glorious tasks, but do not want to make the dirty work.
Library dependencies are a problem as well, because very often people blame TORCS when it crashes, but when you nail it down, it is almost always a bug in the dependencies, 3D or sound driver/API (no, I am not kidding, seriously).
Q 5: How the project is sustainable? There is financial donations to the project?
As long as somebody cares it goes forward, and if nobody cares anymore it does not matter. There are no financial donations. As you might know, you can opt in on sf.net for donations, but I did not do it so far (I use to joke and say I will opt in when we have 10'000'000 users). The problem is that when money comes in you have to distribute it in a fair way, and some legal issues arise (e.g. "fair use" does not apply anymore then, you have to organize the place where you pay the taxes, etc.). So I think the revenue worth the trouble would have to exceed 100'000€ per year, and this is just not realistic. The TORCS racing board is financed by me personally, it costs me about 500€ per year. Btw. a big "thank you" to sf.net for the hosting of our project.
Q 6: What is the minimum hardware to run TORCS?
This depends on the content which you use. If you take the graphically most demanding content with say 20 cars then you need a 2GHz machine with a good GeForce5xxx like card, if you take a simple track with just a few simple car models you might be happy with a 600MHz machine with a GeForce3 like card (of course you can take as well any other brand with good drivers, these are just concrete examples). So the range is from:
- 600 Mhz, 512MB RAM, GeForce3 with 64 MB RAM up to
- 2GHz, 1GB RAM, good GeForce5xxx with 256 MB RAM.
- The more the better of course, as usual...
Q 7: There is plans to launch versions for other operating systems or mobile?
No. I already played with the thought of porting it to the iPhone, but I dislike the App-store conditions, so at least I will not do it soon.
Q 8: TORCS can become a "Gran Turismo" or "Need for Speed" open source? This is the plan?
Definitively not. I think there is nothing wrong with those, if you want one of these go to the shop and buy it. There are some projects which are heading in this direction, namely 2 TORCS forks and VDrift. A word to "Need for Speed": I think public roads are a transport system, so you should really follow the rules/speed limits. Of course any driver thinks he is above average, but strictly speaking 98% of the drivers are total amateurs, so stop dreaming and think about the consequences when you are wrong...
"Need for Speed" is definitively the wrong message (except the "pro street" release). If you want to experience/enjoy the power of your car attend a safety instruction and visit the local race track. Roads should not be playgrounds of big kids.
Q 9: What are the main differences between the TORCS and other racing games?
It is very stable, modest on resources, runs on several platforms and is Open Source. Another very important difference is the available tool chain, the AI championship and the available documentation. A "secret feature" is that it is just so good that it is not too hard to create nicer content, I think this motivates people to give it a try by themselves.
Q 10: In the latest TORCS version, what's new? What's features?
TORCS 1.3.1 has several bug fixes, a lot of reworked/new content (cars and tracks). You find the full change log on www.torcs.org or in the README of the 1.3.1 package.
Q 11: What motivated you to create TORCS?
I did not initially create it, this were Eric Espié and Christophe Guionneau, you can find the start of the TORCS history here. I started as contributor and became the project leader in March 2005. My main contributions are robots, lots (several hundreds) of bug fixes, some features, artwork, installers, the current web page, documentation and the TRB, the TORCS racing board. Basically I think I turned a prototype into an installable and enjoyable product and pushed its popularity actively.
Q 12: Is there a feature you wanted to put in the game but was unable, for lack of cooperation or some other reason?
No, just lack of time. The only really limiting factor is 3D on open source systems. Because some hardware is really badly supported I do not use state of the art rendering, otherwise lots of people could not run TORCS with acceptable performance. I am not in the mood to have different rendering paths, I really want to keep it simple, otherwise you cannot reach a serious test coverage.
Q 13: How to create a game so good and so small?
You concentrate on the relevant things, e.g. you refuse to integrate support of rare hardware, I just officially support things which I can test by myself, otherwise I can never be sure that it really works.
Q 14: The open source games has future? What do you think about this?
It depends on what do you understand by future. I think there will be always people which "home-brew" games and will release it as open source as long as it is possible. Who knows, maybe the content industry manages some day to prevent this in a legal or technical way, e.g. if your hardware checks if the software is signed with a certain certificate to run it at all. We will see.
I think open source games will never be a great success (e.g. compared to the Sims or GTA), because for the gamer it does just not matter if it is open source and the main gaming platforms do not support this distribution model (e.g. you have to license expensive SDK's and to sign NDA's to create something).
Q 15: What is the secret of creating a good game?
No idea, I guess this question is more for Sid Meier, he can tell you. But one thing is for certain, the game has to run on the machine/os of the audience, otherwise people will not even know if your game is good or bad. That is why I am pretty conservative with addition of complexity and dependencies, if you have a great game which just runs for 2% of the potential audience you will lose badly. I see TORCS as kind of my "business card", so it has basically to work perfectly.
Q 16: Who wants to contribute to the project or have further information, what to do?
First find out if TORCS is the project where you want to contribute, depending on your goals there are better choices. If you want to contribute in any way, ensure that you understood the licensing, e.g. if you want to create a track you have to use existing TORCS textures or to create the textures by yourself, it is a "no go" to use content from other games (illegal). It is similar for cars, designs and trademarks, these things are usually protected by law, so you cannot use real logos, real names or real designs legally (of course you can create a similar cars, it should just not be too close to the original). If you want to code something, you should contact me directly via e-mail. You find a task list in the README file of the source distribution.
Q 17: Do you have other open source projects?
No, everything is related to TORCS and available in the CVS (TRB, robot tutorial, etc.)
Q 18: What is your opinion about the proprietary racing games with closed code?
Some of them are really great and I enjoy racing with these here and then.
Q 19: Who are the other people (the team) behind the game?
For the whole list review the credits page. The most important ones (more important than anyone else including me) are the initial creators, Eric Espié and Christophe Guionneau. My congratulations and respect for their work, it is a big difference between dreaming/talking or actually doing it.
Critical contributions came as well from Rémi Coulom, Christos Dimitrakakis, Charalampos Alexopoulos, Patrice Espié, Andrew Sumner, Eliam SpeedyChonChon, Olaf Sassnick, and more.
Basically you can never ever list all credits, otherwise we have to start at least with Isaac Newton, talking about the computing pioneers, and finally the creators of the tools and libraries we use to create TORCS. As Newton said: "If I have been able to see further, it is because I have stood on the shoulders of giants"
Q 20: What do you think about the community that was created around the game?
Sometimes I enjoy the people and sometimes they are annoying me:-) E.g. there are nice surprises like a talented contributor, good discussions, etc., on the other side there are goal conflicts which are not resolvable (e.g. complexity vs. maintainability/stability).
Q 21: What TORCS fans can expect the in future versions?
Apart from content updates, maintenance and little features there will be implemented the possibility of more interesting game sessions, e.g. where you can adjust your car setup in the training session or a pace car is sent out when an accident happened. This is the preparation for the most relevant feature, online gaming over the internet.
Q 22: Thank you for the opportunity! Leave a message for the readers of the magazine
You got your brain to think with it, so go for it. Do not believe in anything, use your brain to question, verify or falsify everything. So in the end you know what you do not know, this helps in becoming a tolerant and responsible human being.