【问题标题】:Creating a board game simulator (Python?) (Pygame?)创建棋盘游戏模拟器(Python?)(Pygame?)
【发布时间】:2012-05-04 11:21:46
【问题描述】:

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

游戏是老阿瓦隆山游戏Russian Campaign

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

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

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

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

【问题讨论】:

    标签: python pygame


    【解决方案1】:

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

    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)。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 分离的目的是让实际完成工作变得更简单。那么到了学习Pygame的时候,作者只需要学习Pygame,作为一个接口。否则精灵最终会存储游戏状态。 Pygame 很难调试,文本界面则不然。
      猜你喜欢
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多