14

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

该游戏是旧的阿瓦隆山游戏俄罗斯战役

我一直在玩 PyGame 并且想知道是否有理由不尝试使用 PyGame 来做这件事并追求其他一些引擎/语言。

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

我并不担心人工智能,主要是我只想让游戏的最少两个玩家版本启动并运行。奖金将是保存游戏状态以及通过网络进行游戏的能力。

非常感谢启动这个项目的注意事项。

4

2 回答 2

25

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

PyGame 是一种适用于客户端前端的技术,但您可以实现多个前端(可能是 PyGame 前端、基于浏览器的前端、用于调试的基于文本的前端等)。当然,后端可能不太关心 PyGame 或其他 UI 技术。Python 适用于大多数前端(除了需要使用 Javascript、Actionscript 等的前端,如果您为浏览器、Flash 等编写前端;-),对于后端来说绝对没问题。

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

我将从后端开始(可能使用 JSON 作为有效负载,正如我所提到的),作为一个非常简单的 WSGI 服务器(可能需要一点 werkzeug 或类似的东西来帮助处理 mdidleware),以及一个简单的 as -dirt 调试命令行客户端。然后,在每个步骤中,我都会小心地丰富服务器端(后端)或客户端(前端),避免做太大或任何同时的“步骤”。我不会使用“繁重的”技术,也不会使用任何大型框架在我背后做神奇的事情(没有 ORM、Django、SOAP ......)。

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

于 2009-07-21T04:18:01.943 回答
2

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

放下你的奖金,专注于你的主要想法:一个回合制的两人游戏。这是你的第一个游戏,所以你需要学习很多东西,同时处理所有这些可能会让人不知所措。

于 2009-07-21T18:04:42.403 回答