DevelopmentGoals

From BZFlagWiki
Revision as of 00:03, 15 November 2007 by Constitution (Talk | contribs) (BZWorldBuilder is BZWorkBench)

Jump to: navigation, search

This page describes the development goals for the project. It is a set of desired features, problem areas, wishlist items that define the general direction that the developers feel the project should be taken in.

Tools

BZFlag has a number of sub-tool projects, each with there own needs.

BZWorkBench

BZWB is a world/map editor that was completed for the 2007 Google Summer of Code program that BZFlag participated in. It is mostly functional but lacks a number of features, including.

  • A UI that is usable.
  • Mesh support

ModelTool

Model tool needs to tessellate strips and fans into faces when the mesh is used with regular geometry.

Services

The public services offered by the project are also open for development.

List Server

The list server that is in use now is considered by many to "suck". A new list server/authentication system that can work using some sort of distributed network system to allow for redundancy would be greatly desired.

Proposals have included:

  • Re-writing the existing php list server to be more efficient.
  • Using MYSQL syncing features to split up the server.
  • Using LDAP for authentication
  • Moving away from PHP/Apache to a real compiled daemon.
  • moving away from HTTP to a more efficient TCP protocoll.

Group Management

The current system of using phpbb to manage user groups is proving to be logisticaly dificult given the large number of servers and the groups that their server owners desire. A more user centric group management system would be a large help.

A full spec for the system can be found at Group Management System

Main Website

A more data driven site would be beneficial, as well as integrated user management.

Game Statistics

A more push oriented stats system is desired.

Codebase

libGame

As much game code as possible needs to be generalized into a lib game and be shared by the client and server.

Cleanups

The current codebase has a number of files/functions that need to be broken up for better reuse and maintainability, these include.

  • bzfs.cxx
  • playing.cxx

Game server

Authoritative Server State

The game server needs to keep full track of where every player and every shot is. This state needs to be pushed out as the authortive state to all clients. The server needs to also verify all input according to the current game's rules. This state needs to include at least the following;

  • Player position
  • shot positions and paths
  • death and shot ends.
  • Player/world collision verification

Part of this is described in the Server Updated Shots design document.

Server Side players

Need to be finished.

Server side logic for as many actions as possible

The game server should provide the logic for as many events/actions as possible, such as flag capturing, death on hit, and others.

Game Client

Graphics system split

The graphics subsystem of the game client needs to be split out and made into it's own module that can be optionally built in. This will help standalone bots.

Graphics Engine Evaluations

Existing third party graphics engines/libraries need to be evaluated to see if they would provide the game with significant features. Engines such as OGRE, Crystal Space, and Open Scene Graph look promising.