This wiki is archived and useful information is being migrated to the main bzflag.org website
This is bugQ's proposal for GSoC 2008, which may change with the minds of those involved.
See bugQ's development blog to check and discuss the project's progress: http://planet-soc.com/blog/89
The use of a browser with a live server will allow additional administration and configuration tasks that are not available with a simple config. These tasks include:
- Editing all config-related files
- Saving configuration on server-side
- Reading and clearing logs
- Controlling and checking the status of the server process.
Optimally the tool could be developed to a point where it was able to control nearly every aspect of the server. The primary focus of this initial design interface will be ease of use and security. Portability is also a major secondary concern.
The user should be able to choose from plugins and maps in pre-defined folders, and upload custom maps. Depending on the relative difficulty, maps might be validated on upload or BZFS will check them on startup. (Although it would be interesting to do the same for plugin files, there probably wouldn't be any nice way of keeping it secure.)
There should also be very few external tools used in this project, so that it can be deployed as widely as possible. It could be written in PHP or another common scripting language, but that would require whatever language chosen to be present on the host machine. Since BZFlag itself is written in C++, using that language would eliminate the dependency. It would also allow the admin interface to be implemented as a plug-in, using the in-port HTTP feature of the BZFS API, which would likely make it more convenient to deploy. However, in order to ease development, a scripting language may be used to create a working prototype which would then be a blueprint to rewrite the tool in C++.
BugQ will be carrying out tests on the config files generated by the tool as well as hosting a test server for others to try and give comments on. Suggestions on unnecessary or possible new features should be added to the talk page.