这个英文版是我翻译的,大家看看有什么错漏。这个版本比中文版增加了一些话,主要是一些补充性的说明。
.Game Framework is to provide a standard framwork for building a multi-users network game. It is based on .NET Framework. As .Net Framework provide a platform for developers to build common commercial applications, .Game Framework provide a platform for developers to build multi-users network games. The main point of .Game Framework is to provide a framework which include abundant objects for game developer building games much efficiently. The most importance of the project is to provide a standard for developing games. The "multi-users network game" here means such a game which can support at least 10k player online. Although it is just the final goal.
The development language of .Game Framework itself can be all kinds of "managed language" such as C#, VB.NET, managed VC++, etc. Considering the execution efficiency, part of or whole of the "engine" might be built by unmanaged VC++. However, if it's built by unmanaged language, we will absolutely provide wrappers for pure managed language so that a game developer can build a game in pure managed programing language with this framework to provide high security and strong robusticity. The reason for this is, according to one of the frameworks propose is to provide the "player design the game" function. Since you can't suppose all players are good developers or all players won't act maliciously, we have design the security and robusticity into the framework object modal to stop players' damage (to the whole game). Managed framework is a better choice than unmanaged ones.
The engines in the .Game Framework consist of: rule execution engine(s), network data transfer engine(s), script execution engine(s), graphics userinterface engine(s), etc. Among them the graphics userinterface engine is not our concern focal point. We pay attention to carry out the following technology:
1. Support distributed computing ability. It means the clients will take charge of what's done mostly by server now. Of course, we will make sure the data and the calculation won't be modified maliciously by invalid or malicious users. The propose of implementing this function is to lower the requirement of servers.
2. Provide the "player design the game" function. The "design" mentioned herein means only the granted part of a game's design, which is granted by the game's developers. In other words, game developers can limit the designing range of players. Such an ability can be seen in the game "Terrarium". Please checkout:
http://www.windowsforms.net/terrarium
The difference between the "Terrarium" and the .Game Framework is: we take this ability out of the specialized context of a game.
3. Offer strong flexibility. Our final goal can utilize reflection.emit in .NET to create assemblies dynamicly to, for example, execute the scripts, in order to substitute the interpretor which carry out some kinds of function. Because it's much more efficient than interpretor, it can provide stronger ability of dynamic updating in such a game.
Each kind of engines in the .Game Framework, metioned or not mentioned above, might be provided more than one implementation. For example the graphics userinterface engine, the framework might provide a DirectX ones and an OpenGL ones. We are not saying that they must be all provided.