创建棋盘游戏模拟器(Python?)(Pygame?)

时间:2009-07-21 04:03:34

标签: python pygame

我决定开始编程我最喜欢的一个。我之前从未做过游戏,也从未用Python做过大型项目。

游戏是旧的阿瓦隆山游戏Russian Campaign

我一直在玩PyGame,并且想知道是否有理由不尝试使用PyGame并使用其他引擎/语言。

使用Pygame构建它会有什么缺点?

我并不担心人工智能,主要是我喜欢让游戏的最小两个版本运行起来。奖金将是保存游戏状态以及通过网络播放的能力。

为了开始这个项目而做的和不要非常感激。

2 个答案:

答案 0 :(得分:26)

分离“后端”引擎(跟踪棋盘状态,从前端接收移动命令,生成随机数以解决战斗,向前端发送更新,处理保存和恢复特定游戏,。 ..)来自“前端”,基本上为所有这些提供用户界面。

PyGame是一种适用于客户端前端的技术,但你可以实现多个前端(可能是PyGame,一个基于浏览器的,一个基于文本的前端,等等)。当然,后端可能不太关心PyGame或其他UI技术。 Python适用于大多数前端(除了那些需要在Javascript,Actionscript等中,如果你为浏览器,Flash等编写前端;-)并且对于后端非常好。

将后端和前端作为单独的进程运行,并尽可能简单地进行通信 - 对于回合制游戏(我相信这是一个游戏),XML-RPC或一些更简单的变体(JSON有效载荷)来回通过HTTP POST并回复它们,比如说)看起来最好。

我从后端开始(可能正如我所提到的那样使用JSON作为有效负载),作为一个简单的WSGI服务器(可能有一些werkzeug等来帮助使用mdidleware),以及simple-as-dirt调试命令行客户端。在每个步骤中,我将充分利用服务器端(后端)或客户端(前端),避免做太大或任何同时“步骤”。我不会使用“重型”技术,也不会使用任何大型框架来做我背后的神奇事物(没有ORM,Django,SOAP,......)。

确保你使用一个好的源代码存储库(例如hg,或者如果你知道你将独自完成它,可以使用svn,如果你已经知道它们,可以使用bazaar或git)。

答案 1 :(得分:2)

我认为你不应该关心多平台支持,前端和后端的分离,使用XML-RPC和JSON进行通信的多个进程,服务器等。

放弃你的奖金并专注于你的主要想法:一个回合制的,两个玩家的游戏。这是你的第一款游戏,所以你需要学习很多东西,并且一次性处理这一切可能会让人不知所措。