It would be nice for each player to be able to select the style for his/her own
tank (select it from the main menu, and store the info in the .bzflag file??).
This means the server would have to inform all players about the tank style (no
big deal -- just a minor change). It also means that each client would need to
have all of the possible tank models in the data directory. That's the one
advantage of having it compiled in -- you always know that the tank is there! So,
here's my thought: keep the compiled tank in there, and make this the default.
Let each user select a tank. If that tank model does not exist on a particular
client, it defaults to this compiled-in version, but failing in that you suddenly
have a variety of different tanks on the battlefield! A VERY cool feature that
many other video games (quake, tribes, etc) now have!
As far as implementing this goes, there would probably have to be a well-defined
structure for BZFlag tanks inside the Inventor/VRML file. You couldn't just stick
whatever nodes you want in there, because then your tank wouldn't have levels of
detail, wouldn't explode correctly, etc.
Also, how would the different teams work? Inside the model would be a Material
node (or the equivalent if you do not use VRML or Inventor) which would contain
the information about the tank's color. Obviously you wouldn't want to make 5
different versions of each tank, with only the color changing from version to
version. So you would probably have to identify a particular node as the default
material, so that when the importer reached this node, it would use the Team Color
instead of whatever value was in there. Other nodes could have other materials
and other colors, but any polygon using this material would instead use the proper
color for the team.
Or something like that. :-)
Nafees: I'm extremely curious how you handled some of these issues, and I really
would like to try out what you've done. Could you either post it on the site, or
at least mail the patch directly to me so I can try it out??