• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sunshinev
V2EX  ›  程序员

Golang 开发的匿名互动在线聊天游戏,大家多提建议

  •  7
     
  •   sunshinev ·
    sunshinev · Nov 6, 2020 · 8298 views
    This topic created in 2193 days ago, the information mentioned may be changed or developed.

    http://chat.osinger.com/

    欢迎进入游戏

    概念来自 EVE 游戏,以及蝌蚪聊天室,不过该游戏代码都是全新实现的

    操作方式:

    1. W A S D 进行上下左右

    2. 空格开启聊天框,回车发送消息

    3. 左上角修改昵称,点击空白修改成功

    作者 GIT: https://github.com/sunshinev/go-space-chat

    前端 Vue+canvas+websocket+protobuf

    后端 Golang+websocket+protobuf+goroutine

    Supplement 1  ·  Nov 6, 2020
    建立了 一个 QQ 群,可以大家进来提提意见

    690393633
    Supplement 2  ·  Nov 20, 2020

    f9384698a2ad9eefe5ccb334819ab2aa1605866996.jpg

    1. 新增用户上线全天时间分布图
    2. 增加所在城市展示
    3. 调整UI界面
    4. 增加帧率展示
    71 replies  •  2020-11-20 18:14:45 +08:00
    Rekkles
    Rekkles
    Nov 6, 2020
    1
    牛逼。
    lights
    lights
    Nov 6, 2020
    2
    好玩
    kevinfk2
    kevinfk2
    Nov 6, 2020
    3
    没人呢
    Adriel
    Adriel
    Nov 6, 2020
    4
    idea 不错
    zoikhemlab
    zoikhemlab
    Nov 6, 2020
    5
    没啥人呀
    crokily
    crokily
    Nov 6, 2020
    6
    wowow 酷
    我最近也在写一个类似的游戏聊天室,但会更侧重于自习室,配上屏幕共享,白板等功能,灵感源于:gather town,和上次在逆水寒开的那个 AI 学术会议。
    就感觉这种交流方式其实挺酷的,不像游戏也不像聊天室,怎么说呢,感觉好像也没啥优点,就觉得有点像未来人与人之间的沟通方式
    chong3397
    chong3397
    Nov 6, 2020
    7
    逛了半天没看到人呐=。=
    sospopo101343793
    sospopo101343793
    Nov 6, 2020❤️3
    8
    个人位置初始化的时候,按 ip 去进行区域划分是不是更好一些,这样能和周围的人聊天了,不过这个 idea 的核心应该还是抓住"孤独"社会这个点,起个中文名就叫"萍水相逢"
    coderxy
    coderxy
    Nov 6, 2020
    9
    有点意思啊
    thet
    thet
    Nov 6, 2020 via iPhone
    10
    Cool
    May725
    May725
    Nov 6, 2020
    11
    好玩,赞
    cocowind
    cocowind
    Nov 6, 2020
    12
    敏感词好像没有过滤成功?
    macy
    macy
    Nov 6, 2020
    13
    如果游戏属性大可以和贪吃蛇一样,可以吃掉对方,如果是社交属性大,可以是碰撞以后自动配对聊天
    richzhu
    richzhu
    Nov 6, 2020
    14
    @macy 哇晒!!这个建议好!
    kiracyan
    kiracyan
    Nov 6, 2020
    15
    也太 Lonely 了吧
    mout
    mout
    Nov 6, 2020
    16
    看你说有俩有意思的问题,打算分享下经验不?

    > 1. 如何实现无限画布?
    > 2. 如何实现游戏状态同步?
    sunshinev
    sunshinev
    OP
    Nov 6, 2020❤️1
    17
    @crokily 还有很多需要优化的地方,
    1. canvas 绘制优化,现在不够流畅
    2. 后端现在就只是一个节点,还没实现分布式集群
    3. 优化下消息体,进行消息压缩
    4. 添加互动元素
    5. 进行登录验证,不然乱说话,再加个后台管理
    sunshinev
    sunshinev
    OP
    Nov 6, 2020
    18
    @macy 很有想法呀!!不错不错
    sunshinev
    sunshinev
    OP
    Nov 6, 2020
    19
    @mout 首先实现了 3D 深度效果,其次画布是固定大小的,每次移动的时候(比如左移),会把画布最右侧的点移到左侧来做填充
    sunshinev
    sunshinev
    OP
    Nov 6, 2020
    20
    @mout 游戏状态同步,要约定每个动作,通过上传动作、服务端分发消息、浏览器动作参数解析,这样的,可以看下控制台里面 ws 的消息体
    WFDAK
    WFDAK
    Nov 6, 2020
    22
    找人很麻烦啊
    200983844
    200983844
    Nov 6, 2020
    23
    找不到人呢
    rodrick
    rodrick
    Nov 6, 2020
    24
    (不知道能否实现)要是能在画面上没有人的时候在屏幕边缘加上其他人所在位置的箭头标识就好了,至少可以让人知道哪里有人
    Maboroshii
    Maboroshii
    Nov 6, 2020
    25
    看起来是全局广播,而且我移动的时候发请求的帧率也不低, 估计人多的时候应该会卡爆 。。
    luckyrayyy
    luckyrayyy
    Nov 6, 2020
    26
    我看不到人啊
    Maboroshii
    Maboroshii
    Nov 6, 2020
    27
    动作同步这一块儿还挺有意思的。。不过我只会做服务端。
    体验了一下,我看见其他人的移动似乎也不是连续的,可能是因为卡顿的原因?
    服务器可以做一个类似帧同步一样的逻辑,先收集客户端的状态,固定频率下发广播给其他客户端,这样体验可能好一些
    raincode
    raincode
    Nov 6, 2020
    28
    人多起来了
    jasonkayzk
    jasonkayzk
    Nov 6, 2020
    29
    创意不错,但是进去之后发现只有我自己 2333
    raincode
    raincode
    Nov 6, 2020
    30
    可以加个坐标啊
    kuner0614
    kuner0614
    Nov 6, 2020
    31
    走半天没看到其他人,体验太差了 555
    ghjacky
    ghjacky
    Nov 6, 2020
    32
    进去走迷路了,找不到人了。。
    strongcoder
    strongcoder
    Nov 6, 2020
    33
    找不到人啊
    toomlo
    toomlo
    Nov 6, 2020
    34
    最远可以跑多远啊
    Zeuminqi
    Zeuminqi
    Nov 6, 2020
    35
    有没有小地图看哪里有人呀?
    SuperMild
    SuperMild
    Nov 6, 2020
    36
    加一些小星球进去当作座标吧
    brant777
    brant777
    Nov 6, 2020
    37
    发现只有我自己,孤独加倍~
    gmm
    gmm
    Nov 6, 2020 via Android
    38
    好孤独ᥬ😂᭄
    mahaonan1994
    mahaonan1994
    Nov 6, 2020❤️1
    39
    我的 ID 是 两年没有性生活,大家来找我聊天啊
    mahaonan1994
    mahaonan1994
    Nov 6, 2020❤️1
    40
    @crokily focusmate 和你这个很像,之前用了很长一段时间
    crokily
    crokily
    Nov 6, 2020
    41
    @mahaonan1994 好的好的我去看看
    iColdCat
    iColdCat
    Nov 6, 2020
    42
    先加收藏夹 上班划水的时候进去玩会 哈哈哈
    ProbeWong
    ProbeWong
    Nov 6, 2020
    43
    好玩
    leewendao
    leewendao
    Nov 6, 2020
    44
    好喜欢。太强了。
    claymore94
    claymore94
    Nov 6, 2020
    45
    发现个 bug,D 键不好使?
    sunshinev
    sunshinev
    OP
    Nov 6, 2020
    46
    @Maboroshii 人一多的确卡,不知道是浏览器处理信息处理不过来,还是 canvas 绘制的问题,应该是绘制帧率的问题吧
    sunshinev
    sunshinev
    OP
    Nov 6, 2020
    47
    @toomlo 无限远
    RLinux
    RLinux
    Nov 6, 2020
    48
    可以可以
    we8105
    we8105
    Nov 6, 2020
    49
    没人
    PEAL
    PEAL
    Nov 6, 2020
    50
    玩了五分钟,孤独到差点流泪
    vision1900
    vision1900
    Nov 6, 2020
    51
    https://bruno-simon.com/
    我心中的神一般的网站
    sunshinev
    sunshinev
    OP
    Nov 6, 2020
    52
    @vision1900 厉害,真的不卡
    zuanist
    zuanist
    Nov 6, 2020
    53
    @wispx v2 支持 markdown 吗
    cp19890714
    cp19890714
    Nov 6, 2020
    54
    websocket 通信频率太高了吧. 快速按一下按键, 就有 10 个消息发送.
    Keyes
    Keyes
    Nov 6, 2020
    55
    哈哈哈哈 LZ 玩到了 EVE 的本质
    大型太空主题科幻多人在线聊天室
    necomancer
    necomancer
    Nov 6, 2020
    56
    灰常创意,期待能上线。但建议学习相关法律法规与政策,聊天类管理可严格了。
    xrr2016
    xrr2016
    Nov 6, 2020
    57
    木有人...
    xmge
    xmge
    Nov 6, 2020
    58
    能不能做一个类似区块链,无中心的聊天工具呢?
    xmge
    xmge
    Nov 6, 2020
    59
    ```js
    // 快捷键 F1 ( ctrl+f1 ) 复制
    function hotkey() {
    var a = window.event.keyCode;
    // if ((a == 112) && (event.ctrlKey)) {
    if (a == 112 && userSetting.shortcut == 1) {
    event.preventDefault();
    setClipboard();
    event.keyCode=0;
    event.returnValue=false;
    return false;
    } else if (a == 112 && (event.ctrlKey) && userSetting.shortcut == 2){
    setClipboard();
    } else if((a == 67) && (event.ctrlKey) && userSetting.shortcut == 3){
    setClipboard();
    }else {
    console.log("关闭了快捷键");
    }
    }

    ```
    datou
    datou
    Nov 6, 2020
    60
    提醒一下

    搞匿名聊天室服务可能有人会找你喝茶....
    leon7777
    leon7777
    Nov 6, 2020
    61
    502
    ZaytonHoneycutt
    ZaytonHoneycutt
    Nov 7, 2020
    62
    @macy 吃别人以前有个叫 agar.io 的
    RLinux
    RLinux
    Nov 7, 2020
    63
    @vision1900 好介绍
    jimmyismagic
    jimmyismagic
    Nov 7, 2020
    64
    好玩
    sunshinev
    sunshinev
    OP
    Nov 7, 2020
    65
    这个的确应该限制下
    sunshinev
    sunshinev
    OP
    Nov 7, 2020
    66
    @datou 的确是个问题,要不我就限制下,只能发表情算了。。。。
    sunshinev
    sunshinev
    OP
    Nov 7, 2020
    67
    @sss495088732 是过滤成功的,只是,你自己能看到,别人看不到了
    happylty
    happylty
    Nov 7, 2020
    68
    @PEAL #50 哈哈哈哈哈
    sunshinev
    sunshinev
    OP
    Nov 7, 2020
    69
    进行了升级
    1. 过滤了 html 标签进行了转义
    2. 进行了上下线的系统提示
    3. 自己的消息也会进行敏感词过滤
    4. websocket 消息发送频率为 30ms
    macy
    macy
    Nov 9, 2020
    70
    @ZaytonHoneycutt 嗯,感觉还是增加一些社交属性,触碰即可聊天
    sunshinev
    sunshinev
    OP
    Nov 20, 2020
    71
    新增用户上线全天时间分布图
    增加所在城市展示
    调整 UI 界面
    增加帧率展示
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1617 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 131ms · UTC 09:03 · PVG 17:03 · LAX 01:03 · JFK 04:03
    ♥ Do have faith in what you're doing.