- Game Development Patterns and Best Practices
- John P. Doran Matt Casanova
- 221字
- 2021-07-02 23:43:48
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.
- Mobile Application Development:JavaScript Frameworks
- 數(shù)字媒體應用教程
- Photoshop智能手機APP UI設計之道
- Python進階編程:編寫更高效、優(yōu)雅的Python代碼
- 云計算通俗講義(第3版)
- Monitoring Elasticsearch
- R Deep Learning Cookbook
- Learning Concurrent Programming in Scala
- HoloLens與混合現(xiàn)實開發(fā)
- CRYENGINE Game Development Blueprints
- 計算機應用基礎項目化教程
- JavaScript程序設計:基礎·PHP·XML
- 軟件測試(慕課版)
- Android應用開發(fā)攻略
- 精益軟件開發(fā)管理之道