A motorcycle simulation project
Hi all,
During christmas I began work on a motorcycle simulation project for Techne (http://www.nongnu.org/techne/) mainly to keep myself amused since I couldn't work on my other projects. A couple of months later the physics of the game are ready and it has worked so well that it's a shame not to release it and continue work on it.
Unlike all other motorcycle related games I've come across which are more arcade-style than realistic simulations this project (which is still lacking a name) is based on an academic paper which describes a state-of-the-art model of a 1000cc sportsbike including accurate tyre models. The result is pretty cool. The simulation displays all major effects known to riders like wobble, weave, drifts, wheelies, highsides, lowsider, tankslappers etc. The downside is that it's pretty hard to master although that could be considered as a good thing by some.
Unlike my other projects though (http://www.nongnu.org/aviation, http://www.nongnu.org/billiards) which looked ok with whatever art I could make myself or source from satellite imagery I'm having real trouble with this one so I was wondering if there are any free software/motorcycle fans out there wanting to participate. What's mostly needed are the following:
- One or more track meshes. These have to be modelled around a road mesh which is procedurally generated by the simulator. Righ now I have a road model for Laguna Seca Raceway (and a crappy scenery for it, see the videos at the end of the post).
- A bike model. Should be of a 1000cc sportsbike. Ideally the whole bike should be modelled but the front section with instruments etc. would be enough for a onboard-only view.
- A rider model perhaps. Can also be posponed if on-board view are used initially.
- Sound samples and wavetables for the engine, mechanical noise like gear shifts, wind, tyre sounds etc.
The game hasn't been released yet actually but it will be as soon as I've come up with a name for it. It'll be GPL licensed as are all my other projects. In the meantime you can see a couple of video sequences to get an idea here:
http://www.youtube.com/watch?v=1dtSJK2H5e4
http://www.youtube.com/watch?v=Mv4-0top6oI
Let me know if you're interested.
Dimitris P.
PS: If you're interested in participating in any of the other projects let me know as well. I can't possibly maintain them all so they're looking for loving parents to adopt them.
I might have a try at the instrument panel if that's enough to get you started. What all information would it need to display? Obviously a speedometer and a fuel gauge, but what else? Any specifications for polygon count, texture size, etc.?
It might also be worth noting that I've never actually ridden a motorcycle, but I can find plenty of references for how they look.
Hello John,
thanks for the offer to help out. Actually what the game most needs right now is a proper track. I mean the scenery as the road is already taken care of at least for one track. I don't mean that you have to do that of course I'm just making this comment since you talked about getting the project started.
Regarding the motorcycle model now which you're interested in trying to model. This would have a couple of uses: one is for external shots during replays and of course for other motorcycles on the track when the game supports multiplayer modes. This requires the whole motorcycle and the rider. The other is for an onboard view. Now assuming that you wouldn't want a bunch of plastic blocking most of your view the parts that will actually be visible from such an onboard camera would probably be the windscreen and part of the nose fairing, part of the instrument panel and maybe part of the top yoke. Its a little hard to be sure at what would be the bare minimum without trying it out and seeing what works best. You can get an idea from the infinity of videos available on YouTube such as this: http://www.youtube.com/watch?v=bKzsCI2o8gA. An even better one although not real-life is this one which seems to show what would be visible from a usuable on-board cam: http://www.youtube.com/watch?v=nGKXxEIOfcM. The instrument panel itself is actually pretty simple on modern race bikes and usually just includes an analogue RPM meter and a digital display. The physics model is based on data measured from a GSXR-1000 K1 bike so it would be best for the graphics to match but you can model anything in the same category if you find it more convenient. You can no doubt find countless reference images online.
I have no particular concerns about polygon count other of course than that it should ideally be kept as low as possible while maintaining decent quality. But there's no reason to keep it very low on the motorcycle given that it'll be in front of your face most of the time. It would probably make more sense to cut back on the scenery polys. You can maybe have a look around at the available games to see what they're doing.
Anyway, let me know what you think.
> One or more track meshes. These have to be modelled around a road mesh which is procedurally generated by the simulator.
Could you please expound upon this a little as I am unsure where to start, so you have a road mesh which is created randomly at run time, so what you are looking for are the bits and pieces that go around the outside of the track, such as barriers, grandstands and trees? Rather than actual road sections and things like chicanes?
Hello p0ss,
this is the situation. The most crucial part defining the behaviour of any vehicle is the interaction between the tyres and the ground. Accuracy in the determination of the contact point and local geometry is very important so if the road is modelled as a polygonal mesh the effect would be somewhat like trying to ride on a cobbstone paved street. Now some of the free simulators I've taken a look at seem to take that approach and then later augment the road with some sort of surface description to help out in smoothing the surface but I can only see that as a workaround. The road is therefore described as a set of segments with given (possibly varying) width, curvature, slope and bank. This description is used to calculate pretty (although not entirely) accurate local collision geometry and it can also be used to calculate a mesh. So I have a little script which can export a mesh into a format suitable for importing into Blender. The only problem is now to fill in the rest. This is the problem. Read on if you're interested in my (failed) approach to solving it.
Although I have some idea of how to use Blender, being a programmer I tried a different approach. I sampled the road height at regular intervals to create a heightfield for the road area and then used GRASS, a free GIS program (which I had used before for Aviation) to get it to fill in the blanks sort of with some interpolation method. This is needed in order to fill in missing data areas from sattelite elevation maps so there are specialised tools in GRASS for that. It worked pretty well as you can see in the videos but it just doesn't look like a track and it is also very difficult to align the resulting mesh (which is triangulated by Techne on the fly and with varying level of detail) with the road, make sure that the earth doesn't stick out of it, put additional features like builidings, tyre walls, curbs etc. and texture it properly. This is also evident in the videos. On the other hand I see something like this: http://www.youtube.com/watch?v=zn0nqvr-vuo which only uses 3000 polys and looks a lot better than what I get for the 10000 polys in my track mesh so I think I may need a different approach. On the other hand the technique might be useful in order to create a mesh for the surrounding terrain which can then be further edited in Blender so that's why I'm mentioning it.
I also use a second mesh which I take straight from a satellite elevation and imagery for some area (these are freely available and with great resolution, for the USA at least) to use as a background. There's a problem with hiding the seams between the local scenery and the more distant one but with proper use of occluding geometry such as trees it could work pretty well. This technique should be at least as good as the usual mountain range and sky wallpaper used in most cases. The sky is also taken care of by Techne and is procedurally generated according to sun position and atmospheric conditions. So what I ideally need is a detailed if possible model of the local scenery of the Laguna Seca Raceway or some typical track maybe and for which the road is already there (although it can easily be adjusted and regenerated if necessary). What I'll settle with is anything better than what I already have :). The pysics and gameplay work so well though that it'd be really great if we had some great graphics to match. It would be a game unique not only in the free but also in the proprietary world. At least as far as I know, most motorcycle racers are pretty unrealistic. They have to be if you're to drive a motorcycle with a keyboard or gamepad.