自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小毛驴的博客

三大爱好:游戏、动漫、姑娘

原创 【Netty4.X】Netty源码分析之ByteBuf(七)

ByteBuf是一个缓冲区,用于和NIO通道进行交互。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。每当你需要传输数据时,它必须包含一个缓冲区。虽然Java NIO 为我们提供了原生的多种缓冲区实现,...

2017-07-05 16:37:58

阅读数 919

评论数 1

原创 【Netty4.X】Netty源码分析之NioEventLoop(六)

继承关系: NioEventLoop初始化NioEventLoop(NioEventLoopGroup parent, ThreadFactory threadFactory, SelectorProvider selectorProvider) { super(parent, thr...

2017-06-16 15:48:17

阅读数 1226

评论数 1

原创 【Netty4.X】Netty源码分析之NioEventLoopGroup(五)

NioEventLoopGroup实际是NioEventLoop的线程组,主要负责管理EventLoop的生命周期,EventLoop的默认大小是2倍的CPU核数,但这并不是一个恒定的最佳数量,为了避免线程上下文切换,只要能满足要求,这个值其实越小越好。继承关系如下: 首先看NioEventL...

2017-05-24 17:31:47

阅读数 738

评论数 1

原创 开发笔记(二):查找数据丢失问题

今天在跑机器人压测的时候发现服务器日志里出现了不少错误,其中最多的是java.lang.NullPointerException,开发中很常见的空指针问题,不过出现在即将上线的游戏中却显得不太正常。每一个NullPointerException都表示玩家有可能丢失了某条数据。想想一个月前开发性格装...

2017-04-06 15:27:08

阅读数 652

评论数 0

原创 开发笔记(一):protobuf避免重复代码newBuilder

最近大家都在忙着改BUG,而我却比较闲,开发的模块没有什么BUG,决定抽些时间改下正在开发项目中的一些坏代码。 //坏代码 SC_ResponseMsgProto.Builder responseMsgBuilder = SC_ResponseMsgProto.newBuilder(...

2017-02-20 16:20:47

阅读数 3234

评论数 0

原创 阿里巴巴Java开发手册

1.不要嫌名字长 无论是方法,变量,还是函数的取名,不要嫌弃名称太长,只要能够表示清楚含义就可以了。 2.String[] args而不是String args[],中括号是数组类型的一部分,数组定义如下:String[] args; 在《Thinking in Java》这边书里面,是这么解...

2017-01-17 12:03:22

阅读数 2540

评论数 0

原创 Java游戏服务器之一元夺宝活动设计(一)

目前市场上一元夺宝活动有很多,但规则基本都一样。今天主要说说我目前正在参与开发的游戏《元气战姬学院》服务器是如何设计一元夺宝活动的,规则与网易的一元夺宝基本相同,唯一不同的是我们的开奖不一定要达到满人次,即只要在规定时间内达到我们自己设置的上限就可以开奖,如果开奖失败,则返还玩家消耗的游戏币。先说...

2016-12-12 15:55:35

阅读数 480

评论数 0

原创 【Netty4.X】Unity与Netty使用protoBuf(四)

客户端与服务器端之间传输的数据格式有很多种如Json、XML、thrift、Protobuf等等。protobuf来自谷歌,它的特点是数据小、编解码性能高、支持多种语言,它序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一。更加详细请阅读下面2篇文章:【Goo...

2016-09-03 19:50:29

阅读数 2938

评论数 2

原创 【深入浅出Mysql】MySql存储引擎之MyISAM(二)

一、MyISAM   1.1 数据存储  MyISAM是默认的MySQL插件式存储引擎。它不支持事务和外键。优势:访问速度快,基本上以SELECT、INSERT为主的应用基本上都可以使用这个引擎来创建表。每个MyISAM在磁盘上存储称3个文件,其文件名和表名相同,扩展名不同,分别是:.frm(存储...

2016-08-29 13:00:48

阅读数 2007

评论数 0

原创 【深入浅出Mysql】MySql存储引擎(一)

一、 MySQL存储引擎   1.1 有哪些存储引擎  MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎。1事务安全表引擎BDB(BerkeleyDB)、InnoDB2非事务安全表引擎MyISAM、MERGE、MEMORY(HEAP)、EXAMPLE、FEDERATED、ARCH...

2016-08-28 20:44:03

阅读数 1829

评论数 0

原创 Java游戏服务器端面试题整理(转载)

一、选择题1、既希望较快的查找又便于线性表动态变化的查找方法是?A:顺序查找 B:折半查找 C:索引顺序查找 D:哈希法查找ans:C详细解释:查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。用关键字标识一个数据元素,查找时根据给定的某...

2016-08-27 16:26:14

阅读数 7116

评论数 0

原创 【Redis教程】Redis 简介、安装与配置(一)

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用...

2016-08-24 12:53:16

阅读数 6369

评论数 1

原创 【游戏后端】游戏服务器端开发的一些建议(转载)

摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结。第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一些基本原则。希望能帮到大家 一 专业基础 1.1 网络 1.1.1 理解TCP/IP协议网络...

2016-08-15 21:04:12

阅读数 24171

评论数 3

原创 【Unity NGUI】学习笔记(一):英雄选择,皮肤更换

一、准备工作   所需图片资源,包括英雄预制件,人物头像,服装,武器图集和人物动画 1.创建图集,选择NGUI->Open->Atlas Maker,设置图集名称heroAtlas后,选中Textures下的所有图片,点击Create 2.将四个英雄的预制件拖入到Scene中并重...

2016-08-13 11:58:51

阅读数 352

评论数 0

原创 对CSDN博客文章的访问量的质疑

在CSDN上开博已有一年多,在上面写了几十篇文章,虽然不如大神写的那般深入和清晰,但每篇文章我也是花了大量时间和精力去完成。一年以来博客文章的访问量每天也在增加,每篇文章平均下来有几十、几百、上千的访问量。然而有一事不明?有的文章刚上几天,质量也很一般(委婉说法,其实写的很烂),为什么会有几万甚至...

2016-08-12 09:52:01

阅读数 2209

评论数 16

原创 【Google Protobuf】protobuf的使用(二)

一、使用   1.1 限定修饰符required: 表示是一个必须字段,发送之前没有设置required字段或者无法识别required字段都会引发编解码异常,导致消息被丢弃。Optional:表示是一个可选字段,可选对于发送方,在发送消息时,可以有选择性的设置或者不设置该字段的值。对于接收方,如...

2016-07-20 15:02:58

阅读数 2535

评论数 0

原创 【Java并发编程】深入分析AtomicInteger(二)

什么是线程安全性 如果一个类可以安全地被多个线程使用,它就是线程安全的。你无法对此论述提出任何争议,但也无法从中得到更多有意义的帮助。那么我们如何辨别线程安全与非线程安全的类?我们甚至又该如何理解“安全”呢? 任何一个合理的“线程安全性”定义,其关键在于“正确性”的概念。在<...

2016-07-20 08:30:38

阅读数 214

评论数 0

原创 【Google Protobuf】windows下protobuf的环境搭建(一)

一、Protobuf介绍   Protobuf是由谷歌开源而来,在谷歌内部久经考验。它将数据结构以.proto文件进行描述,通过代码生成工具可以生成对应数据结构的POJO对象和Protobuf相关的方法和属性。特点如下:结构化数据存储格式(XML,JSON等)高效的编解码性能语言无关、平台无关、扩...

2016-07-14 16:40:22

阅读数 5034

评论数 1

原创 【设计模式】单例模式(一)

一、简介   1.1 定义  Ensure a class has only one instance, and provide a global point of access to it.  确保某个类只有一个实例,并提供一个全局访问点。   1.2 UML类图Singleton是单例类。实现...

2016-07-14 12:57:45

阅读数 1743

评论数 1

原创 【Apache Thrift】Thrift的使用和编译(二)

一、Thrift的使用   1.1基本类型  thrift不支持无符号类型,因为很多编程语言不存在无符号类型,比如javabyte: 有符号字节i16: 16位有符号整数i32: 32位有符号整数i64: 64位有符号整数double: 64位浮点数string: 字符串   1.2容器类型  集...

2016-07-12 20:07:24

阅读数 8113

评论数 0

原创 【Apache Thrift】windows下thrift的安装(一)

概述   Thrift最初由Facebook开发的,后来提交给了Apache基金会将Thrift作为一个开源项目。当时facebook开发使用它是为了解决系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台的特性,所以Thrift是支持跨语言,比如C++, Java, Python...

2016-07-12 15:17:57

阅读数 13419

评论数 0

原创 【Unity Shader】案例之地球云图(二)

一、地球旋转云图   1.1 添加纹理Shader "liulongling/earth" { Properties { _Tex1("地球",2D)="white"{} _Tex2("云图",2D)=&qu...

2016-07-10 22:29:39

阅读数 4765

评论数 0

原创 【Netty4.x】Netty源码分析(三)之LineBasedFrameDecoder

在上一篇:【游戏开发】TCP粘包/拆包问题的解决办法(二)文章中,我们在给ServerHandler之前添加了2个解码器LineBasedFrameDecoder和StringDecoder解决了服务器端粘包问题。今天我们就从源码上来分析LineBasedFrameDecoder。 一、Lin...

2016-07-09 15:13:29

阅读数 2214

评论数 0

原创 【Netty4.x】Netty TCP粘包/拆包问题的解决办法(二)

上一篇:【Netty4.X】Unity客户端与Netty服务器的网络通信(一)一、什么是TCP粘包/拆包  如图所示,假如客户端分别发送两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下4中情况:第一种情况:Server端分别读取到D1和D2,没有产生粘包和拆包的...

2016-07-07 20:25:21

阅读数 19220

评论数 1

原创 【Netty4.x】Unity客户端与Netty服务器的网络通信(一)

一、我的开发环境 eclipse-jee-indigo-SR2-win32-x86_64JDK1.7 windows-64 netty-all-4.1.1.Final-sources 下载地址:http://netty.io/ ,从【Downloads】选择下载netty-all-4.1.1...

2016-07-05 10:41:04

阅读数 11201

评论数 2

原创 【Unity Shaders】学习笔记之通过修改UV坐标实现纹理贴图的滚动(八)

一、简介   纹理贴图可以使我们的着色器更有生命力,而且可以快速地实现非常逼真的效果。然而略显遗憾的是,你需要小心翼翼地控制用于着色器地纹理贴图的数目,因为如果添加的纹理图片过多,会非常影响游戏的性能。于是我们可以通过修改UV坐标实现纹理贴图的滚动,使用这种技术实现如瀑布,河流,熔岩流等效果 ...

2016-07-03 15:27:22

阅读数 4913

评论数 0

原创 【Unity Shaders】学习笔记之法线贴图(七)

一、简介   法线贴图是凸凹贴图(Bump mapping)的一种常见应用,简单说就是在不增加模型多边形数量的前提下,通过渲染暗部和亮部的不同颜色深度,来为原来的贴图和模型增加视觉细节和真实效果 简单原理是在普通的贴图的基础上,再另外提供一张对应原来贴图的,可以表示渲染浓淡的贴图。通过将这张附加的...

2016-07-01 20:09:03

阅读数 2581

评论数 0

原创 那些游戏开发牛人的博客和IT学习网站

游戏大牛的博客 1.吴云洋(Cloud),网名云风,毕业于中南大学,原网易游戏核心成员、杭州研究中心总监,是网易《大话西游》、《梦幻西游》等游戏的重要开发者。2011年9月5日宣布已从网易辞职。 博客地址:http://blog.codingnow.com/ 2.Milo Yip是香港同胞,现任职...

2016-06-30 12:38:57

阅读数 4693

评论数 0

原创 【Unity Shaders】学习笔记之为创建Half Lambert光照模型(六)

一、创建Half Lambert光照模型    Half Lambert(半兰伯特)是由Value公式提出的技术,是一种用于在低光照区域照亮物体的技术。它基于提高了材质和物体表面周围的漫反射光照。    二、如何操作    我们继续使用上一节的代码【Unity Shaders】学习笔记之为创建...

2016-06-20 19:54:08

阅读数 2806

评论数 0

转载 网络游戏服务器设计

谈这个话题之前,首先要让大家知道,什么是服务器。在游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多网络游戏服务器都需要负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么本系列的文章将分为两部分来谈谈网络游戏服务器...

2016-06-16 22:47:09

阅读数 291

评论数 0

原创 【Eclipse Android】Mac下eclipse无法连接手机调试问题

很多Android程序员 用Mac 来开发。但是Mac下eclipse连接 手机存在一些问题。下面就个人经验分享一下。1.确保手机开启了usb调试模式 并且连上了电脑2.设置好你的机器环境配置变量3.在mac终端输入system_profiler SPUSBDataType会显示一些数据 (如:我...

2016-06-15 18:53:01

阅读数 1162

评论数 0

原创 【Unity Shaders】学习笔记之为创建自定义慢反射光照模型(五)

一、简介   Lambert的光照模型是一个很经典的漫反射模型,光强与入射光的方向和反射点处表面法向夹角的余弦成正比。简单解释就是一个点的反射光强是和该点的法线向量和入射光向量和强度和夹角有关系的,其结果就是这两个向量的点积。光照模型的计算是在surf方法的表面着色之后,根据输入的光照条件,对原来...

2016-06-15 17:35:00

阅读数 1715

评论数 1

原创 快速排序

算法介绍    快速排序是 C.R.A.Hoare 于 1962 年提出的一种划分交换排序。它采用了一种分治的策 略,通常称其为分治法(Divide-and-ConquerMethod)。 基本思想

2016-06-09 20:55:00

阅读数 120

评论数 0

原创 Shader学习笔记之渲染命令(一)

在渲染前创建一个球体 如图先给球体加上一个漫反射,颜色为红色。需要用到的属性命令一:Diffuse 漫反射计算一个简单的(Lambertian)光照模型。光照强度随着入射光线与表面的夹角减小而减小。光照强度只依赖于这个夹角,而且不会随着相机的移动或者旋转而改变。Shader "liul...

2016-06-08 15:41:33

阅读数 145

评论数 0

转载 通过GitHub Pages建立个人站点(详细步骤)

1 Git简介2 为什么使用Github Pages3 创建Github Pages3.1 安装git工具.3.2 两种pages模式3.3 创建步骤3.4 常用命令4 使用Jekyll搭建博客4.1 什么是jekyll4.2 jekyll本地环境搭建4.3 jekyll目录结构4.4 Jekyl...

2016-06-03 22:43:13

阅读数 180

评论数 0

原创 【Unity Shaders】学习笔记之为表面着色器添加属性(四)

本章主要参考《Unity Shaders and Effects Cookbook》一书,感谢原书作者提供的学习资料    一、为表面着色器添加属性   着色器的属性在渲染管道过程中是很重要的,因为它们是一个接口可以让使用着色器的美工或用户指定纹理和调整着色器的值。属性可以作为GUI元...

2016-05-31 22:51:07

阅读数 1821

评论数 0

原创 【Unity Shaders】学习笔记之表面着色器(三)

一、表面着色器    1.1 简介   表面着色器代码直接在SubShader中编写,不需要使用Pass,编译器会将代码编译到合适的Pass中    1.2 标签    硬件将通过判定标签来决定什么时候调用该着色器   属性RenderType:   值Opaque:在渲染非...

2016-05-31 22:50:10

阅读数 3141

评论数 0

原创 【Unity Shaders】学习笔记之固定着色器命令(二)

我是小毛驴,一个游戏人,我的梦想是世界和平。转载请注明出处:http://blog.csdn.net/liulongling/article/details/51519006 一、准备   在开始着色之前,我们需要创建一个场景(Scene)和球体。    1.1 Diffuse ...

2016-05-27 18:53:09

阅读数 1575

评论数 0

原创 【Unity Shaders】学习笔记之Shader简介(一)

一、Shader简介   Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内...

2016-05-27 18:40:01

阅读数 2207

评论数 0

原创 快速排序

快速排序是 C.R.A.Hoare 于 1962 年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 一、快速排序   1.1 分治法基本思想   1.先从数列中取出一个数作为基准数(枢轴)。   2.分区过程将...

2016-05-27 16:18:24

阅读数 1075

评论数 0

提示
确定要删除当前文章?
取消 删除