This wiki is archived and useful information is being migrated to the main bzflag.org website

CrystalSpace client

From BZFlagWiki
Revision as of 20:01, 19 February 2007 by Jujibo (Talk | contribs) (Enumerate TODO list)

Jump to: navigation, search

An ongoing effort is to provide bzflag with a crystalspace client.

The version is very experimental and it is compatible with the 2.0 version. It will be only available via CVS, you can get it using the branch v2_0_cs_branch.

In the current status, the client is playable, but has less functionalities than the stable release, so don't get it unless you want to help that development.

That is the plan on the development, subject to change without any prior notification:

  1. Integrate bzflag client in the Crystal-Space framework, particularly regarding the event handling nature of it. (done)
  2. Handle the command line interface a la Crystal-Space: (done)
    • Option values separated by '=' instead of ' '
    • Own handling of -help
    • Request of option on the command line using CS API
  3. Joystick handling done from Crystal Space (done)
  4. This is actually having less functionality of native porting, as the force feedback is missing. I'll think I'll revert the joystick

    change when the work will go further.
  5. Let CS knows about the sdl canvas: this is probably done loading the sdl plugins and integrating the handling of CS with the own bzflag management of the window. If we stay compatible with sdl, we will have still a working bzflag.
  6. Crystal-Space manages the mouse, as far as possible.
  7. Crystal-Space manages the keyboard, as far as possible.
  8. Remove all the opengl from bzflag and start to render the Tank using the CS API
  9. Build the world element using CS API
  10. Build the Menu selection using the Crazy Eddie GUI
  11. Rewrite the collision detection code using the ode plugin
  12. Ship it!

My idea is to have at any stage of development a working client, so we can see the product and change the direction of development at an early stage, if that is required, or abandon this idea at all.

Actual work on this project is off line the 2.2 release. If the integration succeed, and the performance indicator are ok, only then we can think this work is good for formal release on whatever version is available at the moment. As probably crystal space is not going to be supported on alien architectures, the goal is not to substitute the old client, but to provide an enhanced version of it. We'll see.

Any developer is invited to contribute, having time and wish. I just ask to coordinate the effort with me. (atupone)