动手写IL到Lua的翻译器——准备

摘要: 写一个IL到Lua的翻译器。 阅读全文
posted @ 2018-04-03 12:23 fingerpass 阅读(3637) 评论(3) 推荐(6) 编辑

21分钟学会写编译器

摘要: 知乎上有一种说法是「编译器、图形学、操作系统是程序员的三大浪漫」。   先不管这个说法是对是错,我们假设一个程序员在国内互联网公司写代码,业余时间不看相关书籍。那么三年之后,他的这些知识会比在校时损耗多少? 很显然,损耗的比例肯定非常高,毕竟国内互联网公司日常开发工作中,程序员基本很少接触这三块知识。大部分程序员工作几年后对编译原理相关的概念只能生理上起反应,脑海里很难再串联起相关概念了。 阅读全文
posted @ 2016-09-04 10:36 fingerpass 阅读(14790) 评论(3) 推荐(7) 编辑

跟Unity3D学代码优化

摘要: 今天我们来聊聊如何跟Unity学代码优化,准确地说,是通过学习Unity的IL2CPP技术的优化策略,应用到我们的日常逻辑开发中。 阅读全文
posted @ 2016-09-02 10:26 fingerpass 阅读(2711) 评论(3) 推荐(0) 编辑

游戏服务端究竟解决了什么问题?

摘要: 既然是游戏服务端程序员,那博客里至少还是得有一篇跟游戏服务端有关的文章,今天文章主题就关于游戏服务端。 阅读全文
posted @ 2016-02-01 16:55 fingerpass 阅读(42707) 评论(87) 推荐(79) 编辑

漫谈游戏中的人工智能

摘要: 今天我们来谈一下游戏中的人工智能。当然,内容可能不仅仅限于游戏人工智能,还会扩展一些其他的话题。 阅读全文
posted @ 2015-09-05 23:12 fingerpass 阅读(14476) 评论(7) 推荐(6) 编辑

游戏中的定时器

摘要: 游戏中处处都有定时器,基本上每个逻辑部分我们都能看到定时器的影子。如果翻看一下以前网上流传的一些MMO的代码,比如mangos的,比如大唐的,比如天龙的,我们都可以看到形形色色的定时器实现。 在以前,很多程序员用起来C++还都是在用C with Object,以前的C++写callback也好异步也好总是感觉哪里不对劲的样子,所以网上流传的那种线上服务器的代码,一般都是往主循环里硬塞定时器逻辑。 定时器在很多能参考到的代码里都是逻辑和底层不做区分的,这样就会导致一些问题。 一方面,底层的需求是通用性。要通用性的话就必须得在主循环中轮询timeout,而不是借助一些更高层级的抽象; 另一方面,上层的需求是易用性。要易用性的话就必须得用起来方便,而且最好是能原生嵌入在一些常规的异步编程模型中的。最不济的,需要我很方便的挂callback。再高级点,我需要能yield。最上层的,能让我在描述一次lasy evaluation的计算中描述WaitForTime语义,做future什么的当然更好了。 阅读全文
posted @ 2015-05-10 19:18 fingerpass 阅读(6263) 评论(0) 推荐(5) 编辑

面向组合子设计Coder

摘要: 面向组合子(Combanitor-Oriented),是最近帮我打开新世界大门的一种pattern。缘起haskell,又见monad与ParseC,终于ajoo前辈的几篇文章。 自去年9月起正式回归C#以来,我又逐渐接受了不少新的paradigm(虽然主要原因还是在学校用C#的方法太山寨),其中对我影响比较深刻的就是codegen。此codegen非compiler中的codegen,可能更像是meta-programming中的codegen。抽象来说,就是作为一个嵌入于构建流程中的某一步骤,拿到一些元描述信息,来生成代码。 阅读全文
posted @ 2015-03-23 15:51 fingerpass 阅读(2844) 评论(2) 推荐(2) 编辑

用半年的时间面试自己

摘要: 把之前发在is-programmer的面经文章也贴过来了,是我从13年大三下学期的腾讯实习生面试起,到大四上学期参加2014届校招面阿里、人人、网易游戏雷火的面试经历梳理。 标题源自当时在企鹅实习的时候偶然看到的一篇刘未鹏大大的让人醍醐灌顶的文章,之所以换成了半年,一是因为距离我开始决定第一份工作的应聘方向到最后面完网易游戏,恰好半年多一两个月的时间;二是我一直都没有认真经营过一个github主页,之前弄过一个也只是小打小闹。 距写这篇面经已经过去一年有余,我也已经入职雷火半年了,不少当时的观点看来十分幼稚,下面贴上正文: 阅读全文
posted @ 2015-01-04 11:15 fingerpass 阅读(8155) 评论(11) 推荐(16) 编辑

浅谈消息队列

摘要: 1.写在前面 本来一年前的时候还打算以那篇面经为契机,开始自己写博客的习惯,结果后来一拖再拖,虽然evernote里面积攒了不少东西,但是发现想整理成博客真的是太累了,毕设的时候觉得累没整理,刚到公司做mini项目觉得累没整理,后来刚进工作室熟悉环境觉得累没整理,不知不觉就一年没写博客了,囧。 为什么想起来写这样一篇文章呢?其实主要还是两周前有一个知乎问题突然火起来了,传说中的水货程序员之问。这篇知乎问题真是一个大宝库,刚一出来,海量平时在知乎上各种高调的大神(棍)和海量低调的真大神都出来冒泡,让我们这些弱菜开了眼界。水货程序员之问是个好问题,问题不是说好在水货程序员这篇文章到底黑的对不对准不准,而是印发的讨论像钓鱼一样钓出了一水儿神棍。 那怎么区别神棍和大神呢?方法很简单,我们一个一个浏览答案,从高票到低票,哪个答案或者跟着的评论里屁代码没有,还说的煞有介事的,一般都是神棍;哪个答案全程干货,各种分析,那就是大神。 举个比较简单的例子,某高票答案「妄议」了下云风,说后者解决问题的路子太野大家学不来,并且推荐了一票路子「不野」的大 阅读全文
posted @ 2015-01-01 00:19 fingerpass 阅读(6184) 评论(5) 推荐(4) 编辑

ruby中的class_eval

摘要: 最近几天在做一个ruby作业的时候遇到了一些问题,题目是这样要求的 阅读全文
posted @ 2012-03-05 17:19 fingerpass 阅读(805) 评论(0) 推荐(1) 编辑