返回首页
最新 | 最热门 | 最高评价

+0  设计了一个数据格式

Tag: 游戏开发 | 大发排列3
云风 发于 2019年01月31日 14:06 | 点击: 2120 | 大发排列3计划
最近一段时间在忙着设计和实现我们游戏引擎用到的数据格式。

在此之前,我们一直在直接使用 lua 描述数据;但最近随着数据类型系统的完善,同事建议设计一种专有数据格式会更好。希望专用格式手写和阅读起来能比 lua 方便,对 diff 更友好,还能更贴近我们的类型系统,同时解析也能更高效一些。lua 的解析器虽然已经效率很高,但是在描述复杂数据结构时,它其实是先生成的构造数据结构的字节码,然后再通常虚拟机运行字节码才构造出最终的数据结构。这样的两步工作会比一趟扫描解析构造要慢一

查看全文: http://shapenut.com/item/17373.html

+0  粒子系统的设计

Tag: 游戏开发
云风 发于 2019年01月09日 16:44 | 点击: 1151 | 大发排列3计划
因为需要为我们的 3d engine 添加特效系统的模块,我最近读了一篇文章:Efficient CPU Particle Systems 。文章的作者为很多 MMO / MOBA 游戏设计过粒子系统,其中最有名的是上古卷轴 Online 。所以我认为他的实践很有参考价值。

文章很长,夹杂着设计思路,优化,算法实现,渲染实现。对于我来说,由于过去我做过好几版粒子系统,所以读起来不太费力,很多细节可以直接略过,我今天写一篇 blog 把我认为文章中对我最有参考价值的部分列出来

查看全文: http://shapenut.com/item/17279.html

+0  一种 16 倍抗锯齿字体渲染的方法

Tag: 算法 | 游戏开发
云风 发于 2019年01月08日 18:01 | 点击: 1139 | 大发排列3计划
昨天读了几篇文章,讲解了一种新的抗锯齿字体渲染的方法 。

我觉得颇有意思,就试着实现了一版 CPU 版本,想看看针对中文的效果。虽然最后觉得这个算法对游戏领域的实用性不大,不过还是挺有启发的。这里写写我对这个算法的理解,以及我所理解的算法局限性。

原文讲解的非常细致,还配了不少图片,我就不再重复了,只简单说两句。

我认为发明这个算法的动机是 “Our UI has a lot of smooth animation, text should be able to mov

查看全文: http://shapenut.com/item/17278.html

+0  lua 5.4 可能会增加 to-be-closed 特性

Tag: lua与虚拟机
云风 发于 2018年12月18日 10:46 | 点击: 723 | 大发排列3计划
如果你有关注 lua 在 github 上的仓库,就会发现,最近一段时间增加了一个新特性:to-be-closed 的 local 变量。

鉴于历史上 lua 每次的大版本开发过程中都会增加很多有趣的特性,却无法保持到版本正式发布。本文也只是介绍一下这个有趣的特性,并不保证它一定会被纳入语言标准。正式的发布版中即使有这个特性,语法上也可能有所不同。

我认为 Lua 加入这个特性的动机是它缺乏 RAII 机制。过去,我们必须用 pcall 来确保一段代码运行完毕,然后再清

查看全文: http://shapenut.com/item/17243.html

+0  惰性编译资源仓库中的源文件

云风 发于 2018年12月03日 11:29 | 点击: 742 | 大发排列3计划
我们的 3d engine 的资源仓库使用 Merkle tree 储存在本地文件系统中,我们称呼它为 vfs ,虚拟文件系统,其结构和 git 的仓库非常类似。关于这部分的设计,之前已写过好几篇 blog 了。

现阶段已完成的版本,已经做到把 lua 虚拟机和所有 C/C++ 实现的 lua 库静态编译打包为一个执行文件,可以零配置启动运行,通过网络远程访问一个 vfs 仓库,完成自举更新和运行远程仓库里的项目。

最近在开发的过程中,发现了一点 Merkle tree

查看全文: 大发排列3网址

+0  ECS 中的 Entity

Tag: 游戏开发 | 大发排列3
云风 发于 2018年11月30日 16:04 | 点击: 1053 | 大发排列3计划
我认为 ECS 框架针对的问题是传统面向对象框架中,对象数量很多而对象的特性非常繁杂,而针对对象的不同方面 aspect 编写处理逻辑会非常繁杂。每个针对特定的方面执行业务,都需要从众多对象中挑选出能够操作的子集,这样性能低下,且不相关的特性间耦合度很高。

所以 ECS 框架改变了数据组织方式,把同类数据聚合在一起,并用专门的业务处理流程只针对特定数据进行处理。这就是 C 和 S 的概念:Component 就是对象的一个方面 aspect 的数据集,而 System 就是

查看全文: 大发排列3官网

+0  3d engine 项目招聘

Tag: 杂记
云风 发于 2018年11月23日 15:02 | 点击: 739 | 大发排列3计划
我们的 3d engine 项目从 2018 年 1 月底开始,已经过去 10 个月了。比原计划慢,但是进度还可以接受。目前已经大致完成了运行时的基础渲染框架(基于 ecs 模式),整合了 bullet 物理引擎,开发了一个基于网络的虚拟文件系统,可以不依赖本地的资源/代码直接远程运行。另外还开发了一个 lua 的远程交互调试器,可提升 lua 的开发效率。

单从 runtime 角度,引擎的完成度已经较高。但和之前开发 ejoy2d 不同,这次希望把引擎的侧重点放在工具链

查看全文: http://shapenut.com/item/17210.html

+0  判断点是否在三角形内的算法精度问题

Tag: 算法 | 优化与技巧
云风 发于 2018年11月09日 10:36 | 点击: 998 | 大发排列3计划
今天一个同事反应,在使用 recastnavigation 库时,判断一个点是否在一个三角形内,遇到了精度问题,而且精度误差很大。

具体是 dtClosestHeightPointTriangle 这个函数。

他给出了一组测试参数,abc 三点为 {261.137939, 8.13000488} , {73.6379318, 8.13000488}, {76.9379349, 10.2300053} ,测试 p 为 {74.4069519 , 8.6193819 } 应该

查看全文: 大发排列3网址

+0  Skynet 1.2.0

Tag: 大发排列3注册
云风 发于 2018年11月06日 12:27 | 点击: 499 | 大发排列3计划
今天我发布了 skynet 1.2.0。

距离上次发布 1.1.0 已经有一年了。虽然我觉得给 skynet github 仓库里某个特定版本起个有意义的名字并无太大意义,因为我也不会刻意去维护一个所谓稳定版。但在 issues 中还是发现有一些同学还在基于上个 1.1.0 的 release 版提问题,我认为还是保持一年一个版本号比较好。

其实,对于活跃项目,最好的方法还是始终跟进 github 上的 master 比较好。我也刻意在维持代码的向前兼容性。skynet

查看全文: 大发排列3

+0  Lua 的多线程支持

Tag: lua与虚拟机
云风 发于 2018年10月21日 15:38 | 点击: 721 | 大发排列3计划
单个 Lua 虚拟机只能工作在一个线程下,如果你需要在同一个进程中让 Lua 并行处理一些事务,必须为每个线程部署独立的 Lua 虚拟机。

ps. 在少量多线程应用环境,加锁也是可行的。你可以在编译时自定义 lua_lock(L) 和 lua_unlock(L) 去调用操作系统的锁。

比较成熟的 lua 多线程库有 Lanes 和 Effil 。它们都试图隐藏多虚拟机的细节,让用户使用起来好像多线程在使用同一个虚拟机一样。比如 Effil 就用了 effil.table

查看全文: http://shapenut.com/item/17158.html

+0  Lua GC 的工作原理

Tag: lua与虚拟机
云风 发于 2018年10月10日 04:19 | 点击: 777 | 大发排列3计划
上次在 blog 上写 Lua GC 是 2011 年,lua 5.2 尚未发布时候的事情了。我认为仔细研读优秀开源代码是非常值得做的事情,但把研读过程写出来却意义不大。代人咀嚼这事吃力不讨好,每个人的技术背景不同,写得过细浪费阅读时间,写的粗糙又会使读者不得要领。一行行读代码本就只是件辛苦活,任何人沉下心来都能做到,想通过别人代读而节省时间,多半是做不到的。所以我那本 Lua 源码欣赏 也就一直搁置了。

沉在代码的逐行细节中往往一叶障目,反不如高屋建瓴的理解一下作者的思

查看全文: http://shapenut.com/item/17125.html

+0  动作游戏中的击打判定

Tag: 游戏开发
云风 发于 2018年09月20日 16:26 | 点击: 1147 | 大发排列3计划
最近在玩怪物猎人世界,断断续续差不多 100 小时了,加上之前花在这个系列上的几百小时,不敢说是个老猎人,忠实粉丝还是算得上的。

因为职业原因,我又琢磨了一下这类游戏的实现方法。在网上搜不到太多直接资料,所以这篇 blog 更多的是对自己的想法的记录。这次主要还是想理解一下游戏中是如何处理武器和怪物之间的击打判定的。

我知道动作游戏和格斗游戏侧重点不同,但也有类似之处。格斗游戏尤其是 2D 格斗游戏资料比较全,制作方法成熟,从网上能找到不少资料介绍原理。浅谈格斗游戏的精髓

查看全文: http://shapenut.com/item/17094.html
|<<<1234567>>>| 一共39页, 461条记录
返回首页