官术网_书友最值得收藏!

The benefits of the monolithic game object

It is worth noting that even if you choose this approach, you can still have your core engines decoupled from the game object. When writing the graphics engine, for example, instead of passing in a game object as a parameter to a Draw function, we could pass in the members that the graphics engine needs:

void Graphics::SetTexture(int textureID); 
void Graphics::SetTextureCoords(const float* coordArray);
void Graphics::Draw(const M5Mtx44& worldMtx);
vs
void Graphics::Draw(const Object& obj);

Another argument for creating objects like this is that we know exactly what is in our game object. Compared with other approaches, we never need to cast our object or search for properties within the object. These operations make the code more complicated and have a slight performance cost. By using a simple struct, we have direct access to the variables and the code is easier to understand.

The only time we might use this approach is if we know 100% that the number of object types won't be large, for example, if you are making a puzzle game and the only game objects are sheep and walls. Puzzle games are often very simple and use the same mechanics over and over. In this case, this is a good approach because it is easy and doesn't require any time building a complicated system.

主站蜘蛛池模板: 寿光市| 章丘市| 雷山县| 佛坪县| 昂仁县| 昌宁县| 绵竹市| 阿拉善右旗| 乐至县| 淳安县| 陆河县| 大庆市| 蕲春县| 读书| 上栗县| 惠东县| 织金县| 红桥区| 沿河| 湖口县| 施甸县| 金沙县| 弥勒县| 乌拉特中旗| 攀枝花市| 朝阳区| 习水县| 华容县| 梁平县| 宜城市| 祁连县| 陇川县| 永定县| 历史| 梁平县| 阿鲁科尔沁旗| 彭阳县| 登封市| 邵东县| 阜城县| 定日县|