我最近进入了XNA池,并且正在学习C#中框架的所有内容。我在研究中注意到的一件事是,似乎没有被广泛接受的“正确”方式来实现GameComponents。
阅读this thread(以及其他内容)后,我发现了游戏开发人员的广泛偏好。我见过一些拥护者根本不使用GameComponents(或很少使用),而另一些拥护者声称将它们用于所有功能,直到玩家/敌人的单位,导弹等。然后有些人则采取了较为温和的方法,并为中高级实体(例如屏幕,渲染器,场景等)保留GameComponent架构,这些实体又包含并驱动其更精细的游戏单元。
归根结底,游戏开发人员需要确定如何最好地实现框架。由于StackOverflow挤满了精明的开发人员,他们忘记了比我所知道的更多的东西,因此,在我继续使用自己的框架继续走这条路之前,我想对这里的共识有一个了解。
有人在乎自己的想法吗?提前致谢!
最佳答案
我对XNA还是很陌生,因此请一salt而就。
我认为它可以归结为样式偏爱。我不确定使用GameComponent与使用更多手动方法之间的性能特征,但是我知道,就我个人而言,尝试使用GameComponent令我很快感到沮丧,因为它实际上与我的思维或编程风格不符。从本质上讲,我是从OOP,过程,函数和其他编程范例中汲取的各种东西。 GameComponent似乎正在使用严格的OOP方法。
但是我要说的是,将所有内容都做成GameComponent,甚至一般说来是一个类,在性能方面都会有问题。在游戏开发世界中,最大可读性和可维护性问题似乎是摆在刀锋上,有时您确实确实确实不得不从代码中挤出优化。例如,有时最好将您的游戏对象之一转换为struct(值类型),以便节省一些内存并阻止讨厌的垃圾收集器使游戏滞后(正如我在this question I asked中学习的那样)。
关于c# - XNA GameComponent实现首选项...?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2337844/