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

Difference between revisions of "CrystalSpace client"

From BZFlagWiki
Jump to: navigation, search
Line 16: Line 16:
 
# Crystal-Space manages mouse and keyboard, as far as possible.<span style="color: rgb(255, 0, 0);">(done)</span>  
 
# Crystal-Space manages mouse and keyboard, as far as possible.<span style="color: rgb(255, 0, 0);">(done)</span>  
 
# Remove the open GL calls from BZFlag <span style="color: rgb(255, 0, 0);">(mostly done)</span>  
 
# Remove the open GL calls from BZFlag <span style="color: rgb(255, 0, 0);">(mostly done)</span>  
# A fake world with tanks rendered using the CS rendering API (boxes for start) and a camera.<span style="color: rgb(255, 0, 0);">(done)</span>  
+
# A fake world with a fixed sky, the ground, and a wall all around the field. Tanks are rendered as boxes. All done in XML using the CS rendering API and a camera.<span style="color: rgb(255, 0, 0);">(done)</span>  
# Reintegrate the 2D element like text and hud (mostly done). Some problem with the different text, using bitmap instead of texture
+
# Reintegrate the 2D element like text and hud span style="color: rgb(255, 0, 0);">(mostly done)</span>. Some problem with the text, using bitmap instead of texture, and coordinate system in the 2d renderer.
 +
# Integrate the tank model
 
# Build the world element using CS API
 
# Build the world element using CS API
 +
# Add shot
 +
# Add the radar renderer, using a procedural texture.
 +
# Add a better sky with sun.
 +
# Change configuration file using the CS format
 +
# Rework the debugging functionality (like screenshot and FPS) using the bugplug plugin, but controllable with the old way (T for FPS, F5 for screenshot, both configurable from option)
 
# Build the Menu selection using the [http://www.cegui.org.uk Crazy Eddie GUI]
 
# Build the Menu selection using the [http://www.cegui.org.uk Crazy Eddie GUI]
 
# Rewrite the collision detection code using the [http://ode.org/ ode] plug-in
 
# Rewrite the collision detection code using the [http://ode.org/ ode] plug-in
# Ship it!
+
# Network layer done using a parallel thread that communicate with the engine
 +
# Ship it! Actual ship should be done continuosly during the development, to gain acceptance of the product
  
 
The 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.
 
The 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.

Revision as of 15:31, 15 March 2007

The Crystal Space client is an ongoing effort is to provide implement the BZFlag client using the a crystalspace 3d engine and application framework.

The current version is very experimental but, is compatible with all 2.0.x servers. It will be only available via CVS, using the v2_0_cs_branch.

Currently, the client is playable, does not contain all the features of the stable release. It is not recommended as a playing client, only to be used for development.

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

Screen shot from the Crystal-Space client. The black boxes are dancing.
  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) 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.
  4. Initialize the renderer engine. (done)
  5. Crystal-Space manages mouse and keyboard, as far as possible.(done)
  6. Remove the open GL calls from BZFlag (mostly done)
  7. A fake world with a fixed sky, the ground, and a wall all around the field. Tanks are rendered as boxes. All done in XML using the CS rendering API and a camera.(done)
  8. Reintegrate the 2D element like text and hud span style="color: rgb(255, 0, 0);">(mostly done)</span>. Some problem with the text, using bitmap instead of texture, and coordinate system in the 2d renderer.
  9. Integrate the tank model
  10. Build the world element using CS API
  11. Add shot
  12. Add the radar renderer, using a procedural texture.
  13. Add a better sky with sun.
  14. Change configuration file using the CS format
  15. Rework the debugging functionality (like screenshot and FPS) using the bugplug plugin, but controllable with the old way (T for FPS, F5 for screenshot, both configurable from option)
  16. Build the Menu selection using the Crazy Eddie GUI
  17. Rewrite the collision detection code using the ode plug-in
  18. Network layer done using a parallel thread that communicate with the engine
  19. Ship it! Actual ship should be done continuosly during the development, to gain acceptance of the product

The 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 on the 2.0.x branch, as to not delay the the 2.2 release. If the integration is successful, and the performance is acceptable then we can look into putting this work into a production release. Crystal Space, being a 3rd party library may have limited support for some of the less popular Operating Systems, as such support for those may be more difficult. Crystal Space does support the majority of our popular Operating Systems, including IRIX and Solaris.

All developers are invited to contribute if they have the desire. It is just asked that work be coordinated with the author and originator of the project, Tupone.