最新 | 最热门 | 最高评价

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

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

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

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

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

+0  lockstep 网络游戏同步方案

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

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

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

+0  虚拟文件系统的自举

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

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

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

首先我不想做的太复杂。

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

+0  Lua 虚拟机的封装

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+0  群星 2.0 汉化项目

Tag: 游戏 | 杂记
云风 发于 2018年02月24日 23:18 | 点击: 667 | 展开摘要
年前就留意了群星会在年后发布 2.0 ,我一直在跟踪它的版本升级维护汉化 mod ,既然这次是一个大版本升级,更新的文本肯定非常多,所以对这次的工作量有了充分的心理准备。

在 2.0 发布的前一天就返回了广州,我反思了过去汉化 mod 的维护过程。虽然有 github 这个方便的工具,可以联合很多同好的力量,但每次还是弄得人很累,尤其是第一天的整理工作。

我以前的做法是,更新完游戏,把新的英文文本上传,根据 github 上的 diff 来整理中文的翻译。过去选择人肉做中

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

+0  最近玩的几款游戏

Tag: 游戏
云风 发于 2018年02月12日 21:36 | 点击: 833 | 展开摘要
最近和一位新同事一起在开发新的 3d engine 。还在构建基础的东西。从第一次提交到现在已经过去了 24 天,有 129 个 commits 。短期内还不太可能开源(即使开放仓库,估计也没几个人知道怎么构建出来)。提一句,只是说明这个项目正在进行中。

从 2017 年底到现在倒是玩到了不少非常不错的游戏。这些游戏没有用到什么华丽的技术,但它们都有一些能抓住玩家的不一样的东西。

首先是 Slay the Spire 。这款结合卡牌构建和 Roguelike 元素的游戏,

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

+0  通过斜切变换 2d sprite 提高装箱率

Tag: 游戏开发
云风 发于 2018年01月19日 17:05 | 点击: 1233 | 展开摘要
现代 2d 游戏的图形地层绝大多数也是基于 3d api 实现的。为了提高性能,通常要把若干图元 (sprite) 装箱在整张贴图中。这个装箱过程可以是在线下完成,也可以是在运行期来做。

TexturePacker 就是做这件事的优秀商业工具。不过我认为把它放在开发工具链中还有一些不足。图元的装箱和根据装箱结果合成贴图是两件事情,如果我们是手工操作,合在一起完成当然方便;但如果是在自动化流程中,分开独立完成更好。因为迭代开发过程中,每次重新打包资源,都只会修改少部分图元,且

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

+0  资源文件系统的设计

Tag: 游戏开发
云风 发于 2017年12月20日 11:47 | 点击: 983 | 展开摘要
上次说到,我们的引擎打算在 PC 上开发,设备上直接调试。如果是按传统的开发方式:运行前将 app 打包上载然后再运行,肯定是无法满足开发需要的。所以必须建立一套资源的同步机制。

目前,我们已经实现了基本的资源文件系统,大致是这样工作的:

所有的资源文件,包括程序代码本身(基于 Lua),都是放在开发 PC 上的。开发环境会缓存每个文件的 md5 值,文件系统将用此 md5 值为标准,默认 md5 相同的文件,其内容也是一致的,暂不考虑 md5 冲突的问题。

在设备上,

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