项目近况(以及招人)
前段时间忙着做demo。现在基本的框架有了,不过不是很精细,我也没打算做很精细。(想看demo可以来工作室看)
最近在做核心玩法,核心玩法做好了就可以招人了。
现在我对团队规模已经不抱期待。只希望招一名擅长画人物表情、立绘的画师。可以参考各种galgame、同人游戏。非想天则那种就很不错。
这个项目我打算1-3个人完成。如果没有条件就自己做完。有条件就和1-2位美术大佬合作。
限于生存压力和业界激烈的竞争格局,游戏现阶段的demo我无法在网上放出。但是我非常欢迎感兴趣的同学来我的工作室看看,亲自玩玩。
玩法在做了,故事在写了,美术在画了,不要问了,再问。。再问也还是在做了。。自己来看看吧,等你。
(在杭州,线下合作。)(在杭州,线下合作。)(在杭州,线下合作。)
《孙悟空大战机器金刚》开发日志 #8
本阶段的工作
这几天,一方面是开始搭建场景,一方面是修补一些还缺失的功能,以及一些改进。还有,海报终于完成了,设立了一个游戏条目。以后,会做一个仿照 FC 包装盒和卡带做一些图。关于 FC 卡带封面,我推荐一个有趣的网址:[http://famicase.com/](http://famicase.com/18/index.html),主要是汇集了“虚拟”创作的 FC 卡带的 作品。另外关于怀旧主机的包装尺寸可以参考这些网址:[www.thecoverproject.net](http://www.thecoverproject.net/) , [www.nintandbox.net](http://www.nintandbox.net/) 。
摄影机的问题
原来的摄影机,设置为跟踪玩家角色到摄影机中点,同时往玩家角色的朝向方向做一个提前量,主要用于玩家在行进时,看到前方的范围比例加大。但是原来的设置有个问题,就是在需要频繁转身的战斗时,摄影机会来回快速的切换前后。所以这次设置一个触发范围,玩家角色到达这条线后才触发镜头的转向,同时在这个范围内,摄影机归中到以玩家角色为中心。具体看下面的动图。两条黄线为触发范围,下面的一个方框就是摄影机的中心点:
场景编辑
开始设计一些场景,construct 3 有趣的地方是可以打开编辑器里面的动画预览,所以就有了下面这样的操作:
场景的 tile 我添加了灰色的主题。
起始房间
游戏的美术,特别在场景部分,需要坚持尽量用可重复的元素搭建,具体方法就是使用 tile,但是在一些特殊的地方还是会进行一些特殊物件的绘制,比如初始房间,这个东西只会使用一次:
背景的卷轴
做了 16 位游戏里面常见的背景卷轴,作为丰富房间背景的一种形式。尽量抽象简单,而且用的颜色还压低了 50% 亮度,尽可能避免对前景的干扰。
技能系统
下面这个房间是技能宝物的获取房间:
打破房间中的胶囊,可以得到新的机能,技能的获取系统已经完成。
Atlas
整个世界的地图,本来应该是在纸上进行操作,但是我在矢量软件里面试了一下,也还是挺方便的:
一摆出来就知道还剩下的工作量了,光是那几个 Boss 的“毛胚房”就得重新装修。
操作感方面
操作感方面增加了两条:
- 跳起攻击时的重力下压;
- 击中时的角色动画暂停;
这个游戏并不是格斗游戏或者横版过关,也没有什么华丽的招式,主要想给玩家感受到一点的力量感。
后续
这个月是出不了试玩了,感觉还得再奋战一个月。不过我想,要打造完整的迷宫再推出试玩可能离成品就已经不远了。所以抛去迷宫部分,也许可以先设置一些斗技场房间,这样就可以很快的进行测试了。
《孙悟空大战机器金刚》开发日志 #8
本阶段的工作
这几天,一方面是开始搭建场景,一方面是修补一些还缺失的功能,以及一些改进。还有,海报终于完成了,设立了一个游戏条目。以后,会做一个仿照 FC 包装盒和卡带做一些图。关于 FC 卡带封面,我推荐一个有趣的网址:[http://famicase.com/](http://famicase.com/18/index.html),主要是汇集了“虚拟”创作的 FC 卡带的 作品。另外关于怀旧主机的包装尺寸可以参考这些网址:[www.thecoverproject.net](http://www.thecoverproject.net/) , [www.nintandbox.net](http://www.nintandbox.net/) 。
摄影机的问题
原来的摄影机,设置为跟踪玩家角色到摄影机中点,同时往玩家角色的朝向方向做一个提前量,主要用于玩家在行进时,看到前方的范围比例加大。但是原来的设置有个问题,就是在需要频繁转身的战斗时,摄影机会来回快速的切换前后。所以这次设置一个触发范围,玩家角色到达这条线后才触发镜头的转向,同时在这个范围内,摄影机归中到以玩家角色为中心。具体看下面的动图。两条黄线为触发范围,下面的一个方框就是摄影机的中心点:
场景编辑
开始设计一些场景,construct 3 有趣的地方是可以打开编辑器里面的动画预览,所以就有了下面这样的操作:
场景的 tile 我添加了灰色的主题。
起始房间
游戏的美术,特别在场景部分,需要坚持尽量用可重复的元素搭建,具体方法就是使用 tile,但是在一些特殊的地方还是会进行一些特殊物件的绘制,比如初始房间,这个东西只会使用一次:
背景的卷轴
做了 16 位游戏里面常见的背景卷轴,作为丰富房间背景的一种形式。尽量抽象简单,而且用的颜色还压低了 50% 亮度,尽可能避免对前景的干扰。
技能系统
下面这个房间是技能宝物的获取房间:
打破房间中的胶囊,可以得到新的机能,技能的获取系统已经完成。
Atlas
整个世界的地图,本来应该是在纸上进行操作,但是我在矢量软件里面试了一下,也还是挺方便的:
一摆出来就知道还剩下的工作量了,光是那几个 Boss 的“毛胚房”就得重新装修。
操作感方面
操作感方面增加了两条:
- 跳起攻击时的重力下压;
- 击中时的角色动画暂停;
这个游戏并不是格斗游戏或者横版过关,也没有什么华丽的招式,主要想给玩家感受到一点的力量感。
后续
这个月是出不了试玩了,感觉还得再奋战一个月。不过我想,要打造完整的迷宫再推出试玩可能离成品就已经不远了。所以抛去迷宫部分,也许可以先设置一些斗技场房间,这样就可以很快的进行测试了。
MoonQuest 的像素画活动
世界杯结束啦,今年还是我不喜欢的球队捧起了大力神杯。
颁奖仪式的时候瞥一眼看到MoonQuest 的活动,就跟着画了一个。
草地部分的细节还是学不会,就糊弄过去了,地底的部分也很差,人物肢体也画得不好。>_<
想找一位像素画家组队,业余时间做个简单的小游戏(我已经有一些东西了~)
哈喽,
各位Artist大家好,
我想找一个像素画家,一起完成一个小游戏,设想是讲一个简单的小故事的RPG玩法游戏。
我已经做了一些功能了,下面是目前的一些截图,我自己因为兴趣,也学过画像素画,截图里的像素素材大部分是我自己画的,但是效果确实不如真正在学习或者职业的像素画家,再就是全部自己来做精力不够哇
预计需要的素材包括UI,场景和环境(比如房间,石头之类不需要太多动画的),和帧动画(比如敌人攻击,玩家跑动。据我的经验这是最费时间最难的),具体这些是什么样子我们可以随着做讨论和想象。
不知道有没有感兴趣的小伙伴想和我一起完成这个游戏。如果能做完的话,一起制作的小伙伴都是这个游戏的作者,可以把他当成自己的作品集。
请联系我!!微信扣扣都可以: 275572609
关于低分辨率像素游戏下显示非防锯齿中文 / 汉字的研究
- 声明:转载请链接出处。
- 作者:来自 BITCA.CN 的 Retro Daddy
- 邮箱:harrisyu@qq.com
---
## 面临的问题
像素游戏是独立游戏的一种常用表现方式,在制作中文游戏时我们要面临显示点阵汉字的问题。当前各大游戏引擎中都会有显示中文的功能,但显示出来的中文字体效果一般都差强人意任意,在低分辨率的像素游戏画面下会产生一些问题:
1. 默认的防锯齿使得字体跟游戏画面的整体风格不搭;
2. 关掉防锯齿后,矢量的字库渲染到低分辨率画面上字型比较难看;
3. 为了实现在各设备上的统一效果,可以将字体嵌入到游戏中,但是一个中文字库动辄十几M的容量会消耗大量的资源空间,甚至超过游戏本体的容量大小,对于 HTML5 这样的平台更会增加下载时间。
令我困扰的是像 Construct 这样的 HTML5 引擎在使用原生字体渲染的时候,无法把字号调整到最小(也许跟设备有关),这是我把字号设置为0.1pt的情况:
很多GBA汉化游戏都做得很好,这就是我要追求的效果:
## 解决思路
1. 使用贴图的形式来显示汉字,把用到的汉字当作图片存储和显示;
2. 汉字库只存放常用汉字,或者说只存使用到的汉字库;
3. 使用点阵汉字库,而不是矢量汉字库;
## 具体的实现
首先使用贴图的形式会比直接渲染矢量的会更节省性能的消耗,大多数游戏引擎都提供了 Bitmap Font 或者 Sprite Font 这样的使用贴图来显示字体的功能。实际上就是把所有可能用到的字符事先画到一张贴图上,需要时再逐个渲染出来。当然英文及类似的拼音文字系统所使用的字符数目比较少,所以在这方面比较省事,一张贴图就能搞定。可是中文可以在一张贴图内搞定么?让我们来算一下,比如我们理想中的点阵汉字大小为 16x16 像素,那么在一张 1024x1024 的贴图中,一共可以存放 4096 个汉字,太好了,因为我们所常用的汉字也就是 3500 个,你可以上网搜索到这3500个汉字的表。有了这个常用汉字表,我们就可以用这张表来生成贴图。有些游戏引擎,比如 game maker studio 是内置了这样的点阵字库生成功能的。另外一些就需要借助一些工具。有不少可以生成字库点阵贴图,比较有名的是 BMFont(http://www.angelcode.com/products/bmfont/)。这些软件可以让你输入要生成的字符表,选择你想要的字体,设定生成的字体大小,还可以设定颜色和描边的效果以及是不是防锯齿等。这些软件生成贴图的同时会生成一个数据文件,这个数据文件会保存有常用汉字对应贴图中的位置等信息,游戏在需要渲染点阵字体时可以使用这些数据来得到每个汉字对应的贴图区域。这样做还有一个额外的好处:可以预先叠加效果到字体上,比如描边和渐变等,这样也会省去处理这些效果时产生的性能消耗。
Construct 中默认的像素字体,西文的好处就是字符量很少,你甚至可以自己手写设计,工作量不大:
比较常见的位图字体生成工具BMFont:
)
BMFont 使用微软雅黑输出16像素非防锯齿的汉字,很不好看:
## 字体的选择
现在有了工具,我们接下来要选择使用什么样的字体了。这个问题需要注意,因为大多数字体都不是免费的,特别是你要用在商业用途上,所以在选择字体时一定要注意看准字体的版权声明。中文可免费商用的字体其实并不多,其中最有名的是 Google 和 Adobe 开发的思源系列字体。不过我测试了一些的这样免费商用的矢量字体,都普遍存在一个问题:这些字体并不是为了点阵显示而制作的,在选择比较小的字号同时关掉防锯齿时,出来的效果是机器不美观的。因为我当前追求的是低像素分辨率的画面,所以这些字体并不能符合我的要求。
我要寻找在低字号大小无防锯齿情况下都能表现良好的字体。回想一下,在 DOS 时代,我们的汉字字体都是点阵的,如果你现在搜索 HZK16 时可以搜索到不少信息的,但是关于以前 DOS 时代的这些汉字字体的版权,能够查到的信息并不多。我们暂且把这个作为一个备选方案。另外,其实我们很多主机游戏的汉化都会涉及点阵汉字字体的问题,我的印象中不少 GBA/3DS 汉化游戏的字体都是处理得不错的,当然因为是非商用,字体选择可以很多。同时,虽然现在我们的大多数设备都可以渲染矢量字体,但还是有很多设备是需要显示点阵的,比如各种 LCD 显示屏。所以我觉得还是有针对点阵显示设备设计的字体。我搜索到了“最像素”(https://github.com/SolidZORO/zpix-pixel-font)这个字体,这个字体似乎是一个人开发的,而且是专门为极小分辨率点阵显示准备的。不过唯一的问题是,商业使用还是需要付费授权的。
DOS 时代,320x240 256 色是比较常见的分辨率,当时的中文处理是这样的:
)
UCDOS:
WPS:
最像素字体:
当我在尝试各种可以免费商用的字体时,我发现了“文泉驿”(http://wenq.org)这个开源的字体系列。里面竟然有一款专为点阵设计的宋体,字号从9像素到12像素,显示效果非常的不错,那么决定就是它了!
## 输出的问题
在一般情况下,使用前面提到的 bmfont 这样的软件工具,以及文泉驿点阵宋体,已经可以解决大多数需求,只要你使用的游戏引擎支持使用的 bmfont 生成的数据文件就可以了。不过因为我用的是 Consturct ,一个 HTML5 游戏制作软件,它支持使用的点阵贴图要求每个字符是同等大小的,但是那些字体贴图软件大多数都不支持生成等宽的字体贴图,或者是支持生成等宽字体贴图的软件有各种缺陷,比如贴图大小不可控,无法关掉防锯齿,不支持太多字符集等。
BMFont 输出的字体都是不等宽的,也就是说输出时要经过计算矫正:
有人专门做了给 Construct 用的工具,原先的问题是不支持太大的字符集,现在已经修正,现在唯一的问题就是没有去掉防锯齿的功能:
## 编写工具
最后还是得自己动手做工具,既然在前面我们已经研究了这么多,生成一张这样的贴图对于做游戏的我们来说就不是什么难事了。我现在面临的选择就是用什么来做。本来我是很熟悉 Javascript 这一块的,但是我所知道的 HTML5 相关的引擎都很难渲染出小字号的不带防锯齿的字体。那么用 Lua 呢?我以前用过一段时间 Love2D 感觉处理这样的 2D 像素是比较好的,以前我还用它来制作过处理像素画的软件。但是问题是我没发现它能够渲染没有防锯齿的字体,可惜,而且 Love2D 还有一个缺点就是处于安全性的考虑,它只能写入文件到一个固定的 sandbox 文件夹中,这样做出来的工具使用上比较麻烦些。
最后,我开始考虑到我可以使用的另外一个脚本式语言:Python。如果这个还不行,我就只能考虑 Haxe 和 C 之类的了。说到 Python,我会熟悉 Python 主要是因为我使用 Blender ,使用 Python 可以让我做一些插件扩展。所以以前我是考核过它的游戏制作能力的。它的最出名的游戏库就是 Pygame(https://pygame.org),不过这个 Pygame 的确很 Old School,它是个 2D 引擎,有很多跟像素相关的功能,而且很多概念还停留在 Blit 位图的层面上。不过我仔细看了一下它的最新版的文档,发现它的字体处理应该可以满足我的要求,因为我明确的看到了它可以关掉字体的防锯齿渲染。所以决定就是它了!拿出 Python 书,临时温习一下,同时看下 Pygame 的文档,很快我就做出了自己想要的工具,输出了合适的位图。
推荐使用 PyCharm ,用来写 Python 体验还是很好的:
## 收尾
在收尾工作中,我需要处理一些问题:
- 因为对话中也不免出现英文。这个时候会遇到一点小麻烦,因为中文基本都是等宽的,而英文每个字符有可能是不等宽的,如果我们按照汉字的方式来显示每一个英文字母的话,会出现英文字符之间间隔过宽的问题,看起来就是不好看。不过 construct 是考虑到这个情况的,你只要输出对应需要调整宽度的字符列表及其宽度就可以了。
没有宽度矫正和有宽度矫正的西文字符的区别:
- 还有一个比较麻烦的问题就是英字其实是有基线的,在我们单独输出某一个小写的英文字母时会失去基线的对齐,幸好 Pygame 里面是可以取得基线的信息的,输出字母时调整这个高度即可。
所谓的基线就是红线标的位置:
没有考虑基线时输出的西文小写字符:
按照基线调整输出的西文小写字符:
如果不考虑基线输出的话,结果会是这样:
- 最后,在使用过程中还是出现缺字的情况。这主要是因为我们使用的某个汉字不在常用汉字列表里面,这个时候我们只需要在常用汉字表中加入这个字就可以了。其实我碰到的这个字是“哦”字,显然人们的汉语表达用语也在不断的变化中,现在的一些常用口语有可能并不在这个常用汉字表中。也许以后根据游戏的结构,我会考虑做一个只按照使用过的汉字生成贴图的功能。
## Python 源码
请到简书查看,如果觉得有用的话请打个赏吧:https://www.jianshu.com/p/c44e17f3b8bb
## 完成结果
最终生成的贴图,我还加入了常用的全角中文标点符号:
在 Aseprite 中检查,每个字都加上了黑色描边:
---
到此,对于在低分辨率像素游戏中使用点阵汉字的心得分享就这么多,希望对你有所帮助。