January 18, 2015

Lua 5.3 中文手册

一边在群里嘻嘻哈哈扯淡,一边翻译着 Lua 5.3 的中文手册。这项工作终于在本周内完成了。

http://cloudwu.github.io/lua53doc 这里可以在线浏览。

得益于强大的 github ,让我可以专注于翻译,而不用在意打字太快造成的各种错别字。这使得翻译工作进行得很流畅。只花了 6 天就完成了 350K html 文本,大约六万汉字的翻译工作。中间还出去跟人吃了个饭、打了一晚上 XCOM ,去岩馆抱了石,回了好些 email ,在群里各种吐槽,以及给 ejoy2d 做了点优化工作。

当然,整个过程并不算轻松。我一天写 2000 行代码时,都没打字到指头酸痛过。

有很多同学帮着做校对。每天中午起床后,只需要合并一下错别字修改的 PR 即可。这里一并感谢你们。你们的名字及贡献永远留在 github 仓库里了:)

如果你在阅读过程中发现什么问题,也可以 fork 这个仓库 ,改好 pull request 即可。

January 13, 2015

Lua 5.3 正式发布以及文档翻译计划

Lua 5.3 正式发布了。

我的三个计划就需要开动了。

计划一:把文档重新翻译一遍。

八年前,我翻译了 Lua 5.1 的中文手册。今天我想再从头做一次翻译工作,借这个机会可以理一遍(以及更新)和 Lua 相关的知识。这次,我选择在 github 上做这个工作,而不是闷头搞完了再发布。

这个项目在 https://github.com/cloudwu/lua53doc ,如果你只是想阅读最终的手册,可以访问这里。如果发现了错别字,不用给我留言,你只需要在 github 上提个 PR ,我会合并的。

今天下午开始的,目前译完了 readme目录页、和正文的很少一部分。我估计需要全职至少 3 个工作日才能全部译完。这次我选择尽量把英文术语翻译成中文,对于我按个人喜好选择的译词,我专门列在一个页面中。

阅读全文 "Lua 5.3 正式发布以及文档翻译计划" »

January 08, 2015

如何拼接 PVR 压缩贴图

2d 游戏通常都用到很多图素,由于显卡硬件特性,我们又不会把单个图素放在独立贴图中。这样会导致渲染批次过多。在移动设备上,非常影响渲染效率。

所以,游戏运行时,这些图素一般都会合并在很少几张贴图上。要么采用离线合并的方式(利用 texture packer 这样的工具),或者在运行时使用装箱算法。

最近,朱光同学一直在为 ejoy2d 编写运行时合并图素的模块。今天我们讨论了一下他做的诸多尝试。

阅读全文 "如何拼接 PVR 压缩贴图" »

为什么 skynet 提供的包协议只用 2 个字节表示包长度

skynet 提供了一个 lua 库 netpack ,用来把 tcp 流中的数据解析成 长度 + 内容的包。虽然使用 skynet 的同学可以不使用它,而自己另外实现一套解析协议来解析外部 TCP 数据流(比如 skynet 中的 redis driver 解析 redis server 的数据流就是用的换行符分割包),但依然有很多同学询问,能不能自定义包头长度。

这里的这个库定义的协议中,包长度是用 big-endian 的 2 个字节表示的,也就是说一个包的长度不得超过 64K 。这让很多人很为难。已经几次有同学建议,把长度放宽成 4 个字节,因为他们的应用环境中大部分包不会超过 64K ,但总有少量超过这个限制的。

阅读全文 "为什么 skynet 提供的包协议只用 2 个字节表示包长度" »

January 06, 2015

从 Lua 5.2 迁移到 5.3

在 2015 年的新年里,Lua 5.3 发布了 rc3 版

如果回顾 Lua 5.2 的发布历史,Lua 5.2 的 final 版是在 rc8 之后的 2011 年 12 月 17 日发布的,距离 rc1 的发布日 2011 年 11 月 24 日过去不到 1 个月。我们有理由相信正式版不远了。( 5.3 的 rc1 是 2014 年 12 月 17 日发布的)

这次升级对 Lua 语言层面的影响非常的小,但新增加的 int64 支持,以及 string pack 、utf8 库对开发帮助很大。所以我强烈建议正在使用 Lua 5.2 的项目尽快升级到 5.3 。相对而言,当初 5.1 向 5.2 升级的时候就痛苦的多(去掉了 setfenv ,增加了 _ENV)。

我计划在 Lua 5.3 正式发布后,将 skynet 内置的 Lua 版本升级到 5.3 ,然后着手进行 skynet 1.0 的发布工作。

阅读全文 "从 Lua 5.2 迁移到 5.3" »

January 03, 2015

新的一年

转眼就是 2015 年,我们的公司成立都 3 年多了。

记得 2013 年底,公司账户里的资金仅够支持不到一年的开发费用,而我们的 MMORPG 斗罗大陆还看不到可以立刻上线盈利的希望。那个时候公司只有 60 人。而时过一年,我们已经有 3 款移动游戏正式上线,第 4 款也在内部测试中,公司终于扭亏为盈,挣来了未来两年的发展基金,人员规模也扩大到了 120 人。

2014 年底的最后三天,公司的管理层 7 人驱车到阳江海边封闭。除了回顾总结一年的工作外,主要是讨论来年要做的项目。

阅读全文 "新的一年" »

December 16, 2014

Dungeon of the Endless

最近一直在玩 Dungeon of the Endless 。按 steam 上的记录,已经超过了 70 小时。今天决定给他在 steam 上写一篇推荐

很羞愧的说,我还没有打过 easy 模式的 Escape pod ,最多到 12 层就挂了。

总的来说,这是近两年我玩过的最好的 Roguelike 游戏,如果放宽一点说,也是最对我粘度最高的一款。很难想像,一个几乎没有成长积累,死了就要从零重新开始的游戏,可以粘住人一盘又一盘的从头开始。而且,玩了 70 个小时没有打过第一关(如果把 escape pod 看作第一个挑战的话)还一直说它的好话。正如游戏那简单的教程最后说的:还有很多可以教你的,不过只要你死的次数主够多,就都知道了。一点点探索游戏的玩法是最大的乐趣。

基本上这是标准的 Roguelike ,有人物成长、有科技升级、有不定期搜集到的装备、有随机迷宫、有突如其来的难题(解决不了就得从零来过)。它的创新点在于掺入了最近几年流行的塔防元素,想想百玩不腻的 Kingdom rush 就知道这是个很惹人喜爱的模式了。

DotE 给人的体验是每道门后的未知刺激,到了 8 层以后更加的明显。随机迷宫的布局真正增加了策略性,在 dust 有限的情况下,你如何布局你的英雄。同时你还得和自己的贪念做斗争:出口已经找到了,我要不要多开一道门?要不要把正在 Operator 的英雄拉过来参战?似乎这拨怪已经拦截住了,省一口 Food 吧?只有在英雄死掉后才追悔莫及。

可是,游戏又总给你留下点希望。有一次我开局不错,到了第 8 层四个英雄都升到了 9 级,工业科技食物攒了一大堆,结果贪心导致死了三个英雄。本来打算放弃的,但抱着试一试的想法,用一个英雄逃离了第 8 层,还在第 9 层还找到了 2 个新同伴。这种起死回生的体验真是非常棒。

阅读全文 "Dungeon of the Endless" »

Misc

Categories

Archives

Recent Comments