最新 | 最热门 | 最高评价

+0  设计了一个数据格式

Tag: 游戏开发 | 语言与设计
云风 发于 2019年01月31日 14:06 | 点击: 965 | 展开摘要
最近一段时间在忙着设计和实现我们游戏引擎用到的数据格式。

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

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

+0  粒子系统的设计

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

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

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

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

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

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

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

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

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

+0  ECS 中的 Entity

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

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

查看全文: http://www.udpwork.com/item/17223.html

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

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

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

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

查看全文: http://www.udpwork.com/item/17094.html

+0  lockstep 网络游戏同步方案

Tag: 游戏开发
云风 发于 2018年08月31日 11:27 | 点击: 1069 | 展开摘要
今天想写写这个话题是因为上周我们一个 MOBA 项目抱怨 skynet 的定时器精度只有 10ms (100Hz),无法满足他们项目 “帧同步” 的需求。他们表示他们的项目需要服务器精确的按 66ms 的周期向客户端推送数据,而 skynet 只能以 60ms 或 70ms 的周期触发事件,这影响了游戏的“手感” 。

讨论下来,我认为,这是对所谓“帧同步” 算法有什么误解。我们客户端运行时不应该依赖服务器的准时推送消息才能得到(手感)正确的结果。虽然在 skynet 下你可

查看全文: http://www.udpwork.com/item/17036.html

+0  虚拟文件系统的自举

Tag: 游戏开发
云风 发于 2018年08月16日 11:43 | 点击: 1039 | 展开摘要
我们给游戏引擎设计了一个虚拟文件系统,可以挂接不同的文件系统实现,比如本地文件系统模块,内存文件系统模块,网络文件系统模块。比如前几天谈到的资源仓库,就是一个文件系统模块。

这个虚拟文件系统是用 lua 编写的,这就有了一个小问题:lua 代码本身也是放在虚拟文件系统中的,那么就需要解决自举。这些代码很有可能需要从网络更新(网络文件系统模块),而网络模块也是 lua 编写的,代码同样放在这套文件系统内。

这篇 blog 我想谈谈自举是怎样完成的。

首先我不想做的太复杂。

查看全文: http://www.udpwork.com/item/17004.html

+0  Lua 虚拟机的封装

Tag: lua与虚拟机 | 游戏开发
云风 发于 2018年08月15日 16:06 | 点击: 972 | 展开摘要
我打算就我们在开发客户端引擎框架时最近遇到的两个问题写两篇 Blog ,这里先谈第一个问题。

我们的框架技术选型是用 Lua 做开发。和很多 C++ 开发背景(现有大部分的游戏客户端引擎使用 C++ 开发)的人的认知不同,我们并不把 Lua 作为一个嵌入式脚本来看待,而是把它当成一种通用语言来设计整个引擎框架。

其实这更接近 HTML5 流行之后,用 javascript 设计游戏引擎框架:虽然 javascript 的虚拟机本身是用 C++ 开发的,但和游戏引擎相关的部

查看全文: http://www.udpwork.com/item/17003.html

+0  游戏资源仓库及升级发布

Tag: 游戏开发 | 语言与设计
云风 发于 2018年08月15日 11:20 | 点击: 945 | 展开摘要
去年底,我为我们的 3d engine 设计了资源仓库的结构。

随后交给开发组的一个同学实现,这半年来,一直在使用。最近做了引擎一个小版本的内部验收,我感觉这块东西还有比较大的改进余地。因为资源文件系统目前和开发期资源在线更新部分现在掺杂在一起,而网络更新部分似乎还有些 bug ,偶尔会卡住。我觉得定位 bug 成本较高,不如把这块重新实现一遍,顺便把新的改进想法加进去。

这段时间,我重新思考了资源仓库应该怎样设计更合理。越细想越觉得和 git 要解决的问题基本一致。我们

查看全文: http://www.udpwork.com/item/17002.html

+0  群星的汉化及官方中文版

Tag: 游戏 | 杂记
云风 发于 2018年06月10日 22:28 | 点击: 649 | 展开摘要
前段时间,Stellaris (群星)在 steam 上招到了大量差评。这款被短时间差评也不是第一次了,最猛烈的一次是因为 2.0 版改动太大,简直成了款新游戏,得罪了大量 100 小时游戏时间以上的老粉丝;我记得还有一次是因为涨价;似乎还有一次,原因不太记得了。

而这次,是因为有中国玩家用英文在官方论坛请求游戏加入官方中文,被客服不客气的回绝了。原本没官中就差评就是我朝玩家的时尚之一,而这次直接被官方怼回来,更是刺激了我朝玩家的 G 点,连那些平常不参加无官中就差评的玩家

查看全文: http://www.udpwork.com/item/16891.html

+0  《冰气时代》末日下的人性考验

Tag: 游戏
云风 发于 2018年05月05日 18:11 | 点击: 1023 | 展开摘要
劳动节假期前夜,跳票了一年的 Frostpunk 上架了。我的五一假期有一半时间是都在挖煤。我想这是一款堪称艺术品的游戏,因为他能带来娱乐之外的东西,所以我一定要专门为它写一篇 blog 。

出于对开发商的信任,我第一时间就买了这款游戏。毕竟他们的前一个作品——《我的这场战争(This War of Mine)》就充满着人文情怀却不失游戏性,让我沉迷了好几个晚上。我相信新作不会让人失望的。

果不其然,冰气时代依然透着 TWoM 中那种悲天悯人的独特气质,一上手就能感觉到是

查看全文: http://www.udpwork.com/item/16823.html

+0  推荐最近玩的几款独立游戏

Tag: Game | 独立游戏
四火 发于 2018年04月27日 12:21 | 点击: 632 | 展开摘要
如今各种平台上的大作满天飞,可是不知道有多少人和我一样,很难对这些大作燃起热情。可是凭着怀旧的心态,去回味一下老游戏,或者所谓的“经典”的时候,却又发现时过境迁,物是人非,一样缺少玩下去的动力。平时工作生活就很忙了,留下属于自己的时间不太多,也不太愿意沉迷太多的时间给或新或老的游戏,再加上随着年龄的增长,似乎对越来越多的事情失去了兴趣。直到某些“独立游戏”出现,由于资金、人力的关系,它们大多没有绚烂的画面,繁冗的剧情,以及漫长的游戏时间,但是由于开发者可以决定它们的走向,始终

查看全文: http://www.udpwork.com/item/16811.html
|<<<1234567>>>| 一共15页, 178条记录