自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(11)
  • 收藏
  • 关注

原创 国产手游开源引擎Beyond Engine简介 [附视频]

Beyond Engine是由成都超越工作室自主研发的一款跨平台3d游戏引擎。目前引擎正致力于内部研发游戏项目《星际奇兵》,demo包链接:http://www.youxichaguan.com/game/show/1857引擎有如下特点:1.      支持 所见即所得 和 Play & Edit功能:能在编辑器中实时切换游戏和编辑状态,随时修改,立刻测试

2014-10-24 16:30:11 3847 4

原创 Yaw Pitch Roll的变换顺序问题

今天花了不少时间去理解Yaw Pitch Roll的变换顺序比如给定一个旋转(15, 30, 60),那么物体应该先围绕哪个轴转呢?总得有个顺序吧?解决这个问题的第一个天坑就是:网上的资料坐标系都不一样!所以很多文章虽然说的是同一件事情,但是描述是不一样的,因为他们坐标系不一样!我自己理解这个问题是OPENGL的左手坐标系,即:Y是上下,X是左右,Z是内外。对应一下:Yaw是对

2017-10-09 15:26:42 7525 1

原创 一些关于矩阵的理解

因为长时间不使用矩阵,会经常对一些概念有混淆,现记录如下,大量自己的不专业理解:1. 矩阵元素在内存中存储顺序不受影响的原因。DX采用的是行优先,OPENGL采用的是列优先,但是矩阵元素在内存中的存储位置确是(巧合的)一致,这是因为矩阵乘法的特性导致的。首先对于一个齐次坐标(x, y, z, 1)来说,DX是行优先,所以它是一个1行4列的矩阵,记为1 x 4OPENGL是列优先

2015-10-10 12:23:44 471

原创 关于写程序的一个经验

最近有一些感触。我从外企出来以后,分别进入过两家民企,接触过两个游戏项目,也算是大项目。虽然两个项目的技术层次不一样,但有一个症结都很雷同,我相信也是大部分项目都有的问题。就是,今天修好了这个bug,那边又冒起来一个,像打地鼠一样,根本就修不完。就算是修到基本稳定,也是千疮百孔,四处补丁。我认为,导致这种问题的最根本原因是,程序员没有遵照:一个模块只做一件事情  的基本原则

2013-06-08 23:52:08 823

原创 wxWidgets作为DLL运行时部分控件背景刷新不正常

刚才解决了一个拖了很久的问题,心情瞬间轻松好多。wxwidgets作为一个NB的跨平台第三方库我就不过多介绍了,问题来源于我的需求,我之前做了一个可以植入任何win32程序的DLL,这个DLL的UI界面就是用wxwidgets来实现的。因为这个库必须要求独立和通用,所以它必须有自己的环境,包括独立的线程和消息机制。wxwidgets在这方面做得不错,至少我还没见过加载一个dll就能弹出一个

2012-12-28 13:12:27 1404

原创 服务器的AI优化(一个隐晦的瓶颈)

最近被指派去优化服务器性能,因为在目前情况下,DEBUG版本服务器在城战的时候FPS从100直降到0.33,导致完全不能正常的debug。经过Vtune以及其他手段的分析,最后确定瓶颈是在,NPC在搜索目标的开销。实际上,关于搜索本身就是一个比较大的学问。服务器现在的做法是,用网格优化,直接取一个范围内的网格,网格内保存了当前所在的NPC的ID,每个ID 16字节。在城战情况下,因为NPC密度

2012-10-29 00:05:33 1713

原创 游戏项目程序开发随想

“程序员就是解决问题的人”五年前刚进入育碧时,经理的这句话深深的映入脑海,至今记忆犹新。不得不感叹,国内外公司在不同的企业文化下,有着截然不同的价值观。就我后来的经历来看,大部分公司的开发主管是不会专门抽时间,举办一个会议告诉你程序员到底是什么样的人。我也许是幸运的,我牢记了这句话,并在以后的工作中不断的以此为职业准绳面对工作中的各种问题,建立了自己对于职业的好坏标准。如同大家

2012-09-30 12:09:07 842

原创 迄今遇到过最难排除的两个bug

1. 在类中有成员std::vector m_systemDatas;有成员变量 SystemData* m_pRenderSystemData;初始化时将m_pRenderSystemData = &m_systemDatasp[0];症状:在运行过程中,m_pRenderSystemData所指向的地址被回收。第一想到的就是,在不恰当的地方删除了这个对象。检

2012-09-16 22:42:22 1632

原创 论MMORPG游戏服务器架构

就我见到过的MMO服务器架构做一个总结吧。第一种,靠一个matchmaking服务器来做负荷均衡,这种架构比较适合大厅游戏或者副本游戏。方法是用一个服务器作为登陆服务器,所有玩家请求连接的要求都被该服务器处理,除了将玩家分配到相对空闲的服务器外,还要处理玩家的特殊搜索需求,譬如等级在多少之间的,同样需要完成什么副本任务的等等,将这么一群合适的人一起分配在同一个服务器。这样的优点就是服务器资源得

2012-09-08 00:16:11 2656 1

原创 可视化脚本

最近自己写了一个这个东西,我不知道这么称呼它是否准确。简单的说就是,以极小的代价,让程序内部的变量自动映射到一个可视化UI上,这样可以方便策划进行数据修改,保存以后,程序又自动的把这些数据读入。避免了每次新写一个系统,就要定义一个新格式的XML,然后策划要学习新的关键字,程序要写新的解析代码。其实这种情况在我遇到过的项目里基本都存在,而且从来没有人质疑过这样反复重复的劳动是否必要。

2012-08-24 23:51:04 2115 2

原创 今天才体会到多线程的快感

以前写代码几乎从来没考虑到过多线程的使用,可能是因为没有涉及到过大量运算的处理,一般都是单线程写完就完,处理时间也就最多几十秒,等等也就ok最近在写一些和服务器工具相关的东西,涉及到大量的数据运算,仍然没有使用多线程的意识,写完以后发现处理所有的数据运算需要7个小时,并且认为大不了晚上就可以挂机做后来被主程要求认真考虑提高性能,才开始真正重视功能以外的事情,于是开始用多线程处理数据,写

2012-07-21 22:36:47 497

空空如也

空空如也

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

TA关注的人

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