【GMS2】【学习工程】用GMS2制作的P2P聊天工具 - SEChat
gamemaker吧
全部回复
仅看楼主
level 10
NordLandeW 楼主
为了学习与探索GMS2即兴整的一个工程... 其实主要目的是用于传不可名状的内容,当然用起来和写起来也挺有趣的。写工程的过程中还是探索到了GMS2许多地方会存在的各种瑕疵和问题,以及也顺带尝试了用自己的能力是否能把这个工具做到能用的地步。关于这个工程涉及的一些可供参考的地方下面会提到。
界面:
2021年09月03日 12点09分 1
level 10
NordLandeW 楼主
一些问题:
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的实现过程我或许会再写一些详细的内容,也可能会将源代码放出(虽然很丑[阴险]
2021年09月03日 12点09分 2
以及还有一个问题[阴险] 关于GMS2对文件路径调用函数设计的一些涉及WinAPI的神秘问题
2021年09月03日 12点09分
你这p2p保打洞吗
2021年09月04日 05点09分
@MikuScarlet 我前面的回复好像有点错误 [委屈] 应该就是不保打洞。连接方式还是需要拥有公网IP或工具辅助的一方充当服务端。
2021年09月04日 06点09分
@NordLandeW 好吧…我还以为是打洞的那种p2p……
2021年09月05日 11点09分
level 10
NordLandeW 楼主
Git-hub页面:g i t h u b . c o m / ajcxsu/SEChat
度盘:
/s/1kKPY2c7Ylh2WYMdwQWl6HQ
jm5k
所有的图片将以无损方式保留文件名传输。所有传输文件都会被保存在程序目录下的Downloads文件夹内。
欢迎尝试,如果需要在实际网络环境中测试,连接方式类似一些游戏的局域网联机,你可能需要一个公网IP和对外开放端口或使用内网穿透工具(如Sakura Frp)。
2021年09月03日 12点09分 4
level 10
NordLandeW 楼主
顺带一提因为本人其实并不对网络编程和网络安全的了解有多深,所以实现效果多多少少会打点折扣[委屈]
如果有问题欢迎各位大佬指正
虽然感觉也没有人看[委屈]
2021年09月03日 13点09分 5
[真棒]我用GM的知识盲区一个是网络,另一个是AI。
2021年09月04日 01点09分
level 15
看起来不错,赞个[真棒]
2021年09月03日 14点09分 6
level 9
我想来学习学习
2022年01月18日 22点01分 7
代码已经开源 [吐舌]
2022年03月07日 09点03分
level 10
NordLandeW 楼主
目前 SEChat 已经在 github 开源,欢迎对本十分草率的学习项目的任何部分提出建议与批评 [滑稽]
同时本项目也在进行大幅度地(随性)重构与更新,未来会尝试加入更多有趣的内容与探索学习 GMS2 的更多功能(bug) [吐舌]
2022年03月07日 09点03分 8
2022年03月07日 09点03分
1