首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从HTML5游戏开发开始-非常混乱

从HTML5游戏开发开始-非常混乱
EN

Stack Overflow用户
提问于 2011-10-30 15:24:27
回答 2查看 874关注 0票数 4

我想开始用HTML5开发一个“简单”的游戏,我对我在网上找到的很多资源感到非常困惑。我有一个坚实的开发背景,但在完全不同的环境中(讽刺的是,我开始编程是因为我想成为一名游戏开发人员,这是我13年来唯一从未做过的事情……)。

这种困惑源于这样一个事实:虽然我非常了解JavaScript,我对HTML5也有一些了解,但我不知道如何将我所知道的东西与所有这些新东西混合在一起。举个例子,我是这么想的:

  1. 这场比赛将是国际象棋的实施。我有一些简单的“准备好的”AI算法,我可以在单个玩家中重用;这里的目的是学习HTML5游戏开发,所以这个部分现在并不是很重要。
  2. 我想围绕这个游戏建立一个网站。为此,我会使用一个“常规”CMS,因为我已经知道其中许多,它会更快地放置它。
  3. 然后我就有了游戏本身,在它的“离线”版本中,它与网站无关,据我所知,它会独立存在于一个页面中。这是的第一个问题:如何让游戏意识到用户的会话?登录将由CMS来处理(这样应该更容易,因为用户Managememt已经实现了)。
  4. 作为进一步的步骤,我想把人工智能移到服务器上。这是的第二个问题:如何使游戏发送玩家的操作到服务器,以及如何获得答案?
  5. 稍后,我想带一个PVP元素到游戏,即一对一的多人(就像好的老国际象棋)。这是的第三个问题:如何将信息从客户端发送到另一个客户端,并保持对话继续进行。为此,人们建议我看一看Node.js,但它是另一个我不知道如何“粘合”其他元素的元素。 下面是PVP会话中一个动作的示例,它已经让我头疼:玩家1将他的移动发送到服务器(游戏如何与Node.js对话?)。我需要识别游戏Id (我应该在哪里和如何存储它?),并确保玩家没有手动修改它,这样它就不会干扰其他人的游戏(如何?)。

我知道整件事,正如我所写的,是非常混乱的,但这正是我此刻的感受。我不知道从哪里开始,所以任何建议都是非常受欢迎的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-30 15:44:09

太多的事情,可能是错误的顺序。

在我看来,很多问题一开始与HTML5并没有什么特别的关系。

从显而易见的事情开始--您想要一个下棋的页面(基本上是一个javascript应用程序),那么就构建它吧。如果你不能构建它,那么剩下的就根本不相关了,如果你可以构建(我不怀疑你能构建),那么剩下的就是建立在这个功能之上。

所以我们来问你的第一个问题--在你加载页面的时候,你会有一个网页,这是一个网页,就像任何其他网页一样,所以你就会得到这个会话。如果你是离线的,那么你已经坚持从你在线的时候,以任何方式-大概是本地存储。

你想把人工智能移到服务器上吗?好的,所以请确保前端用户交互与一个“界面”对话,以记录玩家的移动并检索AI移动。考虑到这种分离,您可以用ajax替换客户机上的AI (尽管我希望x是json!)调用具有相同参数的服务器。

这样做会变得更好,如果您想从一个用户/播放机路由到另一个用户/播放器--前端代码不需要更改,这只是服务器在ajax调用的远端所做的事情。

但是,尽管如此,退一步,一次解决一个问题--如果你这样做了,你应该到达你想要去的地方,而不必为一桶看似可怕的问题而发狂,你可能一次就能很容易地解决一个问题,我会让你的游戏在浏览器中独立运行。

票数 2
EN

Stack Overflow用户

发布于 2011-10-30 15:31:19

关于第一个问题:您可以给用户一个签名的cookie。例如,创建一个cookie,其中包含他的userid和他的userid的SHA2散列,加上一个秘密的长盐(例如,32字节盐)。关于第二个问题:为了交换东西和调用远程函数,我会使用RPC库dnode。关于第三个问题:在客户端之间调用方法时使用相同的方法。

客户端代码(只是一个例子):

代码语言:javascript
运行
复制
    DNode.connect(function (remote) {
        this.newPeer = function(peer) {
            peer.sendChatMessage("Hello!");
        };
    });

如果使用dnode,则不必使用游戏IDs -只需将函数交给绑定到游戏的浏览器即可。如果您出于某种原因需要ID,请使用UUID模块创建长而随机的IDs -它们是不可猜测的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7945784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档