我目前正在为pygame编写一个RTS,并在pygame上编写了许多模块,用于常见的事情,例如高效的碰撞检测,状态系统和更多精选的精灵。现在在编写游戏时,除了Rect和Surface之外,我几乎没有写任何对Pygame本身的调用。
当谷歌搜索这个时,我还没有找到任何似乎实际上从游戏设计的pygame接管的东西。所以,我想知道是否有其他人使用任何基于pygame构建的引擎,并发现它很适合。我还计划将游戏和引擎作为开源发布,所以我想知道其他人做了多少,所以我应该做什么或整合到我的引擎中。
答案 0 :(得分:6)
Pygame本身就是SDL调用的Python包装器。我认为实际上你只需要包装一个包装器。
您总是可以构建自己的适配器API,但是您对Pygame API的特别之处在于您是否觉得需要将它与代码分开?
我认为您的通用方法,如自定义碰撞检测,可以分离到自己的引擎模块中,基本上将它与游戏代码的其余部分分开,但实质上您只是使用这种方法在Pygame之上进行分层,而不是包裹它。
修改强>
就像现在跟进一样,问题已经改变了。简短的回答,不,我不熟悉任何。您可能想查看The Independent Gaming Source forums,这些人似乎相当了解。只要确保你发现你在这里找到的任何答案。
很长的回答,可能是Pygame之间的“引擎”空间,它处理SDL的调用,我认为一些额外的逻辑(如碰撞检测),而游戏代码本身对于任何人来说都太小了为它编写通用库。基本上不同类型的游戏具有不同的引擎要求,并且所有游戏类型共享的引擎的通用部分似乎都被Pygame本身所涵盖。
如果您已经在Pygame中编写了RTS游戏,那么您当然可以将RTS引擎与游戏逻辑分开,它可能会通过分离问题来帮助您的整体设计。此外,它可能值得释放该引擎,以便其他想要在Pygame中编写RTS的人可以从中受益。