Engine Design and business model

Source: Internet
Author: User

This article is excerpted from "free wage earners"Www.gameres.comAlthough there are not many words in the speech, the comments on several engines are in one sentence.

Engine Design and business model

Many friends, including me, like to read the code of foreign engines and compare the advantages and disadvantages between engines. However, you will find that each engine is designed for its developers and users. An excellent engine is not only designed to be excellent, but also adapted to its own business (community) mode. In this article, we will focus on the quake 3 engine, epic unreal 3, open-source ogre3d graphics engine and the corresponding orz extension framework.

I. quake3 = Genius mode

A long time ago, we had only access to the code of this game engine. It can be said that Mark is a mentor in the Chinese game graphics industry. Many of my predecessors started from this engine and decided to develop a Chinese graphics engine. The Unreal Engine and ogre3d engine described later are more or less affected by this engine.

When talking about the quake3 engine, you can't help but understand the ID company and his talented programmer camark. John carmark is known as the father of 3D games because of his groundbreaking application of 3D rendering to real-time technology. He is Newton in the graphics field, one of the idols of all game developers (the other is Miyamoto Mao ). There is a book titled the revelation of doom, which tells the story of carmark and his ID company. In this book, you will find that carmark is more obsessed with procedural technology than a human video ).

Therefore, quake3 and the graphics engine products of other ID companies (once) aim to develop the best and latest graphics technology to maximize the genius of carmark. ID is the company of Kakma, and quake3 is also the engine of Kakma. Like Steve Jobs and Apple, no one can ignore the connection between camark and quake3.

1 quake3 attaches great importance to efficiency, which facilitates the implementation of future graphics before hardware support.

2. The quake3 code is short and exquisite, and Mark is constantly optimized for it.

3 quake3 is not as modular as other engines, so camark can do it by himself.

4. quake3 does not need to be restructured. camark is good at rewriting the entire engine in the shortest time.

5 quake3 is extremely simple for users, but it is difficult to expand. If you want to scale it out, camark will rewrite an engine.

The value of quake3 and the same series of engines in the game history is understandable. However, you will find that if you want to modify this engine, you should basically understand all the code. These things are very tight. If you want to change the image scenario management algorithm, you will find that you basically need to modify the entire engine. You can easily make the same game as Raytheon 3, but it is hard to change it to another type of game. (You will understand that when you were about to make an RPG project, you would even use resignation to threaten the ID management layer .)

Many domestic Friends attempted to imitate the quake3 structure to implement a graphics engine or game engine, but most of them failed, and the other part was not successful (STRUGGLING ). This is not to say that the quake3 engine is not good because it is difficult for China to have a similar environment. The business environment of quake3 is that you need a company that relies on technology to make money, not products. In addition, you also need a talented programmer like camark to drive it. Based on these two points, we can say that the success of quake3 cannot be copied.

Ii. Epic's unreal 3 engine = business model

Many of my friends have unreal 3 engine code, but I have not read it. I just learned some related information from some friends who have read unreal 3. The information includes,

1 unreal 3 Development of the game, if not extremely complex, just the script and editor. It has an extremely powerful script and editor system. (Some friends of Shanghai Yubi said ).

2 unreal 3 code has a lot of violations of conventional knowledge, for example, full of diamond inheritance (C ++ virtual inheritance ). (A friend who has read the code said)

3 unreal 3 code is ugly (a friend who developed a Chinese quake engine said ).

4. Unreal supports a large number of platforms with excellent graphic effects.

I cannot confirm many of the above terms, but we think it is correct.

There is a story about the birth of unreal in gameshield, and the boss doesn't look good at re-developing an engine for the magic arena because there is already a camark. It is too difficult to go beyond the capma's graphics technology. However, they found that they could be ahead of ID companies in terms of the editor functions. Basically in the next 10 years, unreal relied on this to become the most successful business engine and beat Carma in the business field.

1 unreal 3 has powerful scripts and editors to save development costs for companies that buy engines.

2 unreal 3 has some diamond inheritance and compact code. This is for commercial compact purposes. Even if some of the source code is open, you also need to be authorized to use it separately. (The friend mentioned above told me)

3 unreal 3 is the most important target for the current, beautiful graphic effects, and more platform support.

These factors represent the success of unreal 3. Some other commercial engines, such as gamebro, also focus on editors rather than better code quality. Rather than providing a good structure, it is better to achieve more results. They also achieved corresponding success in their respective positioning.

Iii. ogre3d graphics engine = open source Mode

Ogre3d graphics engine (http://ogre3d.cn) is the most famous Open Source graphics engine (none), including the domestic "Dragon eight area", "Genghis Khan", etc, and Commercial works of torch light abroad use this graphic engine as the basis for development. The open-source game engine, including irrlight, in the same period as ogre3d, was not as successful as ogre3d.

The most important thing about ogre3d is to target an open-source community from the beginning of the design, rather than a business or technology.

The good structure of ogre3d brings more functions, but the opposite cannot. The open-source community requires a good structure for more people to participate, without the construction period of the commercial engine. Therefore, there is enough time to develop (ten years or even more), and it is not a matter of time.

Ogre3d adopts a plug-in structure. The advantage of doing so is that some community developers can expand their functions without having to understand and change the entire engine. Similarly, the open-source quake3 is hard to achieve this.

Ogre3d is used only for graphics engines, but not for other parts.

The first step is to use other achievements of the open-source community, such as OIS or cegui. More importantly, because it does not involve any game logic, the core module is about 5 MB in size, and functional engines can be used in combination. In this way, ogre3d can adapt to different fields, not only games can be used, it can be used in various simulation fields. At the same time, irrlight provided many game-related things. Although the semester curve was slow, the application field was idle.

In terms of technical details, ogre3d achieves node and content separation in the scenario diagram. The scenario manager can be used as a plug-in, which is the original intention of ogre3d design.

Ogre3d uses a large amount of software engineering knowledge, which leads to a gap between ogre3d and other engines in poor computing environments. However, because of the continuity of open-source engines and the improvement of hardware performance, these problems no longer exist ten years later.

Like other open-source products, ogre3d has high requirements on developers (compared with some commercial products). However, ogre3d has attracted the participation of many open-source developers (hackers.

Based on the above points, ogre3d has been an unprecedented success in the open-source field. This engine development model is not successful in the commercial field.

Iv. orz game development framework = Distribution Mode

Orz game development framework (http://bbs.ogre3d.cn) is the domestic ogre3d community development of the game framework, he used ogre3d refuse to develop graphics outside of the code basis. It provides a series of development tools and the bonding of various functional engines. I have to say that orz has adopted an extremely clever method in the game engine. He handed over the development of underlying functional engines to other open-source products, focusing on the implementation of logic and interfaces. Compared with other parts, this part of code is rarely affected by hardware upgrades. Therefore, you can use less energy to constantly optimize the existing code. However, the ogre3d community also has many development frameworks, including the well-known yake and goof. Why can orz stand out from these frameworks?

Traditionally, the basic problem with the organizational structure of software development is the "it takes a longer time to add programmers to an extended Project ". Generally speaking, Brock's law holds that, as the number of developers increases, the complexity and communication costs of projects increase by Square, while performance only increases in a straight line. In the preceding figure, a traditional development cooperation mode is provided on the left. In this structure, Every programmer must understand the module interfaces developed by other developers, as the number of communication paths between developers increases, the latter has a square relationship with the number of developers (more accurately, follow the formula n * (N-1)/2, here N is the number of developers ). Based on the experience of open-source software, if you have a project that is large enough and requires the cooperation of enough people, the only way you can do is to minimize the dependency between programmers.

Orz proposes an ideal distributed development model. In this model, we define a public knowledge base that defines interaction rules (messages and other information). All programmers complete their code according to the conventions provided here, there is no direct interaction with other programmers. In this case, increasing the number of programmers does not lead to excessive increase in the cost of communication between developers.

In some programs that require deterministic results, such as scientific computing programs, it is difficult to achieve the ideal distributed development model. This is because programmers must work closely together to get a positive result. However, for a game program, it aims to bring entertaining and unknown simulation. Just like in life, you don't need or cannot) know what others think and do. As long as you follow the same rules, it is a good system. The more unpredictable the results, the more pleasant and pleasant the system is. This is exactly what we have in distributed development. For example, if you write a dog and he writes a cat, we can communicate with each other based on the knowledge of pets, you don't have to determine whether they are friends or war. Even if we add a pet pig in, we can communicate with it correctly-as long as he complies with the rules.

Orz is designed based on this distributed development model, which is consistent with its dream. The top hackers define game rules that everyone can follow. thousands of programmers and their code form a real virtual world.

Orz approaches this goal through a series of tools and means. It combines the code of programmers Based on plug-ins and provides the message system and ID manager to determine the public knowledge base.

The orz framework is a game development framework that can complete commercial products, but it goes further. It tries its best to increase the discrete nature of the structure while ensuring sufficient operation efficiency. All game content can be defined as different types of entities that can be dynamically loaded at runtime through plug-in systems. They communicate and collaborate with each other through "and their powerful" messaging systems. Programmers who develop game entities do not need to understand the logic of other entities. As long as they comply with a messaging system, they can collaborate on this basis.

But I have to say that this is an unconfirmed ideal. It remains to be seen whether this goal can be achieved.

In conclusion, all game engines need to be placed in a specific business environment to evaluate their success. You can say that quake3 is too rigid, unreal code is ugly, and ogre3d is not running fast. orz is just a bad tomato. However, these problems are a trade-off between their fields. In my opinion, just like a single person, if the environment is excluded, there is no absolute perfection in the world. The same is true for engines. They all hope to be as perfect as possible in their respective environments and conditions. If we turn a blind eye to these objective real-time indicators, the evaluation of the engine is unfair.

Unreal Engine

Raytheon hammer III

Ogre3d graphics engine

Orz game development framework

Related Article

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.