Difference between revisions of "Google Summer of Code"

From BZFlagWiki
Jump to: navigation, search
(Networking)
(more links)
Line 1: Line 1:
BZFlag plans to participate in the 2007 Google Summer of Code and if selected as a mentoring organization, we will be accepting applications and proposals to work on BZFlag.  While there are lots of [Ideas|ideas] floating around of varying utility to the game, the ideas listed below are specific areas that we are interested in seeing worked on as part of the GSoC.  These tasks are selected according to the overall impact that they can make to the game, feasibility of implementation within '''three''' months, and overall interest in having such modifications made to BZFlag.
+
BZFlag plans to participate in the 2007 Google Summer of Code and if selected as a mentoring organization, we will be accepting applications and proposals to work on BZFlag.  While there are lots of [[Ideas]] floating around of varying utility to the game, the ideas listed below are specific areas that we are interested in seeing worked on as part of the GSoC.  These tasks are selected according to the overall impact that they can make to the game, feasibility of implementation within '''three''' months, and overall interest in having such modifications made to BZFlag.  While there's no guarantee that work on any code will be integrated, this is very much the desire and intention -- it is expected that students will interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.cvs.sourceforge.net/*checkout*/bzflag/bzflag/DEVINFO DEVINFO] rules, and focus on providing a clean maintainable implementation.
  
== Graphics ==
+
== Graphics Engine Integration ==
One of the long-standing desires for BZFlag is to improve the graphics capabilities in the game by integrating with an existing rendering engine.  This task would be to integrate BZFlag with a graphics engine like OGRE, Crystal Space, or Irrlicht.
+
One of the long-standing desires for BZFlag is to improve the graphics capabilities in the game by integrating with an existing rendering engine.  This task would be to integrate BZFlag with a graphics engine like [http://ogre3d.org/ OGRE], [http://www.crystalspace3d.org/ Crystal Space], [http://www.openscenegraph.com/ OpenSceneGraph], or [http://irrlicht.sourceforge.net/ Irrlicht].
  
== Networking ==
+
== Dead Reckoning Networking Enhancements ==
 
The basic idea is to improve BZFlag's networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include "[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]" and "[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]".
 
The basic idea is to improve BZFlag's networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include "[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]" and "[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]".
  
== Artificial Intelligence ==
+
== Headless Artificial Intelligence Agent ==
 
Work on creating a clean stand-alone version of the game client that is headless (i.e. requires no GUI to run) and scriptable.  Ideally, a scripting interface that is compatible with an existing framework such as the [http://robocode.sourceforge.net/ Robocode] [http://www-128.ibm.com/developerworks/java/library/j-robocode/ API] would be made available for controlling AI tank players so that collaboration with other AI efforts could be leveraged.
 
Work on creating a clean stand-alone version of the game client that is headless (i.e. requires no GUI to run) and scriptable.  Ideally, a scripting interface that is compatible with an existing framework such as the [http://robocode.sourceforge.net/ Robocode] [http://www-128.ibm.com/developerworks/java/library/j-robocode/ API] would be made available for controlling AI tank players so that collaboration with other AI efforts could be leveraged.

Revision as of 22:40, 11 March 2007

BZFlag plans to participate in the 2007 Google Summer of Code and if selected as a mentoring organization, we will be accepting applications and proposals to work on BZFlag. While there are lots of Ideas floating around of varying utility to the game, the ideas listed below are specific areas that we are interested in seeing worked on as part of the GSoC. These tasks are selected according to the overall impact that they can make to the game, feasibility of implementation within three months, and overall interest in having such modifications made to BZFlag. While there's no guarantee that work on any code will be integrated, this is very much the desire and intention -- it is expected that students will interact on the #bzflag IRC channel on the Freenode network, abide by the DEVINFO rules, and focus on providing a clean maintainable implementation.

Graphics Engine Integration

One of the long-standing desires for BZFlag is to improve the graphics capabilities in the game by integrating with an existing rendering engine. This task would be to integrate BZFlag with a graphics engine like OGRE, Crystal Space, OpenSceneGraph, or Irrlicht.

Dead Reckoning Networking Enhancements

The basic idea is to improve BZFlag's networking by performing dead reckoning on the server along with context-sensitive packet delivery culling. Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required. Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state. Some useful background reading for this task include "Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)" and "Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)".

Headless Artificial Intelligence Agent

Work on creating a clean stand-alone version of the game client that is headless (i.e. requires no GUI to run) and scriptable. Ideally, a scripting interface that is compatible with an existing framework such as the Robocode API would be made available for controlling AI tank players so that collaboration with other AI efforts could be leveraged.