在javascript中开始游戏开发。在JS和Server语言之间划清界限

时间:2011-07-28 23:03:05

标签: javascript python

我非常精通php,我也在学习python。我一直想创建基本游戏一段时间,并希望在python中创建它。但是为了拥有一个花哨的流畅界面我需要使用javascript(我不太关心flash / silverlight路线)。所以我决定开始在JavaScript中查找游戏开发。在这样做的过程中,我看到的大多数例子都是几乎完全用javascript完成的游戏。其中许多游戏相当不错。

但我想知道的是,如果我将python和javascript结合起来创建游戏;我应该更多地依赖javascript并让python做一些背景的东西吗?或者我应该只使用javascript作为基本的UI元素,动画,华而不实的东西和诸如此类的东西,并保持核心游戏引擎在python中。或两者之间的某种混合。

对于php / python我主要用于MVC样式框架。因此,如果我只使用JS作为视觉效果,我会像在普通应用程序中那样大量使用视图文件中的内容吗?我知道我可以完全用任何一种语言制作游戏,但是要使用两者中的优点,我不太确定我应该在哪里画线让python做起作用并让JS完成工作。

另外作为参考,我想使用一些高级功能,如canvas / svg等。 WebGL并不是那么多。我想要练习的游戏是等距风格的RTS。游戏主要用于学习。我并没有真正计划发布它。

赞赏任何意见。


澄清: 游戏将基于网络。我的网络服务器是nginx。我想要的游戏是多人游戏,其中多人同时在线玩游戏。想想魔兽世界。每个服务器最多可以容纳N个玩家。当那个人说80%满了新的一个。或类似的规定。我希望玩家能够真正地与其他人进行互动。这就是为什么我也以同样的方式调查node.js,但对此还不太了解。但似乎它可能适合。

- 更新:我还计划使用mongodb作为数据库,如果这对任何人来说都很重要。

2 个答案:

答案 0 :(得分:1)

python可能会在为您的Web服务器供电的服务器上运行。

如果你想编写多人客户端 - 服务器游戏,那么许多服务器代码/逻辑将在python中。

如果您想编写更简单的单人游戏游戏,那么您的所有代码都在客户端(浏览器)中并且将是javascript。 Python就是为你的网页游戏提供服务。

如果你想编写桌面游戏,可以使用pygame库在python中完成。

所以取决于你想要的东西。

  • 多人网页游戏:JS中的客户端,pythong中的服务器
  • 单人网页游戏:JS中的客户端,仅用于提供Web文件的服务器
  • 桌面游戏:python中的客户端。

答案 1 :(得分:1)

在某种程度上,可以从经济力量的角度考虑问题,在这种力量中,您可以最大化自己的效用并最大限度地降低成本。对于具有客户端/服务器方面的游戏,作用于您的实际力量是

  • 消耗服务器资源会花费您实际的钱,但消耗客户端资源不会
  • 客户可能会试图作弊,因此您必须验证来自客户端的一些数据
  • 如果您消耗过多的客户资源,客户就不会想要玩,因为他们的效用超过了他们的成本。

这些要点中的每一点都可以是微妙的,值得进行一些额外的讨论。

将游戏送到客户端的实际成本分为两部分,即运行游戏所需的物理硬件成本,以及将其分发给客户端的网络带宽成本。通常你可能不得不换一个换另一个;优化网络使用意味着您必须更好地预测客户需要或做什么,增加处理需求,但将更多处理工作卸载到客户端意味着向客户端发送更多数据。

但是,客户只能做很多工作。例如,你不能总是相信客户告诉你他们应该在哪里,因为这可能意味着他们在空中飞来飞去,或者从一个地方传送到另一个地方;你必须确保客户实际上可以做他们说他们正在做的事情。然而,游戏的特殊性质决定了你必须走多远。在男子MMO游戏中,通常采取极端措施来限制机器人玩家的活动,但这通常会对真实玩家产生负面影响。即使在滥用者工作的情况下,严格合作的游戏也经常遭受损失。

并非所有潜在的游戏用户都拥有最好的可用硬件,或者愿意升级到最新,最快的浏览器。因此,制作成功的游戏通常意味着减少图形,以便大多数用户可以玩它

令人惊讶的是,通常情况下客户端或服务器方法实际上并不能产生理想的结果。相反,你必须在两个地方中实现关键游戏逻辑,在客户端上使游戏感觉对用户有响应,同时在服务器上减轻滥用并公平地决定玩家与玩家的交互。