-
编程总纲
-
服务器负责主导整个系统的流程,必须对整个系统有清晰的认知,而不是策划主导.(包括表的设计),一切设计应以减少整体的工作量为目标,如果相同的工作量做取舍,优先级应是服务器>客户端>策划.
-
能提前运算的尽量提前运算,能缓存的尽量缓存.而不是在实际的业务去做复杂的运算(比如配置中复杂格式解析,应该在起服之后就进行,而不是在业务使用的时候进行)
-
尽量减少不必要的运算, 例如:发送协议给多人的时候, 就应该是Message Build一次,都发这一份build出来的数据(以现有代码举例, 那么gate和其它进程之间应该存在一个广播协议, 包头带上玩家id, 包体是给每个玩家爱的消息)
-
设计大型系统的时候想办法进行计算错峰,应尽量避免毛刺现象,比如同时进入副本,结算。此类特殊状态节点应予以评估。
-
-
配置相关
-
自定义类中不允许以任何方式缓存配置文件, 即AbstractConfigData继承类不可以以成员变量的形式存在于业务的类中.(受框架管理的IConfigCache继承不在此列) 。缓存会导致reload过程中无法更新业务自己缓存的配置.
/** * new关键字用于创建一个新的对象实例,而getInstance()方法通常用于获取一个单例对象(Singleton)的实例 * 用于获取怪物配置信息 * @return */ public MonsterConfig getMonsterConfig() { // ConfigDataManager.getInstance(): 调用ConfigDataManager类的静态方法getInstance(),以获取该类的单例实例。得到这个实例后再调用这个实例中的getById()方法,传入两个参数:MonsterConfig.class(怪物配置类用于封装)和this.getConfigId()(具体哪一个怪物) 不同id不同怪物 return ConfigDataManager.getInstance().getById(MonsterConfig.class, this.getConfigId()); }
public class BloodyCastleDupMap extends DevilSquareDupMap { /**配置文件不可以直接定义在自定义类中获取需要通过反射获取通过对应的id获取对应的怪兽类型 * 血色城堡配置信息 */ private BloodyCastleConditionConfig bloodyConfig;
-
Java游戏项目编码注意事项
最新推荐文章于 2024-08-24 18:11:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)