SourceForge is proud to introduce our November Project of the Month, Rigs of Rods. Rigs of Rods is a soft body physics simulator, in which you can build vehicles, and drive them around, and crash them into each other, all in very realistic ways. I recently spoke with Thomas, who is one of the Rigs of Rods developers, and he explained a little bit to me about how all of this works, as well as how you can get involved in this project.
If you want to work on this project, join the conversation in the Rigs of Rods forum.
If you’d like to have your project featured on the SourceForge podcast, just drop me a note and we’ll schedule something.
Rich: How would you describe the concept of “soft body physics” to somebody that’s not familiar with it? What does that mean?
Thomas: There are two principle concepts on how physics work in games or simulations. One side is rigid body physics, and one side is soft body physics. Rigid body physics is an abstraction of an object of how it should behave, in a bigger approach. Like, you describe a car as a box with four wheels attached to it. This is usually the way that rigid body physics works. What we’re doing with soft body physics is we go one level deeper. We describe not how a car should behave, or how a box should behave. We describe how mass points behave, and interaction between those mass points.
Rich: Tell me a bit about the history of the game. How did you get involved doing this?
Thomas: The game itself started in 2005, I think. Pierre-Michel is the original author of that software. He had the idea of doing physics in games differently than it used to be in games. He thought he could do a better job then they were doing, and he started out with the idea, with the node/beam physics. And so it evolved, and it got quite a community around it, and I joined the project in 2007. In 2009, it got open sourced. So, lots of progress since then.
Rich: I was playing the game this morning, and I was impressed by how many vehicles there were, and the incredible level of detail of the individual vehicles. Do those come from the community, or are those all developed by the core team?
Thomas: All of the content that you can download – I think we have thousands of modifications for the game online – and all of those modifications are made by the community. We have currently 43,000 members in the forums. It’s quite hard to create a mod. It’s not that easy. But if you learn how to do it, Rigs of Rods can give you simulation details that not many other simulators can give you. So you can tune your car or your truck or your vehicle to the last bit you would like to. People really like to do that stuff and simulate how it would behave in real life. They love the amount of detail the physics gives them. This is why they give so much detail into creating the models.
Rich: I also spent some time this morning watching car crash videos on YouTube. There are lots of those, and, again, there, the level of detail is really impressive.
Thomas: The crash physics is something that evolves from the way we’re doing physics. Instead of doing rigid bodies, like – a car is a box – we do node/beams. Nodes are the mass points, and beams are the connections between. So, when you design a truck, it’s not like you start designing a truck. It’s more like you design a skeleton in the shape of a truck. And when it all comes together, you put on wheels – that are in the shape of a wheel. And when you start driving, it behaves like a truck. So, we don’t have any specific code in there for trucks or for cars, except for the wheel acceleration. The bonus of that is if you crash something like that against a wall, it will behave correctly. So the automobile industry has been using that idea for years – since the 1970s or something – to simulate car crashes, so that they don’t have to crash a real car. What we’re doing is a very simplified version of this concept. We’re doing the same thing with node pass points, just very simplified so it’s possible to run it in realtime, which is quite an effort to get working.
Rich: The actual physics that are behind the game … is it something that is fairly common in the gaming world now, or are most games of a much simpler physics model?
Thomas: We released the software in 2009 publicly, as a GPL project, and currently there’s no other games that use it to this level. There were some games that use the same concept, but not to the level where we’re doing it. The problem in the industry is that the industry always sticks to proven models and proven things. If you would like to introduce soft body physics in a game, you would have to prove that it’s working out, and you have to fit all these requirements. For example, if you develop a triple-A game, it should run on all consoles, and iPads, and whatever. So you have quite some barriers. Nowadays, almost all games use rigid body physics, because of the computing time. I always try to compare it with bottom-up and top-down physics – our physics is … we give you a sample of how to put mass points and connections between them, and it’s your problem if stuff is not working. In traditional games, you have a box, and some wheels, and the coder will then tune this box and wheels as long as the thing behaves as a truck or something you would like to have. What we’re doing is that we give people that create the vehicles the ability to create it on their own, so they have to fit to the simulator, not the other way around. So everything you see in there is realistically as much as it can get. If you would do it in real life with mass and values like that, it will behave like that exactly.
Rich: One of the features that you have introduced recently is the ability to play this multiplayer. Are there a lot of people playing this multiplayer, or is this still an experimental thing?
Thomas: Let me quickly look at the server table … yes, there are lots of players online right now, and there are lots of players playing this multiplayer. However, there are in the current version quite some problems playing multiplayer, like, you cannot collide, and things like that. So we’ll need to work more on the multiplayer part. What we have worked on in the last week was a user linking table, so that users could race in the terrains, and the races are then recorded in an online database, and you can collect points. We didn’t think that it would be used that much. But the people spent 417 hours doing 14,400 races on 2500 vehicles on 64 terrains. So, it’s quite used. And people fight about points. So it’s nice, and it adds some gameplay to the sandbox.
Rich: Before we started recording you mentioned … when we were chatting, that there still a lot to do. If someone wanted to become involved in your development community … two questions really. What is there that they could do, and secondly, what sort of skills would be necessary for them to become involved?
Thomas: Since Rigs of Rods is not using a game engine below, we are working on all areas – sound, networking, multiplayer, and graphics, obviously. So we have developers who are working specific parts like sound engine and 3D sound, or networking and then the multiplayer stuff. So we can feature every aspect a developer would like to work on. We have developers that are working just on the scripting part, and developers that are just very specifically working on some features in the game engine itself. Whatever you’re interested in, just tell us, and we can find some spot there. There’s lots of work left on all corners. There are thousands of bugs in there, and on the new version, 0.4, we have a new terrain system that isn’t working completely yet. So that needs a lot of work as well. So please contact us, and we’ll find a slot that’s available for work, and find what we can do.
Rich: You have a very international community with your project. Tell us something more about your translation effort. I see that you have dozens of different languages here that translations are available in. And I know that translation is always an area where many people can get involved even if they don’t have programming experience. So tell us how someone would get plugged in here.
Thomas: We have lots of people who apply to be a translator, and there is lots of translation work going on. We have 700 items that need to be translated per language. And, it’s very simple. You register on our website and apply as a translator. It’s a very simple process. The translation gets used when a user installs the software. So your work will directly influence everyone in the world. For example, we have people translating our software into Japanese, and I was very excited the first time I saw a screenshot with japanese characters on it. It’s awesome that people spend their time to create these translations in their own time.
Rich: When you do translations, I presume you’re using the standard .po files and …
Thomas: Yes, exactly, we use .po and .mo files. It’s the traditional approach, yes.
Rich: So someone who was doing translation for another project could very easily take several projects and do translation efforts on them.
Thomas: Yes. We have written a custom web interface because we would like to have the users translate stuff in a more multi-player fashion, and you can translate stuff directly online. But you can always download the .po file and translate offline and later upload it. It’s a custom web service, but … the online project management tools that were out there didn’t fit our requirements, so we wrote our own thing.
Rich: Once again, congratulations on this honor, and we look forward to seeing more things from your project in the future.
Thomas: Thank you very much, and thank you for the interview.