利用文件摘要简化游戏资源的引用管理

由于微信会对外部页面重新排版,在微信内置浏览器中,本文会出现下面的异常:

文中的链接无法正常访问

文中的代码段落多出了许多 html tag,变得不可读

请选择右上角菜单“在浏览器中打开”即可正常阅读。(本文的永久链接)

(此图引自 Understanding Go Dependency Management)

资源的引用管理是个有趣的话题,最近我在代码里实践了一种做法,可以在某些方面简化资源的管理,完成之后简单记录在这里。这篇文章先介绍传统的各种方式,然后简单说明一下,这个实践在传统方式的基础上做了哪些改善,解决了什么问题。

引子

游......

一个有趣的交互 bug ——兼谈游戏的引导系统

昨晚在 iPad 上玩一个叫《变形金刚》的游戏时,遇到了一个无响应的 bug。想了想感觉可以记一下,写在这儿,对自己也是个提醒。

当把游戏放下,过段时间后从解锁屏幕恢复时,这个游戏就无法响应任何的触摸输入了,屏幕上的具体情况如下图:

有经验的开发者,光靠这个截图,应该就已经大致明白发生了什么问题了。我们简单分析一下吧:

中间的消息框,是提示会话已过期需重新登录,这一类对话框很常见。为了防止玩家在登录已经失效的情况下操作,这个对话框通常会被设计为模态的,也就是所有其它的界面响应都会被它拦截,只有“确定”那个按钮能响应用户操作。

而在屏幕下方,呈......

[知乎] 开放世界游戏中的大地图背后有哪些实现技术?

有两件事物,我愈是时常反覆地思索,就愈是感受到发自心底的由衷的赞美和无边的敬畏——这就是我头顶灿烂的星空,和我内心的道德准则。 - 康德

早些时候在知乎上看到这个有趣的题目,忍不住写两笔吧 :)

原题目:开放世界游戏中的大地图背后有哪些实现技术? 题目链接

补充说明:诸如GTA,武装突袭之类的游戏中,开发者是如何实现超大地形的?对于这一问题有什么主流的解决方案?

补充:例如一些开发者提到的浮点精度问题是如何解决的?又如果npc在玩家视野之外是如何运算的??

以下部分是我的答案:

首先肯定一下,这是一个非常有趣的问题。在这个答案里,我将尝试先回答主干......

基于插件的引擎设计

这篇小文是我读“Building an Engine Plugin System”(需翻墙)随手留下的一些笔记。

开始正文前,先无责任评论两句吧。bitsquid是一个强调动态(各种reload),极简设计(接口知识最小化),轻量级(核心不到20万行)的引擎,跟俺口味很贴近,所以俺一向比较关注他们的动向。这是个小团队,虽然网站上没啥信息,引擎也未公开放出,可是blog的水分很少,质量比较高,是俺的菜。

按照传统套路,先啰嗦一番“非插件化设计”的弊端:

想扩展现有行为,就得修改代码,重编引擎。(隐含工作量太大——获取全部代码和依赖的库,架设所有build环境)

一旦开始有......

[译] 不要说谎 (Don't lie.)

按:

本文是两年半前翻译的一篇文章,译于[2011-11-05](修订于[2014-03-22]),原文发表于[2011-10-04],出自 DEADC0DE 的 blog(需翻墙),原文在这里(需翻墙)。

现在我仍记得,初读此文时,脑海中反复回响着的林锐博士的一句话:“做一个真实,正直,优秀的科技人员。”

在漫长的职业生涯中,一个程序员会不断面临各种主观和客观的压力,前者比如视野,品味,学习能力和天然惰性,后者比如项目进度,主管偏好等等。能不能在面临这些实实在在的压力时,仍有一丝不苟的操守,认真对待自己写下的每一行代码,这对于有追求的程序员几乎总是一个艰难的选择。我相信,凡是热爱编程......

知识共享许可协议
本作品由Gu Lu创作,采用知识共享Attribution-NonCommercial-NoDerivatives 4.0 国际许可协议进行许可。