木匣子

Web/Game/Programming/Life etc.

网络游戏 与 GMT / UTC

在游戏开发的过程中,免不了跟「日期/时间」打交道,尤其是网络游戏。策划通过配置活动的起止时间来实现活动的开放与关闭。

在全球化的今天,作为东八区的开发者,我们做的游戏并不是只有我们自己在玩——来自世界各地的玩家都可以参与我们的游戏。所以在日期处理这件事上,就需要多加考虑,不然在许多地方会捅篓子,或者被玩家有机可趁。

通用等级经验表配置

最近翻资料的时候看到一篇很早以前写的内部分享文章,关于等级-经验表的配置设计。对游戏开发来说,这项配置简单到不能再简单了,但是如果处理不好会增加许多沟通成本,甚至闹 Bug —— 没人喜欢 Bug. 所以我打算拿出来分享一下。

在游戏开发中,等级与经验表是一个非常重要的配置。在我参与的第一个项目的开发实践中因为没有确定一个比较好的规范,导致了一些分歧,所以本文将对等级经验表配置的合理性进行探索。

几张 Pomelo 框架的序列图

最近一年来,强连接的手机网游慢慢多起来了,这也促使我开始对它们使用的技术好奇起来。这个月研究了一些有关游戏服务端的东西。读了一些相关的书籍,例如《大型多人在线游戏开发》。这才发觉目前工作中使用的技术与之相差甚远。现在在开发的项目简单说就是带网络储存功能的单机游戏罢了,想直接加入玩家之间流畅的实时对战的功能几乎不可能。所以乎我决定深入学习一下 MMORPG 相关的技术以及框架。

浅析 Pixi.js 渲染流程

Phaser 是一个非常流行的 html5 游戏开发引擎,而它使用的渲染层是由 Pixi.js 提供。Pixi 是一个相当完善的基于 WebGL 的 2D 渲染层,对不支持 WebGL 浏览器可采用 Canvas 垫背(2D WebGL renderer with canvas fallback)。

由于 WebGL 是 OpenGL ES 2.0 的子集,而 OpenGL ES 2.0 又是 OpenGL 2.x 的子集,所以我觉得从 WebGL 入手理解游戏引擎的渲染层如何工作是个比较容易的方向;可以忽略很多高极特性,去关注最本质的部分。

我很好奇 Pixi 是如何把 Shader、Texture、FrameBuffer 等 OpenGL 元素用 javascript 组织到一起的,于是下载了它的源码做了简单的分析。