gamemaker吧 关注:13,613贴子:94,877
  • 4回复贴,共1

【GMS2】【学习工程】用GMS2制作的P2P聊天工具 - SEChat

取消只看楼主收藏回复

为了学习与探索GMS2即兴整的一个工程... 其实主要目的是用于传不可名状的内容,当然用起来和写起来也挺有趣的。写工程的过程中还是探索到了GMS2许多地方会存在的各种瑕疵和问题,以及也顺带尝试了用自己的能力是否能把这个工具做到能用的地步。关于这个工程涉及的一些可供参考的地方下面会提到。
界面:


IP属地:湖北1楼2021-09-03 20:33回复
    一些问题:
    1. GMS2 的网络编程(GML)。GMS2底层关于TCP的处理,GMS2自行封装的网络函数,关于TCP socket相关实现的不完善以及个人采取的一些改进方式来实现异步效果的文件传输。
    2. GMS2 使用的原生缩放方式绘制精灵或表面效果惨不忍睹。使用现成的shader可以提供更好的缩放效果。
    3. 关于现有的大部分教程用于GMS2的GLSL方式编写的高斯模糊shader效果并不好,实际似乎也并非真正的高斯模糊。
    4. 用 GMS2 播放多种音频格式的方式——这里用到了另外一个工程FMODGMS,并尝试去理解了其源代码及具体使用方式。
    5. 传输过程内容使用RSA with rc4方式进行加密(文字、文件、图片、建立连接),虽然这部分并不完善,也不能实际完全防范中间人攻击...
    6. 我觉得很多人会对GMS2中利用DLL来实现C++与GML协作的部分感兴趣...(而这确实能极大加速程序效率,即使是YYC编译的GML也远远无法比上DLL的效率)
    上面的问题是本工具在实现过程中具体尝试去解决的一些问题,最终达成了我认为还算可以的效果...
    这些问题很多关于GMS2的教程是从未提到的,至少确实也是因为内网关于GMS2的教程不多,外网关于GMS2的教程大多浅显... 如果真的有人想了解SEChat的实现过程我或许会再写一些详细的内容,也可能会将源代码放出(虽然很丑


    IP属地:湖北2楼2021-09-03 20:48
    收起回复
      Git-hub页面:g i t h u b . c o m / ajcxsu/SEChat
      度盘:
      /s/1kKPY2c7Ylh2WYMdwQWl6HQ
      jm5k
      所有的图片将以无损方式保留文件名传输。所有传输文件都会被保存在程序目录下的Downloads文件夹内。
      欢迎尝试,如果需要在实际网络环境中测试,连接方式类似一些游戏的局域网联机,你可能需要一个公网IP和对外开放端口或使用内网穿透工具(如Sakura Frp)。


      IP属地:湖北4楼2021-09-03 20:56
      回复
        顺带一提因为本人其实并不对网络编程和网络安全的了解有多深,所以实现效果多多少少会打点折扣
        如果有问题欢迎各位大佬指正
        虽然感觉也没有人看


        IP属地:湖北5楼2021-09-03 21:01
        收起回复
          目前 SEChat 已经在 github 开源,欢迎对本十分草率的学习项目的任何部分提出建议与批评
          同时本项目也在进行大幅度地(随性)重构与更新,未来会尝试加入更多有趣的内容与探索学习 GMS2 的更多功能(bug)


          IP属地:湖北8楼2022-03-07 17:31
          收起回复