- 浏览: 34831 次
- 性别:
- 来自: 深圳
最新评论
-
zcqshine:
protobuf 的编解码为什么没直接采用 netty 提供的 ...
java游戏开发入门2_基于netty+protobuf的游戏框架 -
liyuzhel:
为什么需要把登陆队列与逻辑处理队列分开呢
java游戏开发入门2_基于netty+protobuf的游戏框架 -
beykery:
你还是看看jprotobuf吧,别折腾了
游戏开发中的protobuf自动解码DEMO
文章列表
游戏并发量较大,主要有三方面需要特殊处理:并发,nio以及持久化.今天将自己项目开发中的多线程心得总结一下,入门不久,希望多交流指导.目前开发中处理并发主要用到一下方法:
synchronized.有锁定对象或者锁定mutext(互斥量),例如世界boss中血量的修改,所有玩家共享一个血量;
将客户端请求放入队列中,队列有单线程处理(executors.newSingleThreadExecutor).由于队列的先后顺序避免了加锁.例如在注册需要检查登录名字是否重复,将所有注册登录请求放入一个队列中处理;
每个玩家一个锁.维护一个map(playeri ...
出现一个异常提醒,
cannot find Asia/shanghai in zip file /usr/local/go/lib/time/zoneinfo.zip
must have one register DataBase alias named `default`
其实是大小写问题
$ unzip -l -f /usr/local/go/lib/time/zoneinfo.zip | grep -i shanghai
172 07-06-2016 08:15 Asia/Shanghai
root:pwd@tcp(10.9.46.22:330 ...
这里讲解在xp下面的golang环境配置.
你已经配置好了sublime text的golang开发环境,即可以运行helloworld,有代码自动提示.如果还未,参考
这里假设项目名字为projcetDemo,c盘建立如下文件夹结构c:\godemo\src\projectdemo.在下面建立一个main.go文件.如下图:
用sublime打开.然后选择保存到工程,我这里就用projectDemo作为工程名.如下图:
添加文件夹到工程,这里选择是projectDemo文件夹,结果如下图(前提是你安装了side bar):
打开sublime自动产生的工程文件,添 ...
/**
刚开始学习游戏开发时想找一个基于netty的游戏demo十分困难,工作一段时间后了解框架后将其分享出来;
该框架是从别人框架移植修改完善而来,不是我一个人写,算是借花献佛;
实际业务开发比此框架要复杂得多,去繁从简主在体现核心思想;
这是游戏开发入门的第2篇,如果有不完善的地方请多多指导.
*/
框架示意图如下,源代码参看:github:
客户端连接进来,由acceptor负责接入验证,创立channel后再转发给从线程池(workerReactor);
package com.server.java.netty;
import io.netty.boots ...
本人为游戏服务端开发者,开发中protobuf的解码操作比较麻烦,每次解码都需要写一大堆重复的代码,还需要处理错误,设计了一个工具类,现在将业务逻辑简化一下和除去业务敏感信息,发布出来,使用源码需要注意以下几点:
1.所有protobuf 消息基于 generatedMessage;
2.protobuf运行时需要配置protobuf.exe位置
3.反射比较耗费性能,设计中将反射等操作放在系统初始化进行,将结果放置到map中,业务运行时直接取出;.
4.开发中结合注解还能进一步简化配置,不需要添加class 到map中
5.对于编码错误,可能为第三方恶意尝试命令码,编码错误统一管 ...
游戏项目,编码使用protobuf,这里将配置写下来,方便以后查找,同时给大家分享:
首先下载protobuf相关文件,需要两个:编译使用的protoc.exe和和jar包.有两种方法安装,推荐第二种.
jar包下载地址:protobuf.jar,exe下载地址
是推荐用maven,如果你maven有使用镜像库(oschina)更好,具体配置如下:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactI ...
如果不知道选择哪款IDE,请参看谢大介绍:。我个人最喜欢sublime ,简单高效美观。
文章sublime安装不详细,参考这里:
按照上面安装后,通过CMD窗口运行helloworld程序,运行helloworld成功则配置结束.但部分XP系统可能会不正常,主要是无自动提示或者无法编译,具体为: Failed to construct ipc body: Encode Error: 'utf8' codec can't decode byte 0xb2 in position 0: unexpected code byte
发现使用sublime+text3可以解决这个问题 ...