从HTML5游戏开发开始-非常困惑
我想开始用HTML5开发一个“简单”的游戏,我对网上的很多资源感到困惑。我在开发方面有着坚实的背景,但在完全不同的环境中(具有讽刺意味的是,我开始编程是因为我想成为一名游戏开发人员,这是我13年来唯一没有做过的事情……) 这种困惑源于这样一个事实:尽管我非常熟悉JavaScript,并且对HTML5有一些了解,但我不知道如何将我所知道的与所有这些新东西结合起来。例如,我想的是:从HTML5游戏开发开始-非常困惑,html,node.js,javascript-framework,Html,Node.js,Javascript Framework,我想开始用HTML5开发一个“简单”的游戏,我对网上的很多资源感到困惑。我在开发方面有着坚实的背景,但在完全不同的环境中(具有讽刺意味的是,我开始编程是因为我想成为一名游戏开发人员,这是我13年来唯一没有做过的事情……) 这种困惑源于这样一个事实:尽管我非常熟悉JavaScript,并且对HTML5有一些了解,但我不知道如何将我所知道的与所有这些新东西结合起来。例如,我想的是: 这场比赛将是国际象棋的一种实现。我有一些简单的“现成的”人工智能算法,我可以重用为单人游戏;这里的目的是学习HTML5
我知道整个事情,正如我写的,非常混乱,但这正是我此刻的感受。我不知道从哪里开始,因此任何建议都是非常受欢迎的。关于问题一:你可以给用户一个签名的cookie。例如,创建一个cookie,其中包含他的userid左右和他的userid的SHA2散列加上一个秘密的长salt(例如32字节salt左右)。 关于问题二:为了交换内容和调用远程函数,我会使用RPC库。 关于问题三:在客户端之间调用方法时使用相同的方法 客户端代码(只是一个示例):
如果您使用dnode,则不必使用游戏ID,只需将绑定到游戏的浏览器的功能手动即可。如果出于某种原因需要ID,请使用UUID模块创建长的、随机的ID—它们是不可用的。太多东西,而且可能顺序错误 在我看来,很多问题一开始并不是特别与HTML5有关 从一件显而易见的事情开始——您需要一个单独的页面(基本上是一个javascript应用程序)来下棋,所以构建它。如果你不能构建它,那么剩下的基本上是无关紧要的,如果你能构建(我不怀疑你能),那么剩下的就是在这个能力的基础上构建 现在我们来回答你的第一个问题——在你加载页面的时候,你将有一个会话,它是一个网页,就像其他网页一样,所以这就是你获得会话的方式。如果您处于脱机状态,那么您可以通过任何方式(可能是本地存储)从联机时起一直保持这种状态 你想把人工智能移动到服务器上吗?好的,所以确保前端用户交互与“界面”对话,以记录玩家的移动并检索AI移动。考虑到这种分离,您可以使用ajax(尽管我希望x是json!)调用相同参数的服务器来替换客户端上的AI 这就更好了,如果你想实现玩家对玩家,你只是在谈论从一个用户/玩家到另一个用户/玩家的服务器路由——前端代码不必更改,只是服务器在ajax调用的远端所做的更改
但对于所有这些,退后一步,一次解决一个问题——如果你这样做了,你应该到达你想去的地方,而不会让自己发疯,担心一桶看起来很可怕的问题,你可能很容易一次解决一个问题,我会让你的游戏开始运行,完全靠自己,在浏览器中。为什么选择ajax?您希望如何通过ajax制作多人游戏?长时间投票?然后处理重新连接?使用socket.io(仅用于消息传递)或dnode(用于真正的RPC),这会变得容易得多。感谢您信任我的技能(即,如果您能够构建(我毫不怀疑您能够构建)。我不确定自己是否真的可以,因为我还必须决定从何处开始。正如你所建议的,我将专注于游戏页面本身;现在我必须找到一个正确记录的框架开始。@thejh-我的错误-通过使用一些任意机制在客户端和服务器之间进行通信,应该尝试保持更多的通用性老实说,这是我试图一步一个脚印地提出的建议——这是一个问题,你可以也应该从其他问题中孤立地看待。如果是我,我会使用我的工具包,因为我所做的是.NET(-):但是其他人做不同的事情…@Murph:无论如何,这是一个好答案,我想我理解这个概念。我的两个主要问题是我在启动项目时有困难
DNode.connect(function (remote) {
this.newPeer = function(peer) {
peer.sendChatMessage("Hello!");
};
});