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

Editing CrystalSpace client

Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: Archived wiki

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{IdeaDesign}}
+
The Crystal Space client is an ongoing effort is to provide implement the BZFlag client using the a [http://crystalspace3d.org crystalspace] 3d engine and application framework.
  
The Crystal Space client was an effort is to provide implement the BZFlag client using the a [http://crystalspace3d.org crystalspace] 3d engine and application framework. Development work never progressed past an inital prototype and was not picked up by the mainline system.
+
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.
 
+
The current version is very experimental but, is compatible with all 2.0.x servers. It will be only available via SVN, 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.
 
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:
 
That is the plan on the development, subject to change without any prior notification:
[[Image:Crystal001.jpg|thumb|450px|right|Tank redone]]
+
[[Image:Crystal001320x240.jpg|frame|right|Screen shot from the Crystal-Space client. The black boxes are dancing.]]
 
# Integrate BZFlag client in the Crystal-Space framework, particularly regarding the event handling nature of it. <span style="color: rgb(255, 0, 0);">(done)</span>
 
# Integrate BZFlag client in the Crystal-Space framework, particularly regarding the event handling nature of it. <span style="color: rgb(255, 0, 0);">(done)</span>
 
# Handle the command line interface a la Crystal-Space: <span style="color: rgb(255, 0, 0);">(done)</span>
 
# Handle the command line interface a la Crystal-Space: <span style="color: rgb(255, 0, 0);">(done)</span>
Line 15: Line 13:
 
#* Request of option on the command line using CS API
 
#* Request of option on the command line using CS API
 
# Joystick handling done from Crystal Space <span style="color: rgb(255, 0, 0);">(done)</span> 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.
 
# Joystick handling done from Crystal Space <span style="color: rgb(255, 0, 0);">(done)</span> 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.
 +
# Initialize the 2d renderer engine. <span style="color: rgb(255, 0, 0);">(done)</span>
 +
# Crystal-Space manages the mouse, as far as possible.<span style="color: rgb(255, 0, 0);">(done)</span>
 +
# Crystal-Space manages the 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>  
# Crystal-Space manages mouse and keyboard, as far as possible.<span style="color: rgb(255, 0, 0);">(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 world with a fixed sky with sun, the ground, and a wall all around the field. All done in XML using the CS rendering API and a camera.<span style="color: rgb(255, 0, 0);">(partially done, missing the real time update, the moon and the stars)</span>
+
# Reintegrate the 2D element like text and hud
# 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.
+
# Build the world element using CS API
# Tank models integrated, only a fixed size tank <span style="color: rgb(255, 0, 0);">(done)</span>
+
# Build the world element using CS API (need to fix use of material)
+
# Add shot
+
# Add the radar renderer, using a procedural texture.
+
# 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
# Network layer done using a parallel thread that communicate with the engine
+
# Ship it!
# Ship it! Actual ship should be done continuously 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.
Line 34: Line 28:
 
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.
 
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, [[Alfredo Tupone]].
+
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]].
 +
 
 +
[[Category:Development]]

Please note that all contributions to BZFlagWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BZFlagWiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)

Template used on this page: