自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

langresser的专栏

Unity游戏开发 qq:450140822

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 跨平台的多线程断点续传下载库

基于linux命令行程序axel。支持window(尚有bug待调整)linux, mac,ios和android。ios和android已经调试完毕,功能正常。支持特性:1、跨平台,代码简洁2、多线程下载3、支持断点续传代码托管于github:https://github.com/langresser/libdownload

2013-01-26 15:57:55 3172

转载 内存调试的东西D/dalvikvm( 809 ): GC_CONCURRENT freed

1. verbosegc 一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息。dalvik虚拟机很安静的接受verbosegc选项,然后什么都不做。dalvik虚拟机使用自己的一套LOG机制来输出调试信息。 如果在Linux下运行adb logcat命令,可以看到如下的输出: D/dalvikvm(  745): GC_CONCURRENT fre

2013-01-25 09:36:56 2100

转载 android bionic缺失pthread_cancel的解决方法

在native code中使用多线程好处多多,但是Android的bionic并没有完全实现标准POSIX线程库的所有API,例如pthread_cancel()。但是google这样做肯定有原因,被cancel的thread不一定已经把自己拥有的资源释放掉,因此很可能带来内存泄露,锁没有释放等问题。这些问题在移动设备上更加突出。首先介绍一个指标的方法,使用signal替代ca

2013-01-22 18:32:17 3185

转载 Mac OS X Lion下找不到GCC

笔者的环境是Mac OS X 10.7.3,安装了XCode 4.3。在Terminal试图使用GCC命令时发现找不到这个命令,在/usr/bin下面也没有gcc这个路径。解决方案:1、打开XCode,进入Preferences --> Downloads2、点击Command Line Tools (180 MB) 这行的 Install 按钮 (如图

2013-01-22 09:59:46 1132

转载 终有一天软件都会像这样开发

Someday, all software will be built this way.原文链接:http://alblue.bandlem.com/2011/02/someday.html(笔者注:文章主要介绍Git,Gerrit,Jenkins为代表的版本控制,代码审核,持续集成工具在现代软件开发中的使用,笔者认为这些都是当下最时髦,最先进的开发工具和工程思想,特做简单翻

2013-01-22 09:59:06 1061

原创 mac下安装automake

export build=~/devtools # or wherever you'd like to buildmkdir -p $buildcd $buildcurl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.68.tar.gztar xzf autoconf-2.68.tar.gzcd autoconf-2.68./con

2013-01-21 22:41:29 4607

原创 多继承引发的诡异bug (cocos2d-x CCObject)

我有一个Singleton,用于处理下载信息,用到了HttpClient,那么就必须继承自CCObject,然后添加一个对应的函数指针来响应回调。由于同时还需要响应下载模块的信息回调,所以又继承自IDownloadEvent接口。      结果引发了一个非常难查的内存Bug。当回调函数调用后,这个Singleton的所有数据都被篡改了,导致函数内各种崩溃。但是我检查了Singleton的地址

2013-01-21 00:13:27 2969 7

转载 网络游戏程序中解决加载卡顿的有效方法

对于3d视频游戏来说,游戏引擎的性能是至关重要的。玩家在体验一款游戏时,游戏的流畅度是最基本的要求。与单机游戏不同,网络游戏更需要考虑性能问题,因为无法像单机游戏那样,控制游戏元素的复杂度来达到效率的要求。大量玩家涌入同一片区域,同屏出现大量的游戏角色是无法避免的,因此游戏帧率的大幅下降,系统资源的大量消耗也很难避免,这是网络游戏引擎最难处理的问题之一。    这里要讲一下游戏帧率的控制,通常

2013-01-20 00:03:06 2665

原创 Mac下显示隐藏文件

在Terminal中复制或输入以下命令(区分大小写):defaults write com.apple.Finder AppleShowAllFiles YES然后敲回车然后重启Finder,方法是按住Option键,单击Dock上的Finder图标不放,大概2秒后将在Finder图标上出现一个菜单,如下图:

2013-01-13 02:00:51 806

原创 提高mac app store的下载速度

非常简单,只要将网络设置中的dns的ip替换为http://dns.v2ex.com/这个网址中显示的ip就可以大大提高app store的下载速度了。

2013-01-13 01:00:06 1865

转载 你的代码值多少钱

老板雇佣程序员来写代码,程序员的薪水是成本,产生的有效代码是产品。或者说老板从程序员那里买代码。程序员每写一行代码究竟能赚多少钱?不妨来推导一下。我们规定程序员书写、重构、改bug产生的变化行数都算做生产行(Line),把所有生产行分为三个等级:框架(structure)、功能(feature)、逻辑(logic);将程序员在单位时间内写的三类生产行分别设为Ls、Lf、Ll;每种生产行的权

2013-01-12 23:05:20 1973

原创 代码的脾气

在别人的一个博客里看到的,太生动了。代码,尤其是开源的东西看多了,越发感觉到所谓编程语言,真的是一门语言,代码的脾气也体现了程序员的性格。代码是有脾气的,我以为。有的代码蛮横,不把你自己的程序大卸八块是容不下它的;有的代码随和,很容易就集成到自己的程序中了。有的代码罗嗦,和它打交道要不断的互相传递很多信息;有的代码收敛,暴露给你的不多,但都是精华。有的代码狡猾,自以为聪明的帮你接管了很

2013-01-12 22:52:28 1809

原创 基于cocos2d-x的游戏客户端优化

(未完成)        cocos2d-x并不是一个适合网游客户端(mmo)的游戏引擎,越是大型游戏,这个小引擎就越无法驾驭(虽然它非常受欢迎)。 之前我在原来的公司使用的是自主研发的C3引擎,已经对外开放(尚未开源),后面如果我有提到c3引擎,那么指的就是这个2.5d游戏引擎。         我想起我上个月刚离职的时候,c3的首席研究员(应该也是引擎圈内的一个大牛)对我说cocos2

2013-01-12 21:24:43 14825 21

原创 游戏资源打包

游戏资源打包几乎是一个网络游戏客户端必备的功能。页游和微端根据实际需求可能不打包资源或者使用小包。资源打包有这么几个好处:1、加快客户端安装时间。拷贝3000个1mb文件所消耗的时间要远大于拷贝一个3g的文件所消耗的时间2、客户端更加整洁,也可以“稍微”避免游戏资源被他人使用。3、ios和android上面可以避免文件名大小写不一致造成的文件读取失败。或者说包内可以做到全平台大小写

2013-01-12 20:07:45 5793 2

转载 3D API中,字体绘制的Batch优化

在3D引擎中绘制字符是很恶心的事情。一个个绘制吧又太慢。组成一个大mesh吧。又太耗引擎的人品。而且还是得lock/unlock vb。才绘制了一百多个字。 fps从600掉到80多。经过跟别人的讨论。pos之类的数据用shader constant来传递会效率高一些。于是做了这样个处理。1. 做72个1x1大小的Quad。 (其实可以用一个,DrawInstance就好了

2013-01-12 19:45:24 1086

转载 游戏引擎多线程

前言             最近一直在做项目优化,可是由于项目引擎历史原因,不能去砍掉某些功能而去优化项目,项目开发到这种程度,只能在这个基础上去提升整个引擎的效率,常规的CPU和GPU上的优化(美术资源上的缩减,CPU上耗费地方和GPU耗费地方的优化等)基本上都做了。当然每个人都希望自己的游戏跑的越快越好,现在大部分机器都已经至少是双核的,如果能发挥多核优势,游戏的速度会大幅提升。

2013-01-12 19:40:49 2526

转载 动态加载资源

如今很多游戏engine宣称自己支持动态加载地图,也就是说可以作到跨地图时的零读取时间。听起来很高深的技术,实际不难实现,当然我们在大话西游和梦幻西游中早已经实现了。最近我正在考虑更加通用的解决方案。先说说基本的思路。也就是我们需要把地图数据切割成小块,让每一块的数据读取解析量并不太大。然后,就可以根据玩家所在坐标读取最小数据量的数据。当玩家移动的时候,利用一些机器闲置时间去读周围的场景,或者

2013-01-12 19:30:31 1443

转载 基于垃圾回收的资源管理

基于垃圾回收的资源管理游戏中有大量的资源数据,这部分数据通常数以百兆,甚至上G。如何在运行时管理好这些数据,也是游戏软件相对其他许多软件的一大难题。管理这些资源分为加载和Cache两个方面。对于资源数量比较少的游戏,我们可以采用只加载不释放的方式,即使资源总量大于物理内存数,OS 在虚拟内存的管理方面也自然有它的优势。至于加载的时机,为了追求用户玩的时候的流畅体验,我们可以在一开始

2013-01-12 19:29:52 995

转载 资源内存管理

网络游戏的 client 开发中,很重要的一块就是资源管理。游戏引擎的好坏在此高下立现。这方面我做过许多研究和一些尝试。近年写的 blog 中,已有两篇关于这个话题的:基于垃圾回收的资源管理、动态加载资源 。最近在重构引擎,再次考虑这一个模块的设计时,又有了一些不算新的想法。今天写了一天程序,一半时间在考虑接口的设计,头文件改了又改。最终决定把想到的东西在这里写出来,算是对自己思考过程的一个梳

2013-01-12 19:28:41 1810

翻译 Fast C++ Delegate: Boost.Function 'drop-in' replacement and multicast

注意,使用最新的boost需要进行修改:Just replace boost::ct_if with boost::mpl::if_c (and #include ) in Jae's Fast Delegate code.IntroductionThere have been several C++ delegates which declared themselves as a '

2013-01-09 14:34:32 6388

转载 c++高效委托的实现(fast delegate---简单、高效、跨平台)

概要很遗憾, C++ 标准中没能提供面向对象的函数指针. 面向对象的函数指针也被称为闭包(closures) 或委托(delegates), 在类似的语言中已经体现出了它的价值. 在 Delphi(Object Pascal) 中, 他们是 VCL (Borland's Visual Component Library, 宝蓝可视化组件) 的基础. 最近的 C# 让委托的概念更为流行, 这

2013-01-09 09:44:01 3850

转载 真正快速的std::vector遍历方法

看到篇文章,内容很基础,但是反应的问题是值得思考的。遍历vector的标准方法是什么?之前按照书中的理论,认为stl标准的迭代器或者stl的for_each算法应该是最快的。但是如果不经过实际程序的检验,那么理论永远是理论。实践表明operator[]的访问速度是最快的(至少不比迭代器更慢)。之前我洁癖性的把所有使用operator[]进行vector遍历的地方都改成迭代器,认为这样更高效,看来是

2013-01-05 12:35:52 13271 2

转载 简悦创始人云风谈程序员的职业素养

程序员是可以当作一生的职业。但首先,你需要热爱编程,而不是把它作为完成其他人生目标的工具,你要不断地反思自己在哪些方面的努力是更有效率的。我认为,无论在哪个子领域工作的程序员,都要在三个方面提高自己。第一,保持对未知领域的好奇心,尽力开阔视野。如果你只精通一门编程语言,那么就赶快去学习另一门,最好和之前那门语言的亲缘关系越远越好。这可以让你从不同的视角去看待过去的问题。如果你只专注于一

2013-01-01 15:02:16 3209

原创 打算开始写一个2.5D游戏引擎

1、为什么有那么多游戏引擎还要自己写一个游戏引擎?      我本身并不是学图形学的,只是一个有三年游戏开发经验的客户端程序员。我的工作经历告诉我,如果不自己写一个游戏引擎(即便最终不能有实际应用)那么就不会真正使用一个游戏引擎。在处理普通逻辑的时候还没有关系,但是碰到需要对性能进行优化,或者要实现特殊效果的时候就无从下手了。对于底层知识的了解可以在方向上起指导作用。      并且,虽然

2013-01-01 00:40:06 6374 3

cocos2d-x 3d模型显示

cocos2d-x 3d模型显示. 部分代码。 cocos2d-x 3d模型显示. 部分代码。

2013-06-13

空空如也

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

TA关注的人

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