B3 Development
The next version of B3 is currently in development.
Since some of you have asked I figured I'll explain how the B3 2.0 framework works. B3 2.0 relies heavily on Eggs. This will make it easy to install and update b3 and to install plugins. Anything that can be separated from B3 and made it's own project will. This allows for the separate projects to grow and fix bugs on their own. If something exists already, B3 will use it instead of re-building it.
Here's a list of some of the separate B3 modules and what they do:
- brocon - Rcon library that can support any game with a remote interface, also a command line rcon tool
- rvr - A socket/stream adapter that takes many kinds of protocols (HTTP, FTP) and treats them like file-like objects
- tailer - A log fail tailing library that works like the tail and head commands. Combines with rvr to tail log files on the server or on remote servers via FTP/HTTP
- sqlalchemy - Database support for many databases including MySQL, PostgreSQL, and SQLite
- b3 - the core b3 framework that ties the above components together and creates events for plugins to capture. It does not have any game logic, those will be implemented in plugins.
- b3-game-* - These are game adapters, such as b3-game-cod and b3-game-urbanterror. They convert log file messages into b3 events and capture b3 events and send them as rcon commands. This completely decouples b3 from any specific game making it easy to adapt to any new game.
- b3-plugin-* - These are the actual logic of b3 such as b3-plugin-admin and b3-plugin-tk. They listen for events, act on them, and create events in response. They are what make b3 useful. Most plugins will work with any game as long as the game supports the minimum. Some plugins may be game specific such as VOIP plugins. These will be denoted like "b3-plugin-voip-cod4".
Installing b3 will be as simple as easy_install b3. To install a game such as cod4 would simply be easy_install b3-game-cod4. This will also install b3 if b3 isn't installed. Installing plugins are the same and will install any plugins that the other plugins requires.
To make it easier to develop and distribute plugins, bigbrotherbot.com will host an egg repository.
There are a few more components such as configuration and other boilerplate stuff. Stay tuned!
