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

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

文中的链接无法正常访问

文中的代码段落多出了许多 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(需翻墙),原文在这里(需翻墙)。

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

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

Tags

游戏开发   随笔   Programming   C/C++   优化   Unity   C++   知乎   游戏设计   比特币   Unity3D   区块链   软件开发   引擎设计   系统架构   Production   idtech   中国文化   加密货币   项目管理   Bitcoin   游戏评论   资源管理   资源流水线   效率   道德经   网络   方法论   模板编程   Lua   Oculus   GDC   渲染   VR   PerfAssist   Unity MemoryProfiler   BCH   经济学   信息过载   行业报告   字体   Productivity   图形   网络编程   Dice   协程   EMC   Premake   测试   中间件   Game Engine   新手引导   Methodology   CI   命令行解析   goroutine   ndk   Ethereum   nanomsg   自动化   Scripting   摘录   Debugging   同步技术   cppcon   C++模板   DOOM3   技术评估   Unity GC   C++11   学习方法   Surface Pro 3   Engine Evaluation   CRT   文化   Blockchain   笔记   golang   图形编程   多线程   ETH   Blockchain Computing   Bitcoin Cash   cppcon14   Bitcoin SV   Visual Studio   Unity Coroutine   跨语言可变参数列表   团队协作   货币   Deployment   Visual Assist   工程改进   Michael Abrash   exp   开放世界   域名   虚拟现实   系统重构   slua   遮挡剔除   完美转发   协作式调度   Modern C++   类型推导   Memory Debugging   个人成长   小故事   BTC   暴雪   产品   历史   错误处理   Unity Profiler   MOD  

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