This wiki is archived and useful information is being migrated to the main bzflag.org website
Editing Google Summer of Code/2009
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: | ||
− | The 2009 Google Summer of Code was announced in February, 2009. BZFlag | + | The 2009 Google Summer of Code was announced in February, 2009. BZFlag will again be applying as a mentoring organization. Given our enormously successful participation in the program in 2007 and 2008, we're very excited to be participating again and we're very happy to see the applications that were submitted. BZFlag will be accepting student project proposals from March 23 until April 3. Hints and tips on [[Google_Summer_of_Code|getting started, preparing a submission, and the application process]] were available. |
+ | |||
+ | = Promotion Flyers = | ||
+ | |||
+ | We're now soliciting designs for our 2009 GSoC promotional flyer. If you are interested in providing a design, please contact us! | ||
= Proposal Ideas = | = Proposal Ideas = | ||
Line 12: | Line 16: | ||
=== Suggest your own idea === | === Suggest your own idea === | ||
BZFlag is always open to new development ideas and is under constant improvement. If you are familiar with BZFlag's current capabilities and would like to propose some new enhancement, we'd be happy to hear about. Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game. | BZFlag is always open to new development ideas and is under constant improvement. If you are familiar with BZFlag's current capabilities and would like to propose some new enhancement, we'd be happy to hear about. Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''Difficulty''': variable | '''Difficulty''': variable | ||
Line 32: | Line 21: | ||
=== Cheat preventions === | === Cheat preventions === | ||
− | This task involves making BZFlag more robust towards preventing various cheats from working in the game. This task implicitly requires adding protections on the server, moving game logic from the client to the server, and/or adding heuristics and other measures for detecting and dealing with cheat clients. The student should have a strong grasp of the variety of BZFlag cheats that are available. Please go into detail about which cheats you're interested in preventing and how you intend to employ those preventive measures. For information on known cheats, check out the [[Known Cheats]] wiki page. | + | This task involves making BZFlag more robust towards preventing various cheats from working in the game. This task implicitly requires adding protections on the server, moving game logic from the client to the server, and/or adding heuristics and other measures for detecting and dealing with cheat clients. The student should have a strong grasp of the variety of BZFlag cheats that are available. Please go into detail about which cheats you're interested in preventing and how you intend to employ those preventive measures. For information on known cheats, check out the [[Known Cheats]] wiki page. |
'''Requirements''': | '''Requirements''': | ||
Line 42: | Line 31: | ||
=== Modularization of game logic === | === Modularization of game logic === | ||
− | Much of the game logic is presently mixed in with BZFlag's graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine. | + | Much of the game logic is presently mixed in with BZFlag's graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine. |
'''Requirements''': | '''Requirements''': | ||
Line 51: | Line 40: | ||
=== Modularization of OpenGL logic=== | === Modularization of OpenGL logic=== | ||
− | BZFlag's graphics code is (unfortunately) spread throughout the codebase with OpenGL calls being made in thousands of places. The goal of this project would be to encapsulate *all* of the OpenGL calls into one place as a first step towards encapsulating all of the graphics code so that we can adopt a 3D rendering engine. This project should not be to integrate with an engine, though, as there's too much that needs to happen beforehand. Step one is getting all of the graphics code contained. | + | BZFlag's graphics code is (unfortunately) spread throughout the codebase with OpenGL calls being made in thousands of places. The goal of this project would be to encapsulate *all* of the OpenGL calls into one place as a first step towards encapsulating all of the graphics code so that we can adopt a 3D rendering engine. This project should not be to integrate with an engine, though, as there's too much that needs to happen beforehand. Step one is getting all of the graphics code contained. |
'''Requirements''': | '''Requirements''': | ||
Line 61: | Line 50: | ||
=== Network Testing and Simulation Environment === | === Network Testing and Simulation Environment === | ||
− | This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss. This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers. This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment. | + | This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss. This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers. This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment. |
'''Requirements''': | '''Requirements''': | ||
Line 68: | Line 57: | ||
'''Difficulty''': medium | '''Difficulty''': medium | ||
+ | |||
+ | |||
+ | === Lots o' Bug hunting === | ||
+ | Basically, this project idea is right up in line with helping new developers become familiarized with the BZFlag code and to help us improve our code quality for an upcoming major release. Propose fixing bugs. You can propose fixing a lot of them or just a few, but you should be detailed and methodical in your approach. Refactoring to fix a bug is fantastic. A progressive/agile/iterative approach to identifying which bugs you intend to look into and fix would also be great. | ||
+ | |||
+ | There is an extensive list of bugs that need to be addressed at https://sourceforge.net/tracker2/?group_id=3248&atid=103248 and http://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/BUGS at your disposal. | ||
+ | |||
+ | '''Requirements''': | ||
+ | *Familiarity with C/C++ | ||
+ | *Good problem solving and diagnostic skills | ||
+ | *(optional) Proficient with a debugger (you will be by the end) | ||
+ | |||
+ | '''Difficulty''': variable | ||
+ | |||
==Additional Project Ideas == | ==Additional Project Ideas == | ||
Line 84: | Line 87: | ||
*Familiarity with C/C++ | *Familiarity with C/C++ | ||
*Ability to read through other people's code | *Ability to read through other people's code | ||
− | *Basic GUI | + | *Basic GUI and usability design |
− | + | ||
'''Difficulty''': high | '''Difficulty''': high | ||
Line 111: | Line 113: | ||
*Familiarity with C/C++ | *Familiarity with C/C++ | ||
*GUI, usability, and interaction design | *GUI, usability, and interaction design | ||
− | |||
'''Difficulty''': low | '''Difficulty''': low | ||
Line 129: | Line 130: | ||
'''Difficulty''': low | '''Difficulty''': low | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Dead Reckoning and other Networking Enhancements === | === Dead Reckoning and other Networking Enhancements === | ||
Line 147: | Line 139: | ||
'''Difficulty''': high | '''Difficulty''': high | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Mentors = | = Mentors = | ||
Line 216: | Line 150: | ||
* Scott Wichser (Blast/Blast007) | * Scott Wichser (Blast/Blast007) | ||
* David Wollner (JB diGriz) | * David Wollner (JB diGriz) | ||
− | * Joe VanOverberghe ( | + | * Joe VanOverberghe (Donny_Baker) |
* James Lawrence (spldart) | * James Lawrence (spldart) | ||
− | |||
− | |||
− | |||
− | |||
[[Category: Development]] | [[Category: Development]] |