自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 vim+omicppcomplete

这里详细介绍了如何将stdlib header加入到ctags中:首先,将c++标准库的头文件cp到.vim目录下,然后生成ctags:$ cp -R /usr/include/c++/$GCC_VERSION ~/.vim/cpp_src# it is not necessary to rename headers without an extension# replace the...

2019-04-14 23:36:54 379

原创 diaox框架概述

前言设计一款轻量级的游戏服务器框架diaox,需要考虑的点有:网络IO性能游戏逻辑处理的性能访问数据库mysql, memcached的性能如何保证游戏开发设计足够简洁单进程下,支持的同时在线人数上限1. 网络IO性能linux内核已经支持REUSE_PORT socket选项,假定我们有N个CPU核,这样可以创建N个socket共同监听一个端口,创建N个线程分别对N个sock...

2019-03-25 13:03:37 942

原创 多人在线网络游戏的同步算法一 基础篇

0 基本问题1在一款单机游戏中,玩家只需和本地游戏里面的元素(如AI,NPC等)进行实时交互即可;2而在多人在线网络游戏中,玩家还需要同同样联网的其他玩家进行互动,玩家在本地看到的其他玩家,本质上,都是其他玩家的镜像。我们知道,其他玩家的行为,通过网络传输过来,是有延时的。这个真实世界不一样,你在真实世界里看到一个人作出某个动作,从一个人做出动作到被你看到,这个时间是可以忽略不计的(光速)...

2019-03-18 23:01:27 6991 1

原创 mysql之忘记密码篇

mysql之忘记密码篇What version of mySQL are you using? I’'m using 5.7.10 and had the same problem with logging on as rootThere is 2 issues - why can’t I log in as root to start with, and why can I not use ...

2019-03-11 13:28:37 340

原创 nginx使用指南三:nginx是如何处理请求的

一 带名字的虚拟服务器当一个从客户端发送请求到nginx时,nginx首先判定使用conf文件里的哪个server来处理,假设配置如下:server { listen 80; server_name example.org www.example.org; ...}server { listen 80; server_nam...

2018-05-25 17:32:16 722

原创 如何简单快速地扒资源

对于cocos2dx引擎制作的游戏,一般来讲,如果资源没有经过加密的话,是非常容易被别人扒下来的,这里就介绍一种简单快速的扒资源方法:1 下载apk包,重命名为.zip,然后解压缩,在/assets 目录下,一般有一个res子目录,打开这个目录,里面可能就有想要的资源。2 有些小游戏如棋牌类游戏,大部分是支持下载更新的,这部分游戏只有在进入游戏更新之后,资源才是完整的。这个时候我们要用到一...

2018-05-04 22:05:16 5005

原创 nginx实用指南二: 快速配置运行

一 前言本篇介绍一些nginx的基础用法,以及使用nginx来完成的一些简单任务。 如果您还没有安装nginx,请查看本系列第一篇安装nginx。本文将介绍如何开启、停止nginx、以及重载nginx配置。 解析了配置文件的结构,并描述了如何在静态环境下安装nginx、如何将nginx配置为一个代理服务器、如何将它和一个FastCGI应用程序联系起来。 nginx由一个master进程和...

2018-04-16 22:53:02 240

原创 nginx实用指南一: 从源码安装nginx

一. 下载 首先,从这里点击下载nginx-1.12.2版本,在安装之前,可先运行df -hl命令看看磁盘控件还剩多少,如下: Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 2.4G 36G 7% / tmpfs 499M 0 499M 0%...

2018-04-14 17:24:25 240

原创 InstallShield

最近开始入坑installShield,由于使用的免费的限制版本,一些“高科技”的用法,这里无从提及,本文就使用中常见的问题,作一个总结:Organize Your Setup 1.1 General Info 这里有需要填写的有: ProductName: 用来表示产品名,无特殊含义 ProductVersion: 产品的版本号,如1.11,前面1表示大版本,后...

2017-12-05 17:31:52 1128

原创 ssh尴尬的回忆录

今天买了个阿里云服务器

2017-09-07 19:33:25 379

原创 Lua源码解析之三:code

前言何为CODE?本章重点讲解各语句的code是如何生成的。

2017-08-15 12:01:10 2085

原创 Lua源码解析之二:parser

Lua中的parser目录Lua中的parser目录前言extended BNFparse function1 function name2 function body3 end and code closure1. 前言上一章介绍了Lua的词法分析,本章论述lua语法分析,但是纵观lua源代码,发现语法分析和词法分析区分得并不明显,本章本着抽丝剥茧的精神强行分析一波parser。

2017-08-07 22:40:47 5800 1

原创 再议字符集和编码

首先需要弄清楚,字符集(character set)和encode和两个不同概念。Character Set 表明的是一个字符集合,它经常有国家或者国际标准组织来规定,例如GB2312它是一个字符集,理论上,它在实现上可以使用2字节,或者4字节进行编码,只要encode能够GB2312的所有字符即可。Encode 表明的是编码方式,理论上,同一个字符集可以有多种不同的编码方式,多个字符集也

2017-05-11 11:55:49 419

原创 文章标题

编辑器使用基础1. 语法高亮针对代码的语法高亮,太单一的不好,太细化的话感觉太花哨,那么如何定制自己的语法高亮呢?确定每一个需要高亮的类型 以C/C++为例,最简单的划分为: 1). class, struct, typedefs, 2). 宏定义 3). function 4). variables为确定的类型指定颜色 这里有现成的配色方案(暗色系) 描述 颜色值 前景色

2017-03-31 15:12:48 322

原创 3D游戏中的数学基础

一般的3D游戏都包括有摄像头,投影,粒子特效,动画特效,光照等技术,这里的技术大多涉及到坐标系的变换,本文就主要应用的数学知识作一个归纳总结。0. 为什么要有转换(transform)所谓的3D游戏并不是真实的3D游戏,其实质是将真实世界中的3D投影(projection)到2D屏幕,在投影到视网膜,被人类所感知。将3D对象投射到2D,就需要用到transform。1.

2017-03-27 12:12:48 1734

原创 Lua源码解析之一:lexical

我们知道,任何高级一点的编译器,在解析源代码时,都需要进行词法分析。而词法分析的过程就是先识别token的一个过程,总体来说,lua里面的token大致分为:1. 数字和字符串2. 特殊字符:包括运算符和括号3. 关键词对于每一类token lua都有唯一的id与之对应,此id用int来表示,对于第2种类型,直接用该字符的ASCII码来表示,对于1,3两类,则定义一组枚举,为了与第

2016-03-26 19:44:14 3696

原创 从零开始OGRE

一、下载源码和编译1. 首先从sourceforge上下载压缩包,然后解压源代码,我这边的源代码版本是ogre_src_v1-8-12. 下载CMake工具,为生成VS的项目文件作准备。CMake的下载地址在https://cmake.org/download/  选择对应的MSI文件即可

2016-03-15 23:49:00 672

原创 MMO游戏设计三:架构设计

首先要说明,这里谈的架构,并不是说游戏服务器由哪些功能服务器搭建而成,而是想重点谈谈一个好的游戏架构,应该具备哪些特质。

2016-03-07 19:53:09 3298

原创 mysql_新手FAQ

作为一名新手mysql玩家,直接从阅读mysql manual 文档开始学习,也算是一种捷径。首先,我们假设mysql server已启用,IP为127.0.0.1,端口为3308,mysql用户名为root,密码123。通过mysql client连接命令如下:>mysql -h 127.0.0.1 -P 3308 -u root -p123-h 后面接IP地址, -P 后面接端口号

2016-01-07 22:16:30 586

原创 MMO游戏设计二:面向服务的设计

什么是面向服务的设计,其实自己也没整明白。总之,为了解决一下的几个问题。1. 游戏服务器运行过程中,由于某个玩家的操作引起服务器CPU过高,导致其它玩家有非常明显的顿卡。2. 某个模块引起的宕机,整个服务器需要停服维护。解决的方法是,为每一个服务建立一个线程,每个玩家也对应于独立的线程,每个独立的服务之间通过消息进行通讯,而服务的内部接口则是直接的函数调用。

2015-01-23 16:11:42 1018

原创 MMO游戏设计一:角色行走

假设我们目前需要做的是一款3D MMO游戏,角色行走通过上下左右键控制,方位通过鼠标滑动来控制。先憧憬一下,应该达到的要求:1.  客户端行走时,不能出现因为网络原因卡住的现象。关于这点,在玩DOTA时深有感触,网络延时300ms+的时候,明显感觉有顿卡,发起操作指令的时候,反应很慢。然后跑到野区打野还是一样的卡,体验很差。2.  客户端与服务端之间的同步包尽可能的少。带宽有限,为

2014-12-02 18:23:51 3155

原创 boost源码分析之 BOOST_FOREACH(2)

现在,我们已经可以保证表达式最终只会被运算一次,马上

2014-04-22 23:36:10 1177

原创 boost源码分析之 BOOST_FOREACH

如foreach库作者Copyright © 2004 Eric Niebler

2014-04-18 01:12:50 3551 1

原创 连续序列的最大和

假设有一个整形的数组,数组元素有正、负数。求连续出现的元素之和的最大值,并要求时空复杂度尽可能低。举个例子,设S={-1,1,3,-2,5,-9,4},则连续出现的元素序列S={1,3,-2,5}组成一个最大值7。那么,我们从何处着手解决呢?首先,假设S中元素个数为N,并且已经找到一个和最大的元素序列S(i,j)(它表示从第i号到第j号的元素序列),记第i号元素为S[i],则有:

2009-10-30 23:45:00 1658 3

原创 正则表达式

看NLP的时候,里面有介绍正规表达式的,为了避免以后忘记,所以在这里做一个总结: 1 语法:  1.1 元字符。    . 匹配除 "/n" 之外的任何单个字符。要匹配包括 /n 在内的任何字符,使用象 [./n] 的模式。    /  将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,n 匹配字符 "n"。 /n 匹配

2009-07-11 21:32:00 736

转载 字符集和编码

以下内容转自: http://www.cnblogs.com/humanchao/articles/876970.html      字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18

2009-07-07 15:56:00 741

原创 Monty Hall Dilemma

  先来看看这个问题:  这个问题翻译过来,就是说,在一个游戏中有三个门,只有一个门后面有车,另外两个门后面是羊。你想要车,但你不知道哪一个门后面有车。主持人让你随便选了一个门。比如说,你选择了1号门。但你还不知道你是否选到了车。然后主持人打开了另一扇门,比如3号。你清楚地看到3号门后面是一只羊。现在主持人给你一个改变主意的机会。请问你是否会换选成2号门?  据说这个问题是在某节目上出现的

2009-05-15 22:44:00 781

原创 直觉有时也是可靠的。

  中午和同学吃饭时,被问到了一个这样的问题:    两个圆,大圆半径是小圆3倍,设小圆在大圆外圈绕大圆转一圈所旋转的角度为M;小圆在大圆外圈绕大圆转一圈所旋转的角度为N,求M/N。(如图1)  图1:    我当时的直觉是M大于N, 但是当我仔细分析求解时,我认为:在两种情况下,小圆走的路程都等于大圆的周长,所以M=N,但这和直觉不合。问题出在哪呢?同学认为两种情况下,小圆走的路

2009-05-14 21:51:00 811

原创 K歌时碰到的问题2

 现在来考虑一下最优的解决方案。 假设s = {a, b, c, d, e} 我们需要将它变换成{e, d, a, c, b}。很明显,这里可以将s进行划分:s = {s1, s2} 其中,s1 = {a, b, c}. s2 = {d, e}。所以,问题抽象成,将 s= {s1, s2} 变成 s = {s2, s1}。值得注意的是,这里没有考虑s1,s2的内部顺序。但这种划分很明显

2009-01-17 21:05:00 840

原创 K歌时碰到的问题

 1 问题 开场白:前天和同学一起去K歌,同学们唱的很HIGH,有些甚至在点歌的时候,时不时点几首超难的歌,结果谁也不会唱,直接pass 掉。“谦让”是俺们的美德嘛,所以,我总是让着他们。但是我发现了一个奇怪的现象,我明明点了歌,结果准备了好久都没轮到我唱。后来才发现,点歌系统里面,可以将预定的歌提到最前,打个比方,现在预定的歌按照顺序是:A,B,C。你如果将B提前的话就变成了B,

2009-01-17 17:37:00 841

原创 细节问题

      今天看了下,大一时写的C程序,虽然命名真的不太规范,但整体感觉还好,程序逻辑很清晰、也比较高效。这的确是我编程的风格,呵呵。我不太喜欢很臃肿的代码,喜欢将它们写得足够简洁,而逻辑上也足够清晰。    举个小小的例子,一个大家熟知的 split 函数,它完成的功能就是:给定一个字符串,然后通过指定的分隔符,将字符串分成N个子串,就这么简单。

2008-05-07 21:38:00 880

转载 c++的类型转化

C++ type_cast:第一:static_cast Operatorstatic_cast在功能上基本上与C风格的类型转换一样强大,含义也一样。它不能用于指针类型转换和const属性转换。 类型发生转换的时机是在编译时。发生的类型转换也不会执行相应的构造函数等。     第二:const_cast Operator const_cast用于类型转换掉表达式的const或volatil

2008-04-21 14:21:00 746

转载 小议字符集和编码

    谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这是一篇程序员写给程序员的趣味读物。     所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:  问题一: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式

2008-04-11 14:03:00 638

原创 数组旋转的高效算法

学校网速超慢,难得有机会用自己的博客。等以后条件好点了,一定多写点心得,和大家一起交流,希望大家常来。现在向大家介绍一个原来在论坛上碰到过的一个问题,题目很短,大致如下:一维数组,数组长度为N,求将数组循环右移M个长度的算法。要求:1 时间复杂度为O(N)2 空间复杂度为O(1)下面给出我的解决方案:#include   iostream> using   namesp

2008-02-29 16:02:00 1634

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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