使用道具 举报
1。是否具有通用性,也就是能否让各种不同的游戏使用这同一个协议来让客户端和服务器端、以及和其他客户端进行通信; 2。是否具有可扩展性,也就是以后能否给协议增加内容以适应变化,同时还有个含义:能否让各个游戏的设计者根据具体的游戏对通信协议进行扩充以实现某些功能; 3。要确保功能、效率和安全性的统一协调;
1。聊天,包括聊天室和p2p的私聊; 2。通知系统,这样游戏服务器有什么消息可以通知客户端,消息分位两类:一类是给游戏玩家看的,一类是给程序发送消息的; 3。插件系统,一个插件就做成一个动态连接库(Linux和Windows下都有动态连接库的机制),插件系统要能管理好插件,包括: [quote] 3.1。插件的载入和卸载; 3.2。当运行一个插件时,这个插件一定要使用一个线程来工作,这个线程要和主程序相对独立起来,当某个插件线程发生了错误(比如死锁等)而不能正常工作或不响应用户操作时,主程序要能判断插件线程状态并对出现的问题进行处理(比如重新启动出错的插件线程、记录出错的插件按照插件出错的机率来安排此插件线程的运行优先级等); 3.3。从插件里提取这个插件的说明(希望能有这个游戏的玩法说明 ); 3.4。插件和主程序的兼容性检测(或者是版本匹配检测?)
5.1。保存和管理聊天记录; 5.2。保存和管理游戏记录(比如玩家也许会要求下棋后保存棋谱);
1。向主程序说明游戏的界面然后由主程序来管理这个界面,具体的比如: [quote] 向主程序说明一个按扭控件,然后告诉主程序:当这个按扭被按下后执行foo()函数(把这个函数的地址给出来……) 当然,Timer(记时器控件)、socket(网络控件)、Datebase(数据库控件)等非界面控件也是必不可少的……
2.1。规则检测(到了服务器端还得检测一次); 2.2。游戏中一些多媒体效果的显示等; 2.3。游戏界面中发生的各种事件的处理(通过回调函数来实现); 2.4。这个游戏的网络数据的打包、解包、分析、处理等工作; ……
负责通用功能,与具体游戏细节无关……
一个插件对应一种游戏,每个游戏“房间”都是单独的一个线程……
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
GMT+8, 2025-2-22 02:48 , Processed in 0.026616 second(s), 12 queries .
© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.