Home

Bamboo Engine Project

A GPL V3 Client/Server Game Engine Framework using Python, Twisted and Panda3D

This project is a work in progress with the aim of utilizing an emergent design by using extreme programming methodology. Extreme programming is, rather simply, an alternative design process wherein a project is iterated feature-at-a-time and tests are written before implementation. The TODO list is regularly reviewed and the most important features move to the top and less important features move down. The emphasis on testing allows a release at every project iteration allowing a project to become useable quickly and stay useable regardless of future changes and refactoring. An emphasis also exists on refactoring code to keep it free of duplication and clutter. Extreme programming practices cope with emergent design where the requirements are expected to change often through the life of the project. Features are prioritized and only one is every picked off the TODO list per iteration thus getting a handle on the feature snowball effect.

The vision is to create a full engine server and client pair from a single game implementation made by the game developer. The goal is that the game is presented visually wherever it makes sense to do so. Event sheets would be preferred over the game being written by the developer as a large volume of code. It should be easy to see available behaviors, expressions and actions, as applicable, while the developer is creating game logic.

I envision a layer built on Twisted to exchange object state between client and server (and may also handle events locally as well such as timer, keyboard, mouse, disk data ready, Etc.) probably utilizing the PB+Jelly facility within Twisted.

Things like support vector learning coupled with a semantic network to drive game AI agents (eg: NPCs) is also on the wishlist.

Another route to investigate later is the use of CPython or JIT such as PyPy to obtain the best possible performance without leaving the creature comforts afforded by Python.

Currently I'm using GPL V3 license for the project. This will not affect games made using the project! GPL would only apply if the game developer also distributed Bamboo with or without modifications. Game data is not linked to any part of the engine so no license restrictions are placed on a game implemented within the system.