V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sunshinev
V2EX  ›  程序员

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

  •  7
     
  •   sunshinev ·
    sunshinev · 82 天前 · 4828 次点击
    这是一个创建于 82 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    第 1 条附言  ·  82 天前
    建立了 一个 QQ 群,可以大家进来提提意见

    690393633
    第 2 条附言  ·  68 天前

    f9384698a2ad9eefe5ccb334819ab2aa1605866996.jpg

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

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

    搞匿名聊天室服务可能有人会找你喝茶....
    leon7777
        61
    leon7777   82 天前
    502
    ZaytonHoneycutt
        62
    ZaytonHoneycutt   82 天前
    @macy 吃别人以前有个叫 agar.io
    RLinux
        63
    RLinux   81 天前
    @vision1900 好介绍
    jimmyismagic
        64
    jimmyismagic   81 天前
    好玩
    sunshinev
        65
    sunshinev   81 天前
    这个的确应该限制下
    sunshinev
        66
    sunshinev   81 天前
    @datou 的确是个问题,要不我就限制下,只能发表情算了。。。。
    sunshinev
        67
    sunshinev   81 天前
    @sss495088732 是过滤成功的,只是,你自己能看到,别人看不到了
    happylty
        68
    happylty   81 天前
    @PEAL #50 哈哈哈哈哈
    sunshinev
        69
    sunshinev   81 天前
    进行了升级
    1. 过滤了 html 标签进行了转义
    2. 进行了上下线的系统提示
    3. 自己的消息也会进行敏感词过滤
    4. websocket 消息发送频率为 30ms
    macy
        70
    macy   79 天前
    @ZaytonHoneycutt 嗯,感觉还是增加一些社交属性,触碰即可聊天
    sunshinev
        71
    sunshinev   68 天前
    新增用户上线全天时间分布图
    增加所在城市展示
    调整 UI 界面
    增加帧率展示
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1611 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:39 · PVG 01:39 · LAX 09:39 · JFK 12:39
    ♥ Do have faith in what you're doing.