Gamebryo game engine analysis (I) Overall Design

Source: Internet
Author: User

(Because this engine is a commercial engine, I will not paste the "source code" like this: Class ooxx {public...}; but I will do this:
So, technically, technically, I don't breaking any laws here. But if you want fuck me, go ahead, I don't give a shit .)
(Also: reference please indicate the source of ghost xjyhust@gmail.com; otherwise take care of me, I just come to buy some sauce .)

Gamebryo has many projects, which are organized like this:
Core Library: corelib. The core runtime of the engine includes the following items:

You can view the functions of these modules by name. Nidxrenderer is actually the implementation of the rendering class in nimain. Looking at the macro definition, we can see that gamebryo is actually designed to support the PS3 (at least), but I didn't find the PS3 Renderer, this may be because the Win32 SDK is used.

Application and auxiliary function library:

This project is a helper for the core, including some basic components and built-in visual performance monitoring tools required for creating the game editor. It seems that it also supports outputting logs to webpages, very intuitive.

I cannot open some projects here, because I have not obtained the complete code, and the code of the core library is complete. The code of the most critical shader system is not found yet (maybe the project is not installed, and the code may be there ). The editor code should also not exist... Unfortunately...

 

In general, gamebryo's framework design is also wrapped in layers (large programs should be like this), because it is a cross-platform engine design, I feel that there are a lot of simple macro definitions in it. Of course this is more efficient, but it may be troublesome to modify the maintenance later. Cross-platform replacement is more convenient. For example, the Renderer, Xbox, PS3, and Wii have different Renderer structures, of course, the best choice is to implement functional differences in an inherited way. Because there are not many differences, macro definition is a better choice, and the efficiency must be high.

But one thing is that the memory on the PS3 and Xbox is so small that I don't know how to design the memory management system and resource management system for this cross-platform engine. This is quite different from that on the PC, inheritance may be easier to implement, such as memsysps3 and memsysxb... I have no development experience on non-PC platforms, but I feel that the memory management policies on these platforms are very different from those on PC. The main technical highlight of ID tech 5 is that their engine can run three platforms at the same time, and the artist does not need to make any changes (zero-delta), which is amazing. Unreal seems to be unable to do this, and some levels still need to be modified (such as the texture size and script size ...).

The source code I just obtained is ready for a good look. After all, this is the most formal in the commercial code I have. (Who knows what other methods can be used to find these resources besides the plug-ins and Google searches ...;) )

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.