CppCon 2014-2016 选荐合辑

用了两个周末,快速过了一遍 CppCon 2016 的 112 个演讲,筛出了下面我觉得最有价值的 18 个 (其中有八个 must-reads 标注了星号)。

文档的实际链接地址是:

https://github.com/mc-gulu/dev-awesomenesses/blob/master/awesome-cppcon.md

为了方便查看,这里直接使用该页面的截图 (如无意外不会更新)。在 ......

我的时间分配变迁记 (原问题:程序员工作中占时间最长的是哪个步骤?)

本文是前天晚上的一个答案,稍作修订,放到这里。

程序员工作中占时间最长的是哪个步骤?

下面的图表是我个人工作十年以来各项时间占用的大致变化情况。需要说明的是,这不是由精确的统计汇总而来,而只是大致估算;不是我认为理想的情况,而只是此期间实际发生的情况。

(设计和实现) 长期来看,你愿意花在设计和实现的时间,基本上取决于你对这项工作的热爱程度。我见过一些进入管理岗位的同事,这两项迅速地滑落至接近 0 的;也见过始终对编码本身情有独钟的——这并没有对错,只是不同个体的兴趣......

(Unity) 为动态加载的 C# DLL 添加调试支持

昨天遇到了一个 C# DLL 动态载入后调试信息缺失的问题,今天上午解决后记录一下,以便遇到这个问题的同学可以参考。

(注)此文中的截图内文字偏小,可以 Ctrl + 鼠标滚轮放大查看。

问题描述

我们知道,Unity 中的 Debug.Log() 系列函数不仅能输出用户内容,而且能通过类似 StackTraceUtility.ExtractStackTrace() 这样的机制把该输出对应的堆栈打出来;当用户代码出现未捕获异常时,Unity 也会利用该机制输出异常及相关的完整堆栈信息。

如这个函数:

void PrintStacktraceOrdinary()

{

Debu......

(3/3) DOOM3 网络架构

(3/3) DOOM3 网络架构

本文是系列的第三篇:

DOOM3 技术点滴

DOOM/Quake I/II/III 网络模型的演化

DOOM3 网络架构

本文绝大部分为较简短的记录,进一步的描述请参考原文。

架构

客户端把输入采样等玩家动作发给服务器,服务器回之以 PVS 内的压缩后的状态快照。

C/S 架构图

Doom3 做到了同样的玩家输入序列总是能产生同样的结果,因为以下两点得到了保证:

......

(2/3) DOOM/Quake I/II/III 网络模型的演化

(2/3) DOOM/Quake I/II/III 网络模型的演化

这一篇是上一篇DOOM3 技术点滴的自然延续,但内容上独立成篇,实际上描述了 id software 从 DOOM 1 开始的若干款 FPS 游戏在网络架构方面的演化。同样的,更多的细节可参考这里和 Quake III Arena 网络协议规范(非官方) (看起来在互联网上已经找不到链接了)。

本文是系列的第二篇:

DOOM3 技术点滴

DOOM/Quake I/II/III 网络模型的演化

DOOM3 网......

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