五分钟在SAE上架设一个网络射击游戏

五分钟在SAE上架设一个网络射击游戏

本文展示的是如何快速的在SAE上架设一个多人太空大战游戏。

游戏示例地址:http://shooterclient.applinzi.com

游戏源码

NodeGame-Shooter 是Github上的一个用H5和Node.js实现的多人射击游戏,基于GNU协议,项目地址:https://github.com/BonsaiDen/NodeGame-Shooter

游戏的玩法十分简单,打开页面,选择一个颜色,输入用户名,直接开打,非常干脆,一点多余的动作都没有,碎片时间利用率极高。

自己架设的时候,需要事先把NodeGame-Shooter下载到本地:

$ git clone https://github.com/BonsaiDen/NodeGame-Shooter.git

Server

Server是网络游戏数据交互的核心,负责客户端的数据通信。

在SAE上创建Node.jsServer:

五分钟在SAE上架设一个网络射击游戏_第1张图片

在本地创建server的目录,并把NodeGame-Shooter/server下的所有数据复制过来:

$ git clone https://git.sinacloud.com/shooterserver
$ cd shooterserver
$ cp /path/to/NodeGame-Shooter/server/* . -R

SAE的云主机默认把80端口转发到本地的5050端口,所以server.js中的端口需要修改:

Shooter.Server({
    'port': 5050,
    'status': false,
    'recordFile': './../record[date].js',
    'record': false,
    'flash': false
});

创建package.json文件:

{
  "name": "shooter-server",
  "description": "",
  "version": "0.0.1",
  "private": true,
  "author": {
    "name": "sae",
    "email": "[email protected]"
  },
  "dependencies": {
    "express": "^4.13.3"
  },
  "engines": {
    "node": "10.10.0"
  },
  "scripts": {
    "start": "node server.js"
  }
}

把Server上传到云主机:

$ git add -A
$ git commit -sm "Init server"
$ git push origin HEAD:master

客户端

NodeGame-Shooter/client/config.js中设置Server的地址:

var HOST = 'shooterserver.applinzi.com', PORT = 80

用浏览器直接打开client/index.html就能打开 游戏。

分发客户端

目前,进行多人游戏前,需要把NodeGame-Shooter/client目录复制到本地再打开。如果想要游戏能像页游一样开箱即用,可以另外创建一个云主机作为客户端分发。

创建Go主机:

五分钟在SAE上架设一个网络射击游戏_第2张图片

下载SAE的Go Demo, 并把客户端复制到目录下:

$ git clone https://github.com/sinacloud/go-getting-started.git shooterclient
$ cd shooterclient
$ cp /path/to/NodeGame-Shooter/client . -R

删除Demo的main.go,创建新的main.go:

package main

import (
	"net/http"
	"os"
	"github.com/gin-gonic/gin"
)

func main() {
    port := os.Getenv("PORT")
    
	if port == "" {
		port = "5050"
	}

	r := gin.Default()
	r.StaticFS("/client", http.Dir("./client"))
	r.LoadHTMLGlob("client/*.html")
	r.GET("/", func(c *gin.Context) {
		c.HTML(http.StatusOK, "index.html", nil)
	})

	r.Run(":" + port)
}

client/index.html下所有资源路径加入client/前缀:

NodeGame: Shooter

 
 
 


 
 








client/game.events.js下:

this.sound = new SoundPlayer(7, 'sounds', [

改成

this.sound = new SoundPlayer(7, 'client/sounds', [

保存修改:

$ git add -A
$ git commit -sm "Init client"
$ git push origin HEAD:master

这时,在浏览器输入云主机的地址,游戏就开始了:

五分钟在SAE上架设一个网络射击游戏_第3张图片

转载于:https://my.oschina.net/chenchacha/blog/3043254

你可能感兴趣的:(git,javascript,json)