Game architecture-Draft (1)

Source: Internet
Author: User
Tags abstract language fsm

Development is not active, so design goes first. I have always emphasized the idea of "Design first.

Communication and communication are important and skillful. Do you remember the story of tongtianta, which enables the entire project team to speak in one language, can play a huge role.

------------------------***-------------------------------

Module division and refinement:

I think there are many things in my mind, but they are messy.

 Module Base Game Play Logic-modules divided by Game worker business Logic

Module Base Game Code Logic-modules divided by Game Code Logic

I think there are many nouns and many modules flash in my mind, but I intuitively feel that these modules can be divided independently, but they are different and cross-cutting. It is found that "Engine Design & function design" is more accurate than "game business logic & game code logic. Add the "underlying engine" statement on this basis. In client games, this refers to the establishment of hardware platforms.

I borrowed it to demonstrate some modules that are more decoupled from specific game businesses. But what we ultimately need is the code logic architecture, on which the game business is presented. As a game architecture designer, we are more concerned with the code architecture represented by the following virtual clues, that is, how to organize code and how to divide each module, all these efforts aim to demonstrate the game business logic well. The gaming world is extremely complex, and the same is true for game production. But we need to clearly understand that what developers need is a simple world, the simpler the better. A simple system is robust and a simple system is efficient. But we are facing a complicated game world. What should we do with such conflicts? A good idea is to abstract and summarize a complicated game world into a simple and effective architecture. Here I want to differentiate the architecture from the engine. The term architecture is more about the Code Organization and logic structure of the entire system. The engine is more about functionality, or basic functions (common functions.

 

 

 

Division of labor in game system development-server and client:

Displaying the world of online games is complicated and requires the cooperation of servers and clients. Server/Client (or more accurately, Brower), the two are responsible for different aspects, simply put, the Client is responsible for displaying a specific game world in the player, A visual game world, a local game world, a short game world, a game world full of details, and the Server manages the entire game world, continuous and uninterrupted, monitoring every player comes in and out, and connecting these players into a whole. There is a big difference between the two ideas and practices. They have their own difficulties to solve, but there are also common and common areas. It is also very important that from the beginning of the game, every detail and every action, the S-end and C-end must work closely together to make the game run well and happily. Therefore, we need to treat them differently, and coordinate and manage them so that they can work as a whole in a good and robust manner. In the development process, Server developers and Client developers need to communicate well and continuously, so that the entire code architecture can support the complex game world like a complete cornerstone.

A game is a system engineering that requires the cooperation, planning, client, server, art, and producer of all aspects ...... even more layers can be divided in every aspect. At the game level, everyone is a whole, but with clear personality. How to cooperate and coordinate is a topic worth studying. For example, if I am a client developer and want to solve the game combat logic and game UI (for example, this roughly points out) on the client, for example, the idea in the game UI is template, button, login... if you suddenly switch to the combat logic, it will take some time to adapt to collision, magic, and effects. If a unified framework structure or a good general engine is used, it will be much more pleasant to do, and the cost of this conversion will be relatively small and the time will be short. This reflects a high level of project management, leisurely and fascinating. I think project management is a highly intelligent task. PM requires a high level of execution, rather than an abstract language. It should be based on understanding of project team members, on the basis of understanding the work of the project team members, and even as mentioned above, it is necessary to understand carefully, transform the work, encounter difficulties, and how to help them deal with these difficulties,What's more important is to avoid getting them into a certain dilemma in advance, which may be more important than helping them free from it.

  There were a lot of interviews, but they all meant that the members of the project team should understand each other and understand others' work on the basis of their own responsibilities; project Team members must understand each other's nature and manner of statement, so that they can grasp the meaning of each other accurately without misunderstanding. In this way, you can take care of each other at work and consider the issue from the perspective of each other. In this way, an overall synergy will be generated, and the whole is the most important. We praise personality, but do not need to destroy the overall personal hero.This is a principle I learned when studying painting :)

Game Information specifications

The database to be discussed here is not the gamer data database on the online game SERVER. It is another category. If you want to discuss it, it is almost always at the technical level.
The game is actually composed of a large number of data and logic calculations. The words, messages, and images that appear on the surface are actually appended with rules.

With the preparation of the previous underlying environment, we set up the upper-layer environment, and then began to place the core of the game, that is, various Judgment Rules, display rules, and so on. (Usually starts from the image display, and then gradually tests and slowly adds features ). Such a document should include the gameplay rules. (How Play Game Rules: HPGR), for example, Game formula algorithm, random events, plots, tasks, spells, items, attributes, Boss, and so on. I still want to emphasize that it is neither a program to interfere with planning nor participate in boring programming, but there is still a considerable intersection between the two. For example, when listing the game script System (GameScript System), it is not easy for WebGame to use the script, in addition, I have no special idea to implement a script system, which costs a lot. However, when I communicated with the planning team, he told me that, for example, if I had completed a task, killed XX blame, and obtained XX items, and met XX conditions, I thought I had completed the task. As I heard, this is just a real value table or FSM, a jump logic. I provided such a FSM to the user (planning here) A simple planning page, which formed a consensus on the Script "Script.

These functions have been roughly improved, and the next step is to put various expanded materials into the game. This is the so-called merging phase. A game is made up of a loop, and the materials are still subject to reverse tests.

It should be noted that since this is the time to add a lot of information, it means that the game development team's manpower investment Gantt chart is not square, but tends to be a diamond.

As mentioned above, I will regard it as a "Game Data Standard" ("Game Play Data Standard"). The English is not good, so I have to ask Uncle Qiang to regulate it again, this should also be done by experts familiar with the gaming world. Although this is not at the development level, it should be said that it is at the technical level and closely related to development. Do you remember the story of tongtianta? When talking in the same language, even the Emperor feared that the whole project team could use one language to speak and play the role of tongtian, not to mention the small game.

 

Logic Processing

"Logical processing is generally used in game engines for AI, role relationship processing, event relationship processing, and network processing operations. This layer is also known as the "game-related layer" (that is, the other is the game-independent layer) because the game's own adaptability needs have changed significantly ), in concept, it is placed at the top of the game engine, because it will directly communicate with the upper layer of the game, and then call more underlying functions to achieve the goal based on relevant processing." However, I think the above statement makes sense, but I think that the concept of logical processing is too large, and it is difficult to extract a specific module, it is everywhere. Therefore, it may be more appropriate to process data in different modules in a distributed manner.

 

Client game architecture:

The process of thinking is complex and gradual, but the result of thinking should be sublimation and simple.

 

For a complex game world, everything comes down to processing game entities. Everything is an entity, players are entities, NPC are entities, scenarios are entities, maps are entities, and these are visible entities, invisible scripts are entities, and the root of the game is entity .... Through such processing, we study various entities under a unified template. For example, the overall cycle drive of the Game is driven by a entity called Game, in this way, we can achieve the unification of complex games and simple structures.

Note: This is the result of my thoughts on the client. As mentioned above, the client and server have their own characteristics. I believe this architecture can be used for reference for development of other systems, it also needs to be discussed in depth, especially to implement the actual Code. Such practice is valuable.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.