Player class structure (for AI), and team colouring

I have started looking at the code again a bit, and was planning to do some work on it.
My plan was to concentrate on two things: Making an "ai framework" and fix team colouring.
Team colouring:
The plan here was to do it by generating textures coloured according to an alpha value. I don't know if it is the most optimal solution, but it should be quite simple to implement. Should probably also start using a resized version of the original in-game now, as a larger texture will make the generation take more time.
An alternative could be using a variable sent to the shader, but I think this would be more complicated. (Though save texture memory and lower loading time, though it would add a tad of computing time in the shaders.)
AI/Player class:
The idea was to restructure the player class into a hiearchy of different player types. One of the types would be an AI base player, which can be subclassed into c++ ai classes, or possibly a lua-scriptable AI.
I am in the process of making this hiearchy, and moving all interraction between the player and the world into these classes. My current thought is this, but it would be nice with some input, there could be better designs :
Maybe there should be a class that the client and server "human" players inherit from, if they end up sharing a lot of code.
My plan was to concentrate on two things: Making an "ai framework" and fix team colouring.
Team colouring:
The plan here was to do it by generating textures coloured according to an alpha value. I don't know if it is the most optimal solution, but it should be quite simple to implement. Should probably also start using a resized version of the original in-game now, as a larger texture will make the generation take more time.
An alternative could be using a variable sent to the shader, but I think this would be more complicated. (Though save texture memory and lower loading time, though it would add a tad of computing time in the shaders.)
AI/Player class:
The idea was to restructure the player class into a hiearchy of different player types. One of the types would be an AI base player, which can be subclassed into c++ ai classes, or possibly a lua-scriptable AI.
I am in the process of making this hiearchy, and moving all interraction between the player and the world into these classes. My current thought is this, but it would be nice with some input, there could be better designs :
- PlayerBase - base stuff that is shared between all player classes.
- ServerPlayer - server-side players inherit from here
- HumanPlayer - the person playing on the server machine
- RemotePlayer - people connected over the network
- AIPlayer - AI players
- ScriptableAI - lua or similar interface, to allow an ai to be written in an interpreted language
- Potentially AI's implemented in C++
- ClientPlayer - client-side player
- ClientLocalPlayer - the player that the client plays - takes input from the player and sends it to the network handlers
- ClientRemotePlayer - other players - receives input from network handlers and interracts with the local game state
- ServerPlayer - server-side players inherit from here
Maybe there should be a class that the client and server "human" players inherit from, if they end up sharing a lot of code.