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

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.

主站蜘蛛池模板: 瓮安县| 吉林市| 都安| 巫溪县| 鸡泽县| 台州市| 大埔县| 永德县| 靖州| 湟源县| 宜君县| 南郑县| 尼玛县| 昭觉县| 修文县| 清远市| 永安市| 且末县| 绥棱县| 和田县| 合作市| 象州县| 泰兴市| 同德县| 郧西县| 通辽市| 百色市| 灵璧县| 朝阳区| 冕宁县| 榆树市| 遵义市| 大渡口区| 辽阳市| 纳雍县| 葫芦岛市| 晴隆县| 溧阳市| 资中县| 临洮县| 保德县|