基于pygame构建的引擎
我现在正在用pygame写一个即时战略游戏,并且在pygame的基础上写了一些模块,处理一些常见的功能,比如高效的碰撞检测、状态系统和更丰富的精灵。现在在写游戏的时候,除了Rect和Surface,我几乎不再直接调用pygame的功能了。
我在网上查找相关信息时,发现似乎没有什么能完全替代pygame的游戏设计引擎。所以我想知道有没有其他人使用过基于pygame的引擎,并且觉得好用的。我还打算把我的游戏和引擎作为开源项目发布,所以我想了解一下其他人做了多少,以及我应该做些什么或者把什么整合进我的引擎里。
1 个回答
6
其实,Pygame本身就是一个用Python封装SDL调用的工具。简单来说,你只是再给一个已经封装好的东西加了一层封装。
你当然可以自己做一个适配器API,但你到底对Pygame的API有什么不满,觉得需要把它和你的代码分开呢?
我觉得你可以把一些通用的方法,比如自定义的碰撞检测,分离出来,放到一个独立的引擎模块里,这样就能把它和你的游戏代码分开。但实际上,这种做法只是给Pygame加了一层,而不是完全把它包起来。
补充:
现在问题变了,简单回答一下,我对这方面不太熟悉。你可以去看看独立游戏源论坛,那里的朋友们似乎很有经验。记得把你找到的答案也分享回来。
详细说说,Pygame和游戏代码之间的“引擎”空间可能太小,没人会为它写一个通用的库。不同类型的游戏对引擎的需求各不相同,而Pygame本身已经涵盖了所有游戏类型共享的通用部分。
如果你在Pygame里写过一款即时战略游戏,那你当然可以把即时战略引擎和游戏逻辑分开,这样可能会让你的整体设计更清晰。此外,把这个引擎部分发布出来,其他想在Pygame里写即时战略游戏的人也能从中受益,这也是个不错的主意。