用javascript开始游戏开发。JS和服务器语言之间的界限在哪里

用javascript开始游戏开发。JS和服务器语言之间的界限在哪里,javascript,python,Javascript,Python,我相当精通php,也在学习python。我一直想创建一个基本的游戏已经有一段时间了,我想用python创建它。但是为了有一个漂亮流畅的界面,我需要使用javascript(我不太喜欢flash/silverlight的路线)。所以我决定开始用JavaScript进行游戏开发。在这样做的过程中,我看到的大多数示例都是几乎完全用javascript编写的游戏。这些游戏很多都很不错 但我想知道的是,我是否将python和javascript结合起来创建游戏;我是否应该更加依赖javascript,让p

我相当精通php,也在学习python。我一直想创建一个基本的游戏已经有一段时间了,我想用python创建它。但是为了有一个漂亮流畅的界面,我需要使用javascript(我不太喜欢flash/silverlight的路线)。所以我决定开始用JavaScript进行游戏开发。在这样做的过程中,我看到的大多数示例都是几乎完全用javascript编写的游戏。这些游戏很多都很不错

但我想知道的是,我是否将python和javascript结合起来创建游戏;我是否应该更加依赖javascript,让python做一些后台工作?或者我应该只对基本的UI元素、动画、浮华的东西等等使用javascript,并将核心游戏引擎保持在python中。或者两者之间的某种混合

对于php/python,im主要用于MVC风格的框架。所以,如果我只在视觉上使用JS,我会像在普通应用程序中一样大量使用视图中的文件吗?我知道我完全可以用这两种语言制作一个游戏,但要充分利用这两种语言的优点,我不太确定我应该在哪一方面划清界限,让python和JS来完成这两种语言的工作

作为参考,我还想使用一些高级功能,如canvas/svg等。其实没那么多WebGL。我想练习的游戏是等距风格的RTS。游戏主要是为了学习。我真的不打算发布它

欢迎您的任何意见


澄清: 游戏将基于网络。我的网络服务器是nginx。我想要的游戏是多人同时在线玩的多人游戏。想想魔兽世界吧。每台服务器最多可容纳N名相互对抗的玩家。当那一个满了80%时,一个新的旋转起来。或者类似的东西。我希望玩家们能够在现场相互交流。这就是为什么我也以同样的方式研究了node.js,但还不太了解它。但似乎它能适应

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

python可能会在为web服务器供电的服务器上运行

如果您想编写多人客户机-服务器游戏,那么许多服务器代码/逻辑将使用python

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

如果您想编写桌面游戏,可以使用pygame库在python中编写

这取决于你想要什么

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

在某种程度上,这个问题可以从经济力量的角度来考虑,在经济力量方面,你可以最大化自己的效用,最小化成本。在具有客户机/服务器方面的游戏中,作用在您身上的实际力是

  • 使用服务器资源会花费您实际的金钱,但使用客户端资源不会
  • 客户机可能会试图作弊,因此您必须验证来自客户机的一些数据
  • 如果您消耗了太多的客户机资源,客户机将不想玩游戏,因为他们的成本超过了他们的效用
这些要点中的每一点都非常微妙,值得进一步讨论

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

不过,客户只能做这么多工作。例如,你不能总是相信客户告诉你他们可能在哪里,因为这可能意味着他们在空中飞行,或者从一个地方传送到另一个地方;你必须确保客户确实能做他们说他们正在做的事情。不过,游戏的特殊性质可以决定你要走多远。在man MMO游戏中,通常会采取极端措施限制机器人玩家的活动,但这通常会对真实玩家产生负面影响。即使虐待者在工作时,严格合作的游戏通常也会受到较少的伤害

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


令人惊讶的是,通常情况下,客户机或服务器方法都不会产生理想的结果。相反,你必须在客户端和服务器上实现关键的游戏逻辑,这样游戏才能对用户做出响应,同时也可以在服务器上实现关键的游戏逻辑,以减少滥用,公平地决定玩家之间的交互。

我在文章中更详细地阐述了游戏本身。多人游戏(虽然开始可能是单人游戏)。我认为python将拥有核心游戏引擎,JS将基本上完成所有的视觉效果。我还看过GameJS,它是PyGame的JS实现。这很酷。@luckysmack python在web服务器上运行,JS在浏览器上运行。两者之间有着明显的区别。你必须用JS来编写核心游戏,因为运行服务器端的Python也可以很快。如果游戏足够大,我可以看到使用python后端的好处。我只是在想