- 博客(126)
- 资源 (5)
- 收藏
- 关注
原创 Windows LoadLibraryEx一个注意事项
有main.dll 和 mod1.dll mod2.dll, main.dll用到了另外两个dll。LoadLibraryEx必须能搜索到mod1.dll & mod2.dll所在的目录,否则LoadLibraryEx会返回126,找不到模块的错误。...
2019-11-13 15:52:39
971
原创 SteamingAssets目录下的文件读取规则注意事项
StreamingAssets下面的文件读取有一些规则还是得注意一下,有点记忆偏差就会出事。1. StreamingAssets目录直接用Application.streamingAssetsPath获取就行;2. AssetBundle.LoadFromFile可以读取StreamingAssets下的AssetBundle;3. Windows & ios平台,用C# Fi...
2019-03-16 17:02:18
1666
原创 C# & C++实践中的区别总结
用Unity3D C#开发游戏客户端,一眨眼,发现竟然也用了8年了。2018年10月开始,将之前C++的底层代码封装出C#接口,游戏服务器也开始全面得用C#开发。Windows上开发,生成DLL,原封不动传到Linux上,用.net core直接跑起来。因为语法原因,C#开发效率比C++高太多太多了。C#主要有如下优点:委托,用起来就像动态语言一样方便,C++要借助std::functio...
2019-02-27 16:03:52
467
原创 客户端主角死亡后的处理
发现有的同事,各种模块,针对主角的死亡状态做了各种处理。其实客户端这边,主角死亡后,每个模块不须要专门针对死亡进行特殊处理。最直接的方式,弹出一个复活的MessageBox,位于UI最上层,屏蔽掉其他UI的响应即可。...
2018-05-15 19:24:54
702
原创 U3D Resources & AssetBundle内存管理总结
Resources & AssetBundle都有一个数据来源,磁盘文件或者来自本地文件/异地网络的字节流。ResourcesLoad 开一块内存, 生成Asset Object,里面有Mesh, Material, Texture, Shader, Script等。UnloadAsset 释放AssetObject,如果AssetObject
2016-09-19 20:14:38
1644
原创 u3d fbx动画模型生成Animator Controller和Prefab工具脚本
转载请注明:当动画角色比较多的时候,策划一个一个配状态机和连线非常得麻烦。实现一个脚本,将fbx动作文件生成状态机;也将模型fbx生成了Prefab,并将之前生成的状态机绑上去。目前没有做状态之间的连线,状态切换程序自己控制。做脚本的时候,参考了网上文章,然后,我以商业项目的要求实现了这个脚本。using System.Collections.Generic;using Sy
2016-07-25 19:46:17
4321
原创 渲染流水线
渲染流水线分成几个阶段,当前阶段的输出作为为下一个阶段的输入。流水线大致分为下面几个阶段: 顶点变换 -> 图元装配->光栅化->贴图和着色->光删操作。
2016-06-01 20:46:02
1339
原创 windows svn命令行客户端
可以用visualsvn, https://www.visualsvn.com/downloads/ 下载:Apache Subversion command line tools, 配置环境变量就可以用了。
2016-04-19 18:08:47
2739
原创 u3d 修改新的C#脚本模板-NewBehaviourScript.c
D:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates
2016-04-12 16:26:08
2984
原创 CentOS默认的文件系统xfs不支持readdir_r API
cached有一个地方,要读取目录下所有的元数据文件,安装centos的时候,默认是xfs,这个api就读取失败。短短2,3个月内遇到了2次,今天还找了半个小时的原因。记下来!
2016-03-30 17:36:52
2250
原创 MySQL常用操作记录
1. 备份 mysqldump -uroot -p*** db_name > db_name.sql 2. 恢复 先创建要恢复的数据库名 create database db_name CHARSET=utf8; mysql -uroot -p*** db_name 备份用mysqldump, 恢复直接用mysql命令既可以了。
2015-04-29 09:44:24
1588
原创 herm::cached 客户端与服务器协议一致性校验方法
cached根据protobuf的元数据机制去保存和读取数据库中的数据。为了简化服务器交互的复杂度,逻辑服务器用的protobuf和cached的protobuf,数据结构要完全一致。
2015-04-08 13:58:11
2735
原创 系统配置相关记录
1. ubuntu12.04 dns解析配置 etc/resolv.conf设置nameserver后,每次重启会被覆盖! 在/etc/network/interface里设置,dns-nameservers,名字和resolv.conf做法不一样。
2015-01-03 11:14:02
1758
转载 Mac下postgresql安装和配置
这篇文章写得很清晰,转载自:http://dhq.me/mac-postgresql-install-usage格式拷贝不过来,大家请看原文。在 mac 下,可以利用 homebrew 直接安装 PostgreSQL:1brew installpostgresql -v稍等片刻,PostgreSQL
2014-12-27 18:12:51
4933
原创 我们的手游服务器3个月内宕机1次
我们开发的一款数码宝贝OL的手游,上线3个月后,保持着稳定得运行,1个月维护一次。每个服务器进程保持着稳定得运行。唯一一次宕机是因为业务逻辑代码,读取数码兽数据的时候,程序小兄弟没有对返回的数据指针做保护。还有一次是目录服务器,无法连接,连接数竟然满了,是因为,目录服务器配置文件没有配置心跳检测时间。这块心跳检测机制须要作一个简单的调整,默认开启一个3~5分钟的定时器检测连接是否失效。
2014-12-04 19:52:46
2605
原创 Visual Studio2012 Lua插件--BabeLua
之前,找了好久VS2012的Lua插件,没有找到。今天在http://www.cocoachina.com/bbs/read.php?tid-205043.html 看到了,cocos2dx-quick的介绍。这个不错,写Lua可以一试。
2014-10-30 13:21:00
3122
原创 运营活动需求实现
平时游戏运营活动需求,看起来是蛮复杂的。其实本质上任务系统或者成就系统类似。一般需求像这样:1. 活动有开始时间和结束时间要求;2. 活动给出的奖励也有开始时间和结束时间要求;3. 完成活动需要做完几件事情(我们称作事件或者条件事件);4. 相比较任务和成就系统,这种活动条目很少。分享一下我们的做法:1. 独立实现一个活动服务器,存储的DB也是独立。这样的好处是
2014-10-15 23:54:51
2972
原创 免费玩家和付费玩家的顶级英雄和装备的产出平衡
我们做了一款叫 数码宝贝OL 的手机游戏,我们设计策略是付费的玩家玩得更快一些爽一些,不付费的,玩得慢一些,付出时间之后,能够和付费的抗衡。这么做的一切,让免费玩家看到希望,提高留存,最终保证好的体验的同时,收益也有一定的保证。各种挖坑,不付费没法玩下去的游戏,最终的收益不一定会高过我们这种免费和付费平衡的游戏。写这篇文章的目的是记录一下我们在免费和付费玩家做平衡的时候遇到的问题,以后回过头来可以
2014-09-15 11:29:40
2614
原创 protobuf2.5 iphone5s中崩溃的问题
我们的游戏用到了protobuf2.5,在其他版本中都是好的,但iphone5s中崩溃,表现为针对DescriptorPool为空了。网上也找不到什么信息,xiaozhong同学各种尝试,都没有搞定,太TMD折腾了。后来从这里获取了解决方案:http://stackoverflow.com/questions/19848118/weird-ios-libprotobuf-dylib-cause
2013-12-10 21:09:52
3203
原创 xcode5.0生成protobuf2.5 ios静态库的方法
protobuf2.4的时候,是自己直接用 xcode配置的,使用的时候是没有问题的。更新了protobuf2.5,用xcode配置遇到点问题,生成arm64静态库的时候,提示automic64找不到。网上查到下面的有一个脚本:https://gist.github.com/BennettSmith/7150245看了一下他的脚本,其他地方都比较正常的操作,有一个地方:
2013-12-09 21:33:31
3295
原创 自动更新的一个小问题
我们自动更新的原理是基于版本对比,从更新服务器下载新的补丁文件,用文件的md5表示版本。早些时候的一个项目,每次客户端发布的时候,要带一个这个客户端的当前文件的md5列表以及这个列表的md5,这个列表md5作为我们当前版本号。这个版本号的作用是,和服务器比较,版本是否有变化。这次新的项目,发客户端的时候,要带一个md5列表和当前版本号比较麻烦,就修改了一下机制。[1] 客户端发布的时候
2013-10-05 11:24:44
2749
原创 记录 awk + sed替换文件内容的写法
一个shell脚本con.sh,根据输入参数,从a_file文件获取对应的字符串,用这个字符串替换b_file文件中某个字符串。a_file#lang seq Lua 1 C++ 2 b_fileLang$SEQ输入,con.sh Lua, 输出: Lang1con.shSEQ=`grep "\" a_f
2013-09-27 11:50:23
4446
原创 记录一下 ps命令找出线程占用cpu情况
有时候发现某个进程cpu占用特别高,这个进程里有1个以上的线程,这时候我们须要定位线程占用的cpu。ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu这个命令实际调试程序的时候非常有用,列出了进程id, 线程id和cpu占有率,同时按照cpu占有率排序。
2013-09-21 11:43:28
6002
1
原创 采用用同步编程的方式实现跨进程异步获取数据[二]-创建玩家账号和获取角色列表
服务器管理多个玩家账号[记作Player], 每个Player维护多个角色列表,角色列表包含简单的角色信息(不是完整的,完整的在Role里面)。
2013-09-18 21:47:48
2532
原创 记录 tomcat虚拟主机配置方法
修改tomcat安装目录下的conf/server.xml。找到 节点。修改 节点。<Host name="localhost" appBase="E:\tmp\91\WebRoot" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve,
2013-09-09 11:09:23
1391
原创 游戏逻辑服务器和数据缓存服务器交互设计策略总结
逻辑服务器[logicd]和缓存服务器[cached]一般有两种结构:分离式结构: logicd--------->cached------->storagelogicd和cached位于两个进程中。嵌入式结构: logicd[cache_lib]-------->storagecached以库的形式内嵌到logicd中,逻辑服务器通过库接
2013-08-29 16:24:50
2729
原创 引用计数的cocos2dx对象内存管理和直接new/delete box2d对象内存管理冲突的解决方法
项目中用到了cocos2dx和box2d,cocos2dx的内存是基于引用计数的,新建的内存一般加到一个自动的内存回收池中;而box2d的对象,是直接new/delete。基于引用计数的对象和基于new/delete对象生命周期的结束是不一样的,前者有时比后者延后一帧(或者一个逻辑循环)才被删除。看一下实际遇到问题的代码。class GameLayer : public cocos
2013-07-13 09:22:32
2574
原创 基于多线程的大容量MMORPG主逻辑服务器实现策略
转载请标明出处:http://blog.csdn.net/herm_lib/article/details/9079309 实际参与的商业项目而且已运营的服务器,逻辑这块都是一个独立的单线程的,网络跑在其他线程中。像接入服务器,由于他自身的特点,可以尽量利用CPU,做到大负载接入。大部分商业服务器,包括网游服务器,瓶颈还是在于逻辑而非网络,所以接入服务器这块也没有必要的优化。以前总结过
2013-06-12 15:53:07
3733
原创 记录 cocos2dx ios&android遇到的一些注意问题
1. 资源读取 ios的ipa的资源打包结构和实际结构是一致的,比如,在Resource目录下有一个client.cfg文本文件,我们是直接用fread或者ofstream读取出来的,处理的。 android的资源,打包的时候会全部拷贝到assets目下,压缩了一下,分两种情况: CCSprite::create()之类的,可以读取出来; 自己的配置文件,
2013-06-05 17:46:24
2203
原创 打包ios&android包遇到的奇怪问题
1. ios上,资源目录叫Resources,死活不行,改成Resource之后就可以了。2. 用到了c++11,之前应该在Win7 + Cygwin成功打过包,这次同事在他的iMac 编译过不了,找不到 std::mutex, 各种改,不行! 以为是新加入的std::mutex有问题(其实之前应该也有这个std::mutex)。 今天,在Win7 + Cygwin上,同样的方法,可以了,没
2013-06-04 22:49:23
1544
原创 全区全服PVP服务器管理策略
转载请注明:http://blog.csdn.net/herm_lib/article/details/8654396首先我们要确定的是,能做全区全服的前提是,游戏不能有公共空间,就那种任何人都可以随便进出,然后有视野的空间,像MMORPG新手村,主城之类的;而副本、战场是带有私有性的局部空间,你的角色进出是有条件的。这两个的区别很关键。下面来看一下全区全服带有PVP服务器的一
2013-03-09 20:22:55
3038
原创 记录一下制作cocos2d-x android apk包的过程
转载请注明:http://blog.csdn.net/herm_lib/article/details/86443401. 先下载几个必要的软件[1] jdk-7u17-windows-x64[2] android sdk, adt-bundle-windows-x86_64-20130219 我下载的这个是带eclipse的。[3] android ndk,
2013-03-06 22:41:07
6247
原创 关于protobuf javascript的版本
转载请注明:http://blog.csdn.net/herm_lib/article/details/8580917 找了几个protobuf的js版本,官方推荐的两个:protobuf-js: http://code.google.com/p/protobuf-js/protojs: http://github.com/sirikata/protojs前一个半成
2013-02-14 20:37:20
12449
2
原创 Lua的反射
转载请注明:http://blog.csdn.net/herm_lib/article/details/8575939C++不支持支持反射,要实现放射功能,得写一大堆代码;AS3语言本身支持反射,用起来比C++方便了很多很多(参见http://blog.csdn.net/herm_lib/article/details/8500005)。lua的反射功能,比AS3更方便,从一个对象非常
2013-02-07 16:58:26
4556
原创 记录一下Sublime Text2的字体
Preferences->Setting User{ "color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme", "font_face": "Consolas", "font_size": 12}加入: "font_face": "Consolas",
2013-01-31 19:10:38
1900
原创 记录一下,AS3反射功能的实现方法
转载请注明:http://blog.csdn.net/herm_lib/article/details/8500005AS3的反射功能以前做过一下,过一小段时间就忘记了,查了以前的代码才知道。这次把他记录下来。反射功能: 根据类型名字,能够生成这个类型的对象;或者 根据某个类型对象,生成新的对象,就是”原型(prototype)"的概念。
2013-01-14 10:56:17
3967
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人