球球, 大作, 作战, 源码, 解析
本帖最后由 吴大大 于 2020-3-17 18:49 编辑 v2-e163e9c18c851b9b40b12796818d64c1_1200x500.jpg 名站网址导航提供 名站网址导航 2020-3-17 18:46 名站分类目录 鉴于http://agar.io类型游戏的火爆场面,一些公司纷纷效仿,一时间出现各种《XX大作战》类型的游戏。出于学习的目的,亦是做些技术和方案储备,接下来会有大概10篇文章,分析下面这款使用nodejs编写的开源“球球大作战”。由于该游戏采用服务端运算、客户端显示的方式,服务端的逻辑处理是该源码的重点,故而系列文章主要针对服务端。通过这套源码,可以学习到“一种基于nodejs的简单网站站点的服务器实现具体的方法”“一种简单的服务端物理逻辑的实现方式”“一种基于redis pub/sub的跨服设计思想”“nodejs语法、框架及其使用方式”等内容。 系列文章将会分析huytd/agar.io-clone的源码,这是一套简约而不简单的Agar.IO实现。该项目使用NodeJS开发,使用socket.IO作为网络通信,使用HTML5实现客户端。 下图为游戏运行画面,游戏规则如下。 1、玩家可以移动鼠标控制小球 2、当小球吞食场景中的食物或其他玩家控制的小球时,玩家控制的小球会变大 3、小球越大,移动速度越慢 4、小球的质量代表它的大小,质量为它吞食的食物或其他玩家的质量之和 5、游戏目标是尽可能的吞食其他玩家,使小球变大 6、玩家刚出生时会有无敌属性,直到它吞食食物 7、每当有玩家进入游戏,场景中会生成3个食物 8、每当吞食食物时,场景中亦会生成一个新的食物 v2-e163e9c18c851b9b40b12796818d64c1_720w.png 名站网址导航提供 名站网址导航 2020-3-17 18:46 名站分类目录 第一步便是要让游戏运行起来,只有运行起来了,才谈得上后续的源码分析。为了“从零开始”,笔者购买Ubuntu系统的腾讯云,新的系统几乎没有网站安装额外软件,一步一步网站安装所需的软件,然后将游戏运行起来吧。笔者选用了最低一档配置的网站站点的服务器,花费近50大洋(此处是不是应该发个求赞助的链接?)配置如下图所示。 v2-45b58b4ef367b6854b4167bdb80853aa_720w.png 名站网址导航提供 名站网址导航 2020-3-17 18:46 名站分类目录 1、网站安装nodeJs 游戏使用nodejs开发,那就必须要网站安装nodejs,可以有两种具体的方法网站安装。 具体的方法1 :输入sudo apt install nodejs,这是最简单的网站安装具体的方法了。不过使用该方式网站安装的网站程序名叫为nodejs,而不是普遍使用的node。可以使用sudo ln -s /usr/bin/nodejs /usr/bin/node建立名为node的连接,以解决这个问题。 具体的方法2:下载源码、编译、网站安装。具体可以参考这篇文章在Ubuntu下网站安装Node.JS的不同方式-技术 ◆ 学习|Linux主机环境.中国-开源社区 (文章里使用的node-v6.9.5 要改为最新版的) 完成后,可以使用node -v查看nodejs版本号,以验证是否成功网站安装。 2、名站分类目录具体代码如下文件 从github上下载源码,然后名站分类目录到linux网站站点的服务器上。如下图所示,笔者将源码名站分类目录到/home/ubuntu/agar.io-clone-master目录下 v2-4a98a80d201d4bb9dc3e9b482aa32d35_720w.png 名站网址导航提供 名站网址导航 2020-3-17 18:46 名站分类目录 3、网站安装npm npm(node package manager)是nodejs的包管理和分发工具,一般网站安装nodejs后都需要网站安装该软件,可以使用以下命令网站安装:sudo apt install npm 4、网站安装gulp 项目使用到了gulp,需要网站安装它。gulp是一个前端构建工具,开发者可以使用它在项目开发过程中自动执行常见任务,比如复制文件,比如替换文件中某些字符。进入源码目录,执行sudo npm install -g gulp 即可网站安装。 5、网站安装项目所需的包文件 进入源码目录,执行npm install即可网站安装项目所需包文件。npm install会检查当前目录下的package.json文件,文件包含了项目所需的模块,npm根据该文件的描述下载这些文件并把模块放到./node_modules目录下。关于package.json的格式可以参考这篇文章package.json for NPM 文件详解 6、运行网站站点的服务器 在源码目录下执行gulp run,可以看到网站站点的服务器启动的提示信息。 7、运行客户端 运行浏览器,输入地址即可,笔者的腾讯云ip为139.199.179.39,由于默认配置了3000端口,所以要输入http://139.199.179.39:3000/ ,即可看到如下的游戏界面。 在笔者的试验中,该页面报错,点击按钮没有反应。原因是src/client中的index.html最后面有这么一句,<script src="//code.jquery.com/jquery-2.2.0.min.js"></script>,该数据库语句用于加载jquery的,而http://code.jquery.com/jquery-2.2.0.min.js无法访问(或国内网络访问速度慢),导致报错。只要换个文件地址即可,例如改成下面这样: <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script > 运行游戏,服务端也会打印出相应的信息,如下图所示。 v2-e387db51d37a5ea13985f30671e40648_720w.png 名站网址导航提供 名站网址导航 2020-3-17 18:46 名站分类目录 把游戏运行起来后,下一步就要分析下游戏的流程了。 QQ截图20200317181333.png 名站网址导航提供 名站网址导航 2020-3-17 18:46 名站分类目录 v2-0d517a2b892733d3740045ca41c3ae8d_720w.png 名站网址导航提供 名站网址导航 2020-3-17 18:46 名站分类目录 内容来自:https://zhuanlan.zhihu.com/p/26193373 |
有哪些快速吸引流量的方式,简单又有效