从现在项目的开发中发现,目前Slipstream的Message模块有点重量级,可以从这么几个地方来改进..首先,目前的MessageService是通过handler.lst列表的方式来找到对应Message的Handler,那么这个无疑加重了程序开发中的复杂程度,一个游戏,不下三四十个OPCODE是家常便饭,那么开发的复杂程度就会加大..
因此,参考JPA的实现,作出如下改进:参考Hibernate的EntityManager中packaging包里的实现,采用JarVistor+Scanner的形式进行自动发现..
同时加入@MessageCreator,@MessageDecoder等Annotation,对开发进一步进行简化,减少对接口的依赖,并且采用Annotation的形式更易于去开发,也能对轻量级实现的时候每个Message就只写在一个类当中..
其次,引入ServerHandler和ClientHandler的概念,因为像我们开发永恒之塔的模拟器当中,服务器和客户端消息的封装机制是不一样的..
接着,加入@MessageProcessor,给对应GameProxy的每种消息提供默认实现..在GameProxy中引入boolean handleMessageImpl(Message msg),那么对handleMessage就能作出如下改写
然后这样就能支持自定义处理和默认的处理,既能方便开发中的自定义对信息的处理,又能支持默认的实现..那么在开发过程中就能大大的简化..
今天就说这么多,意图只是抛砖引玉..
希望更多的人爱上使用Project Darkstar进行开发..
有人跟我说过,要建立个Project Darkstar的圈子..我何尝不想呢,只是JE规定只有原创该方向文章超过10个才能建立..我又不愿意胡乱写10个文章,为的是给大家提供的都是开发当中遇到的种种问题和具体的解决方法..
以后开发当中有其他的开发的遇到的问题和解决之道,会在这里跟大家分享..
还有就是小弟马上面临大学毕业了,还没找到工作,因此想和几个志同道合的同学创业,谁知道关于现在建立公司和网游方向的东西..希望能指导一下小弟..
因此,参考JPA的实现,作出如下改进:参考Hibernate的EntityManager中packaging包里的实现,采用JarVistor+Scanner的形式进行自动发现..
同时加入@MessageCreator,@MessageDecoder等Annotation,对开发进一步进行简化,减少对接口的依赖,并且采用Annotation的形式更易于去开发,也能对轻量级实现的时候每个Message就只写在一个类当中..
其次,引入ServerHandler和ClientHandler的概念,因为像我们开发永恒之塔的模拟器当中,服务器和客户端消息的封装机制是不一样的..
接着,加入@MessageProcessor,给对应GameProxy的每种消息提供默认实现..在GameProxy中引入boolean handleMessageImpl(Message msg),那么对handleMessage就能作出如下改写
void handleMessage(Message msg){
if(handleMessageImpl(msg)) return;
//the code for finding default processor
//...
}
然后这样就能支持自定义处理和默认的处理,既能方便开发中的自定义对信息的处理,又能支持默认的实现..那么在开发过程中就能大大的简化..
今天就说这么多,意图只是抛砖引玉..
希望更多的人爱上使用Project Darkstar进行开发..
有人跟我说过,要建立个Project Darkstar的圈子..我何尝不想呢,只是JE规定只有原创该方向文章超过10个才能建立..我又不愿意胡乱写10个文章,为的是给大家提供的都是开发当中遇到的种种问题和具体的解决方法..
以后开发当中有其他的开发的遇到的问题和解决之道,会在这里跟大家分享..
还有就是小弟马上面临大学毕业了,还没找到工作,因此想和几个志同道合的同学创业,谁知道关于现在建立公司和网游方向的东西..希望能指导一下小弟..