- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 Java8与游戏开发(七)
游戏系统会有大量的配置信息,包括从数据库中读取的配置,还有从各种文件中读取的配置,都伴随着抛出NullPointerException的可能,如果能够减少空指针,系统会更加稳定。Java8的Optional能够很好地表示可选数据,但是对于错误导致的数据缺失,无法提供有用的信息,如果仅仅使用Exception来表示错误,又会失去了使用Optional的所有好处。一个可行的方案,就是定义三种对...
2018-07-25 14:15:40 405 1
原创 Java8与游戏开发(六)
游戏系统会有大量的配置信息,包括从数据库中读取的配置,还有从各种文件中读取的配置,都伴随着抛出NullPointerException的可能,如果能够减少空指针,系统会更加稳定。Java8引入了Optional来处理可选数据,把一个有可能缺失的数据放入到一个容器里面,作为Null引用的替代品。一、能够尽快地检测出错误,方便查找原因。//Java8的Optional源码private...
2018-07-25 14:12:05 775
原创 Java8与游戏开发(五)
游戏开发很重要的一点就是系统的并发性能,体现在单位时间内处理的请求数,还有同时连接的最大用户数。基于Java语言实现的Netty不仅并发性能极高,内存的gc效率高,使得它成为Java游戏服务器的首选。Java7之前的java.util.concurrent包就有了Executors线程池,ConcurrentHashMap、ConcurrentSkipListMap等线程安全又高效的数据结...
2018-07-20 21:57:05 9215 1
原创 Java8与游戏开发(四)
要让游戏开发的过程更加Effective,必须遵从一些原则,其实就是平时的开发经验总结出来。一、优先使用工厂模式来创建对象。对于那些可选字段很多的对象,优先使用builder模式。二、谨慎地使用单例模式,Java可以用Enum实现单例模式。三、谨慎地使用缓存。大数据量的缓存,有三种方式避免内存的过度使用: WeakHashMap,更加复杂的缓存,可以用java.lang.re...
2018-07-12 22:08:46 392
原创 Java8与游戏开发(三)
游戏开发中,通常使用"n段式"代表道具和货币,也经常要把字符串转成Uniparam对象。系统一定会频繁地生成UniParam对象,所以加入了WeakHashMap作为缓存,还对比了一下性能的差异。/** * 统一变参参数配置格式 * * 定义ID : 参数1 & 参数2 & 参数3 & ... * * 定义ID : [10,20] & [测试...
2018-07-12 22:07:00 487
原创 Java8与游戏开发(二)
游戏开发要使用到一些返回码,所以总结一下经验。开发的时候,会根据条件返回错误码,通常策划还没有配置错误码的数据,应该保留后端和策划两套错误码:/** * 后端与策划的结果码数据独立分来成两套,有利于维护 * * @author 林子豪 * */public enum ResultCode implements Serializable { SUCCESS(0, "成功"), E...
2018-07-12 22:04:59 457
原创 Java8与游戏开发(一)
游戏开发和Web开发不同的地方在于,游戏对象通常是常驻内存的。当用户登录的时候会一次性把玩家某个模块的数据全部读到内存里面,以后除了维护之外,内存中的数据都不会被释放掉,需要持久化的数据定时批量地写入数据库。经常要为玩家角色存储一些数据,比如神器,装备,时装,他们都是GameObject,就像这样:publicabstractclassGameObject{ public...
2018-07-11 16:43:24 5254
原创 ResultCode类设计
经常要使用到一些返回码,所以总结一下经验。个人的另一个博客: kadima.asia开发的时候,会根据条件返回错误码,通常策划还没有配置错误码的数据,应该保留后端和策划两套错误码:/***后端与策划的结果码数据独立分来成两套,有利于维护**@author林子豪**/publicenumResultCodeimplementsSerializable{ S...
2018-07-06 21:21:07 5969 1
tbl-demo-service-master.zip
2020-08-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人