From: Adam W. <a1c...@ho...> - 2001-01-10 19:39:46
|
Okay, I have a question then a couple of ideas. First: Question. 1) What does UML stand for? I have found the diagrams drawn up very informative but was just curious on what it meant. Second: ideas. 1) Plugin design. If we are going to add plugin support to Arianne, there will have to be some fundamentals that the client developers should follow from the beginning of coding. This means that we might want to consider using something else for network/socket support. If SDL graphics will be supported as a plugin option, then we need to end our dependence on it for the core of the game. The following is my vision of how Arianne should be designed based on a plugin environment. Arianne-Corelib | | RP/AI Lib------Server | | Client---------Plugin: Video |________Plugin: Audio |________Plugin: Misc IMHO there should be no reference to actual graphics code until the client as in the code snippit I sent the other day. Arianne-Corelib (Which I consider the UML rewrite) This lib should contain on basic underlying game functions including: Basic Objects: ID,x,y & z and member functions the deal only with those values. Message Management: Vectorizing Data: ??? Data Compression: Thread Management: General Initialization functions: Reading/parsing .ini, setting paths. Callback Methods: RP/AI Lib: This lib should include only player/world handling code. It inherits and or includes the use of Arianne-Core. I chose not to use this inside of Arianne-Core because of Miguel's desire to see the code someday be used for other games. By having the RP/AI seperate, another gamer could come along, use the Core to implement an operational standard and change the RP lib to implement their own RP system. Object Player: inherits basic object and adds to the class with player related functions. AI Handling: World/Map Handling: Chat: Could even be a plugin. etc: Server: The network should be handled within the scope of the client and server code. That way is someone has a compatablility problem they can recode the server/client without harming the underlying operation and handling of the game. Client: The client will define the plugin interface and load/manage the plugins as well as provide an portable interface to the game server. Graphics libs would only need to be compiled into the plugins. That way we don't init SDL when someone decides to write a GTK+ or DirectX Client for the game. Those are my thoughts. I know that you guys are far more adept at this than I am but this is how I invision gCraft and Arianne Operation. Adam _________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. |