Framework Design


1 Project Structure


Our project is mainly divided into the following two parts:

  • Framework Layer

    • Contains the code of various basic modules, which can be migrated to any new projects by copying the entire framework folder.

    • Inside the framework layer, each independent module code is decoupled as much as possible and stored in one folder, so that the code in the module directory can be directly migrated to another project, such as the item system, weapon system, navigation system, etc.

    • Some modules cannot be independent because it depends on the various systems, so this part cannot guarantee decoupling, such as the character module.

  • Game Layer

    • The application based on the framework layer, which will include the specific gameplay code of the entire game.

    • It is also a verification of the framework layer code. It also explains the use of framework code.

    • For extension, you can migrate the framework layer code or use the game layer code as the template directly.


2 Important Modules


  • Item System: Item management and activate various of system by different items.

  • Weapon System: Trajectory, CrossHair, Bullet, Hit, etc.

  • UI Module: UI Management, MiniMap, HeadView, Inventory, etc.

  • AI Module: AI behaviour management.

  • Character Customization: Customize the appearance of character.

  • Event System: Global event management.

  • Lobby System: Lobby session management.

  • Character Module:State control, Animation, Input, Camera, etc.

  • GameMode Module: Standardization for gameplay development flow.