《王朝的家底》 记录 (1)

[按] 此文内容摘自《王朝的家底》第一篇:三千年的粮仓保卫战。标题和其他非原文部分为笔记,文内不再另行区分。

《王朝的家底》第一篇:三千年的粮仓保卫战

从狗尾巴草说起

狗尾巴草是(中国古代一种重要农作物)粟(谷子,小米粥)的祖本植物。狗尾巴草是粟的野生种,也叫“莠”(二者刚长出的幼苗很难区分,所以有“良莠不分”的说法)

粟(谷子),黍(黄米)和菽(大豆),读音相近,最重要的共同点是耐旱耐贫瘠,是先秦时期最重要的农作物。他们生长期短,适合北方旱地,所以率先从百草中脱颖而出。

夏朝和商朝曾被称为“粟文化”的王朝。在那以后,随着人口增加,需要开垦更多的荒地,来种......

Unity MemoryProfiler 的工作机制及可能的改进

Unity 的开源内存分析工具 MemoryProfiler 非常有用,可以提供所有由 Unity 分配的 C++ 对象的内存信息,在该工具内被称为 NativeUnityEngineObject (Native-only Mode)。当 C# 脚本经由 il2cpp 编译为 C++ 时,此工具可以提供额外的所有 C# 对象的信息,在该工具内被称为 ManagedObject (Full Mode)。

本文简单地描述了该工具的工作机制,并探讨了一下基于该工具的一些可能的改进。

工作机制

这个工具中所能提供的所有的内存数据均来源于一个 Unity API:

UnityEdi......

游戏引擎技术点滴

[按] 在上个月 [2016-12-17] 的 2016 金山技术开放日上,俺做了一个游戏引擎相关的分享。结束之后,俺断断续续地在零碎时间里把分享的内容整理了一下,为每张幻灯片配上了简单的文字注解,就形成了这篇小结。

参与了现场交流的同学可能会发现,这篇文字版跟现场版相比,虽然幻灯片保持原状,但文字注解部分略有出入 (增加的内容主要是第二部分“评估,运用和改造”,这一部分在现场时因为时间关系说得非常简略),还请见谅。

内容提纲

游戏引擎的十年变迁 (2006-2016) (对过去十年的游戏引擎发展的简要小结)

游戏引擎的评估,运用和改造 (对一次技术迭代周期内的......

Unity 协程运行时的监控和优化

协程 (Coroutine) 是大部分现代编程环境都提供的一个非常有用的机制。它允许我们把不同时刻发生的行为,在代码中以线性的方式聚合起来。与基于事件与回调的系统相比,以协程方式组织的业务逻辑,可读性相对好一些。

Unity 内的协程实现是传统协程的简化——在主线程内每一帧给定的时间点上,引擎通过一定的调度机制来唤醒和执行满足条件的协程,以实际上的分时串行化执行回避了协程之间的通信问题。但由于种种因素,协程的执行情况对程序员而言相对不那么透明,可以通过一些简单的机制来对其进行监控和优化。

Warm up: 从复用 Yield 对象说起

先从一个最简单而直接的改进开始吧。下面一......

VR 的未来五年 - Michael Abrash 在 Oculus Connect 3 上的回顾与展望

[按] 本文刊发于《程序员》2016年12月,转载请与该刊物联系。

年度 VR 盛会 Oculus Connect 3 上,Michael Abrash 和 John Carmack 和往年一样带来了精彩的演讲。和以往一样,Abrash 的发言 以前瞻性的研究和底层技术发展趋势为主,而 Carmack 的发言 一如既往地更关注在当下的平台上 (主要是移动 VR),通过工程化努力可以把交互和应用做到什么程度。

本篇主要包含了与 Michael Abrash 的演讲相关的内容。

回顾

开始之前,我们先简单回顾一下 Abrash 在近三年前 (2014年1月) 的 St......

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