基于 Golang/WebSocket/Canvas/Protobuf 的在线匿名交流游戏

Star ☆ 游戏#

基于 Golang/WebSocket/Canvas/Protobuf 的在线匿名交流游戏

Laravel

Demo http://chat.osinger.com/#

http://chat.osinger.com/

GITHUB https://github.com/sunshinev/go-space-chat

介绍#

项目打造了一个模拟太空的环境,通过 canvas 2d 来模拟了 3D 的视觉效果。

并且在该项目中使用了 protobuf 来进行前端和后端的通讯协议,这一点非常方便!

操作#

1. 项目使用传统 WASD 按键来控制上下左右
2. 眼睛可以跟随鼠标的位置进行转动
3. 按下 space 空格可以输入消息,按下回车发送消息
4. 左上角按钮可以输入名称,点击空白处名称生效

运行#

go run main.go

该命令会启动 web-server 作为静态服务,默认 80 端口,如果需要修改端口,用下面的命令

go run main.go -web_server 8081

项目启动默认 websocket 服务端口为 9000 端口,如果需要修改

go run main.go -socket_server 9001

注意:如果修改 websocket 端口,同时需要修改 js 里面的 socket 端口

技术工具#

前端 Vue+canvas+websocket+protobuf

后端 Golang+websocket+protobuf+goroutine

有意思的难点#

这里列举几个在实现过程中,遇到的很有意思的问题

1. 如何实现无限画布?
2. 如何实现游戏状态同步?

相关链接#

Canvas 基本用法

Protobuf Guide

Vue.js

本作品采用《CC 协议》,转载必须注明作者和本文链接