卡牌生成器

最近为了验证卡牌的游玩价值,我鼓捣了一个卡牌生成器,可以导入csv之后直接生成卡牌,并且可以在A4纸上自动排版。

卡牌的规格是宝可梦卡牌的标准规格。

打印出来之后,用切纸器裁出卡牌的形状,就可以直接使用,或者插到宝可梦卡牌的卡套里打牌了。

之后版本再做一下自定义纸张大小和自动排版功能。

如果有盆友感兴趣可以在github上直接修改喔。

LD56

似乎团队成员对做GameJam都很有兴趣,不如趁着黄金周找三天一起做个游戏?

总结一下制作时间线。

一早了解到本期主题是“Tiny Creatures”,非常笼统,不是那种条框明确的东西。其实这样的主题反而不太好做,因为可以想的太多,实际上能在两三天内做完的太少。

用两个小时的时间敲定了选题,七选一,最后决定制作赛跑赌马游戏。确定了一些基本的游戏玩法:简易操作,点击即玩。

虽然是原型,但是需要的几个核心动画都在一两个小时之内画完了,后面的有关腿部的动画都采用了这时画的东西。在制作完原型角色后,开始在白板上设计更多的角色,用来展现“小生物”,并且设计了一只大手作为小生物的对比参照物,更突出主题。动画制作时留了一点小心眼——只画了一条腿,在后续调整腿间距时非常方便。

完成初步设计、排除了两个不太合适的角色之后,就一鼓作气地画完了将要用到的参赛小选手们。

小怪物

到第一天结束,基本完成了美术方面的工作,这次尝试的是一种类似Programmer Art的风格,突出粗线条和抖动感。为了完成这个风格的统一,所有的美术素材都画了4遍,并且在引擎中进行了动画绑定,让整个画面更加和谐统一。这里讲一下方法(Photoshop/Unity):

  1. 勾线。先用硬边圆勾出需要的基础轮廓,整个过程中70%的美术素材是用鼠标绘制的,因为鼠标定位足够精准;
  2. 填色。先确定一个基础固有色,而后增加暗部。像是这种程度的风格,仅区分2~3种颜色就足以满足复杂度需求;
  3. 重描。将基础轮廓图层不透明度调为50%,新建图层在其上描绘,为了保证线条的抖动感,不必完全相同,但是应当确保线条的走向和动势是一致的。完成一份后关闭该图层,以为下一份腾位置。本步骤重复三遍;
  4. 重涂。将基础图层不透明度调回100%,取色制作色板。重复步骤3的方法。
  5. 导入引擎,制作动画。究竟怎样的时间间隔可以让这种抖动感效果最佳?我在引擎中稍作了一下总结:

每间隔0:05(即1/12、0.083秒)插入一帧,最后一帧为第一帧。整个循环限制在1/3秒之内。这样的效果最合适。

Behold

系统策划根据这些小怪物进行了一些机制上的设计,如差异化的小怪物、道具赛,也简单编排了一下UI布局。即便是注意再注意,仍然触碰了机制爆炸的红线,这些机制同程序开发速度不匹配,且设计层面上存在不够具体的问题,这次设计有至少60%的内容没有完成,27%的美术资源被浪费了,而文案策划方面的工作完全没有体现在游戏中。严格来讲这样的情况(完全落下队员的成果)不太合适,非常可惜。这些只能作为后续资源补充开发了。

游戏系统策划应该是游戏设计中相当辛苦的工作。(如果期望达标的话)该角色承担了系统设计的方方面面,伴随游戏开发的整套流程——从抽象到极度具体。用人话讲就是合格的系统策划需要对机制设计、数据结构设计、系统架构设计、测试用例设计有熟练的掌握,并能够同程序员进行良好的对接和辅助作用。

系统策划和文案策划/编剧有根本性的区别,但往往被人误解为同一种角色,甚至可以重叠。这是不合理的。事实上系统策划应当和程序高度重叠,以程序员的角度审视剖析游戏设计。

第二天,在已经完成核心玩法的基础上继续攻关其他玩法、修补Bug,

一早起来跑到工作室开始考虑后面追的大怪物应该是什么形态,我直接拍下来几张自己的手,抠图后丢进了游戏。我特别喜欢这种现实物质入侵低维度环境的感觉,荒诞又幽默。后来在程序员的罢工抗议之下,只得把手做了转绘。鉴于可能有些精神污染,就不放上来了。以后自己搞吧。

音效这里大量采用了类8-bit音效,我采用了我个人比较喜爱的模拟合成器MinilogueXD进行音效合成,制作了许多听起来复古又滑稽的声音、以及模拟电视的白噪声和模拟环境音的棕噪声;另配合Volca Drum做一些爆破性的声音。关于声音这方面的处理我还是比较初级。以后还是需要多练习。

东西是好东西,是我菜

程序这边写了一些简单的控制方法控制音频播放,感觉Unity中的音频管理很初级,中间件确实很有必要。但是我们也不能总用wwise或者fmod吧?如果有机会能自己开发一套就好了。可以非常好地分离不同角色之间的工作,尽量避免提交冲突。

当晚非常疲惫,到家已经凌晨1点,手指关节疼痛难忍。G604鼠标已经用坏两个了,现在这个又进入了双击状态,很痛苦,下次一定修。

第三天做最后的打磨,加入了更多的美术表达,毕竟程序短期内也很难实现什么实际的功能了,很可惜,道具赛变成了只能丢香蕉皮。大量时间用来制作标题、说明和开发者,然而在当天上传的版本中,仍然没有把教程做上。

在当晚赶鸭子上架了。该过程耗费了接近三个小时,打不起包、上不去网、登不上号、传不上文件、文件没法运行……

即便作品完成了,也只是整个事业的一个环节而已。

第四天制作结束,进入评审阶段,工作室放假。我加了一天班来制作并上传最终决定版,并通知全世界。WX朋友圈连小红书总共狂集30赞。

这就是这次游戏开发的全记录,真是有意义的几天呀!好了,去开发地牢饿徒了。

p.s. 关于这款游戏,我个人还是有把它做完的计划的,过一阵打磨好玩法之后Steam上架一波,30个赞就是30个购买,那就是30美元的收入!再差70美元就覆盖上架费了。

三个月后

到今天为止, 工作室已经运行三个月了,《地牢饿徒》的开发也前进了一个大版本。给大家看一下成果(其实半个月前就发了)。这次尝试模仿中世纪的音乐,只能说马马虎虎吧!

其实最近刚刚进入创作状态,能够安下心来研究玩法、氛围表现和背景设定。我其实不太理解在强烈压力下持续创作优秀作品的人,压力和焦虑都已经到了那种程度,要怎样再找回自己的缪斯呢?找点慕斯蛋糕还是有可能的。

没错,硕士论文确实两天水完了,参展也能一个月画它个两米乘两米,可是搞下来自己都觉得像是请别人做的。如果再到我不太擅长的作曲方面,对精神状态的要求就更高了,可以写,但难受。

卡拉瓦乔杀了人之后还能把感受融入后续创作?太有艺术自觉性了。

区别于天才,我们普通人的创作还是要尽量排除外部干扰和多重评价标准,尽最大能力地表现自己的意志和思维。做想做的事才不算浪费时间。

好起来了。

已经在向上走了。

重启

经过了一年的筹备,资金、项目、技术都达到了启动标准。就在这周,人员基本到齐,我们决定劳动节之后正式开工。

目前决定先迅速开发《地牢饿徒》(群友称《小无所依》,我觉得太棒了)。这个游戏的Demo是我从去年6月份开始手搓出来的,给各方大佬看了一下,反馈都比较满意。再加上系统完成度比较高,因此希望借用这个增强一下团队凝聚力和收入。

等到《地》开发完成,我们再参加几次GameJam,《老无所依》的开发就可以稳步推进了。《地》的系统与《老》有许多重合之处,因此可以继承式地解决以前遗留的问题、清除埋藏的陷阱。

希望这份考量能让大家满意。

上上周接受了山东工艺美院的招聘会邀请,虽然并没有从山工艺中招到什么人、学生的热情和水准也非常令人失望,但是济南的游戏开发的热情远超我的想象:在招聘网站上发出招募信息后,在短短两周内有超过二百人来咨询游戏开发工作!这真是前所未见。

比起组建新队伍,我更想要召回之前的团队,遗憾的是这并不容易,并且让人伤心。

现实的引力太过沉重,任何……

毕业的时候导师给我写了两幅字,一幅是白宙文化的标题,另一幅是这样的:

这两字也转送给大家,希望每个人都可以自由选择自己飞翔的方向。

咕咕

想着先咸鱼几天,结果意外地很忙,就没闲下来。本来想来点毕业旅行,因为各种各样的原因(天热是第一)也成不了行。于是在一个月内体会到了学生时代是如何迅速成为历史的——相关的人和事突然就难以抓住了。

总之做了不少事,甚至在哔哩哔哩发了个视频,上次发视频已经是两年前了,想想这两年间发生的事情…… 咕咕的理由还是很充分的。

视频内容其实是取自一套给朋友的游戏绘制的概念设定,画出理想的游戏界面。鉴于可能有些保密环节,就放出来其中一张相关性不太强的内容吧。

硬件购买界面

挺有趣的工作。

这个月主要工作是编程。由于我的能力有限,这半年来看着老无所依的代码实在是有些不知从何下手,梳理脉络也很艰难。所以在六月份解决掉毕业展之后,我决定自己上手、参考老无所依的代码从头写一个更小体量的游戏。

初步设想是做一款专注于物品搜刮元素的回合制地下城生活模拟游戏,和老无所依的机制有重叠也可以互为补充,是一个非常适合我的游戏审美的游戏方案。我将这个游戏的各个流程描述分割为若干小功能,并且争取每天都能有所实现——这样即使我开发能力再弱,一天能实现一个功能,一百天就有一百个功能了。

目前至少知道从何下手了。后续就是提升开发速度,反哺老无所依,并且和值得信任的人类一起开发。在开发过程中,也结合之前的知识写了一些很不错的小工具,在以后都可以广泛地应用于团队批量作业和用户客制化。

能够最大程度地参与游戏开发真的是非常开心的事。也算是终于和自己临时和解,搁置一些烦恼和怨恨,真的用快乐创造快乐。

阶段性反思

最近准备毕业展一直没有开发,只是写了一些游戏设计。进行一下阶段性反思,通过描述设计游戏的习惯讨论我游戏设计过程中未意识到的问题。

在游戏设计中,我对于游戏构成元素的重视程度如下:

文化>美术>玩法

这意味着我设计的游戏总是以传播文化为第一要务,相对轻视玩法。

这是为什么呢?我认为游戏的玩法在现有硬件限制下已经被探索穷尽了,新生的玩法无非是原有玩法的拼插积木;组合得恰当,便可以成为新的爆点。事实上,任何构成元素都是这样的创作方式,只不过电子游戏的兴起相对较晚,众多开发者始终不愿承认玩法已经被穷尽。新兴的事物终将老去,陈旧的事物也会成为新兴事物的养分,然后进入复古阶段、重新开始循环。

解构也不是简单的抽离概念,比如“打篮球不就是几个人追着球跑?”“荣〇战魂不就是剪刀石头布?”……这其实将一切蕴含价值的东西变成了平庸的常见事物,就像我刚才所说的“新生的玩法无非是原有玩法的拼插积木”,这其实忽略了其中的粘合剂和包装——往往是能够称之为价值的东西。不能偷换概念,更不能将人的思考结果忽略。

把任何命题进行无限制解构势必走向虚无。既然我们是对抗虚无的创作者,那就应当将积木作为建构的原件而不是自己的枷锁——如何使用基础元素创造具有智慧的事物呢?这恰恰是创作者的责任所在。


回顾之前的设计,发现生存游戏占多数,题材尤其倾向末世单人生存,我不知道这是否合适,但是从某种程度上代表了我期待的世界状态:完全自由的野蛮生长——一种无政府主义的愿景。我非常希望能做后启示录题材游戏,希望有机会可以做。

至今为止我认为对“孤独感”的处理最好的游戏是《黑暗之魂2》,它的气氛渲染、长久构建和声音设计都使得这款并不被广泛认可的续作成为我心中的第一。即便是今天,仍然能记起从一线天森林到如蜜再到巨人陨落之森的震撼与感动。(虽然内容有点虎头蛇尾)

人是需要孤独的,需要一个整段的时间保持离群状态——保持沉默,保持思考,保持不思考。这是自我认识之要。


那么反思的意义在哪里?我认为,我在游戏制作早期过于专注于前两种的设计(早期指立项后),而疏忽了玩法的打磨和开发。由于游戏的制作流程限制,①应当更加快速地产生可被重复验证的可执行原型,在原型基础上进行迭代开发;②设计好资源类和导入流程,以此为基础进行资源填充。

问题在于,如果①②之间的时间跨度决定了多人协作时的效率,如果能够在短时间内提炼出原型,并在第二个迭代周期打通导入流程,那么在开发时势必可以提高出品速度。目前来说,以往项目的薄弱环节往往在此。

《U》:资源控制出了问题,不能控制完成资源任务的时限,不能控制多人协作时的美术风格,甚至不能控制像素的大小——作为最早期的游戏,确实吃了不少的苦。这个项目的停摆也让我意识到控制流程的必要性,并总结了一套针对新入组美术成员的工作文档。

《N》:可验证原型始终未能诞生,资源填充过多,这充分暴露了编程能力不足的短板和工作规划的误区;但由于早期制作资源非常充沛,所以有相当大的试错空间,并确实做出了不少的成绩,积累了相当多的经验,是我最爱的项目;

《R》:属于想法听起来很有趣,但是实际开发有些痛苦的项目,资源填充流程没有打通,与程序远程交流效率低,开发失去连续性,最终丧失制作动力;

《A》:可验证原型诞生后,证实了玩法并不好玩(或是不对胃口),结束项目止损;

《C》:过于关注资源填充,但是由于游戏类型限制,导致可验证的玩法没有验证的意义——横板过关本身是一种靠细节支撑的弱玩法游戏,它需要大量的细节打磨来支撑其完整性,实际上并不是一种一蹴而就的简单游戏。简单来说,这是非常吃力不讨好的游戏类型;

《H》:相对成功的开发经历,一定程度验证了该理论的正确性,但是由于玩法缺乏拓展性,也难以进行资源的流程化制作;

《E》:相对成功的开发经历,从原型制作、资源调用到系统优化,都有条不紊地遵守该理论,几乎没有浪费时间的开发过程,这需要改日进行更加细致的流程分析来丰富该理论。

冒出游戏想法是一件非常简单的事情,写几句话,拉几张表格,一个有趣的游戏就呼之欲出了,自行开发似乎也说得过去。但是怎样客观地验证游戏玩法、批量产出资源、实现整条流程的通畅运行,这绝非易事。打铁还需自身硬,面对规模更大的项目,其中产生的问题必然不仅是技术问题,这又该如何解决?


当然,以上的流程的分析过于理想化和简化了。游戏设计的流程并不是一条直线,而是一个动态的循环。游戏设计需要不断地测试、反馈、修改、优化,而不是一次性地完成原型、资源、系统等。游戏设计需要更多的实践和验证,而不是只依赖于理论和文档。

越是困难的时期就越需要勇气和热情。

星球兑换指南

MOEBIUS 画的

关注了许久《白宙:老无所依》的你一定对太空很感兴趣吧?来看看要怎样得到属于你自己的星球吧。

什么是星球兑换?

星球兑换是lunch为答谢开发期间提供大额发电支持的朋友们开放的限时限量功能(兑完即止)。为此,笔者开发了一个web应用《漫步白宙》以访问该功能。且该功能尚不支持移动端,请使用电脑访问。

星球是一种基于饭岛区块链的NFT/数字藏品。

《漫步白宙》是一个漫步白宙是一个在线星图浏览器。你可以在这里实时查询游戏《白宙:老无所依》中的星图、星区、阵营、星路等各种信息,这里的星球信息与游戏中实时同步。所有星球都已与知识库链接,允许你轻松地查询或撰写更多有关该星球的内容。

得到一颗星球意味着什么?

《白宙:老无所依》 中共有2098颗星球,本次兑换从中选取了100颗独一无二的星球供你选择。

游戏中所有的星球数据都储存在云上,当每个正版玩家打开游戏时,会自动联机同步星球的内容,实现异步联机的效果。即是说,所有玩家面对的都是同一个宇宙。

随着开发的进展,将开放更多的自定义功能,拥有星球的你除了书写自己的星球故事,你更有机会在这里定义属于自己的NPC剧情、进行星球改造、链接线上游戏!

由于 星球是一种NFT ,持有一颗星球意味着持有者拥有完整的自用权和商用权,上述权利用户在使用星球兑换卡进行兑换时获得。

我该如何兑换星球?

星球兑换卡

首先你需要一张星球兑换卡,取得方式如下:

  1. 爱发电中发电成为正义执行者大议会议员
  2. 白宙知识库注册账户;
  3. 饭岛注册账户,并在用户信息设定中绑定以上两个账户;
  4. 饭岛-我的资产中可以找到本物品;

持有本物品时,可以在《漫步白宙》中兑换一颗你的专属星球:

  1. 进入电脑版《漫步白宙》
  2. 登录你的whiteverse账户(注意不是饭岛)
  3. 点击屏幕右侧购物车按钮
  4. 查看星球兑换卡数量并选择你想要的星球
  5. 在弹出的星球面板中再次点击购物车按钮
  6. 换到了吗?请刷新一下吧。

星球将发放到饭岛账户中,星球信息也可通过“我的星球”按钮访问了。

没有抢到星球兑换卡/没有这么高发电量怎么办?

游戏在发售后,还会开放一定量的公共星球给大家开放(承包),如果你有一颗向往科幻的心,那么白宙一定不会让你失望。

你这肥猪……下周休刊!

自去年十一月初被小人背刺以来,一直处在非常不妙的精神状态中。除了做做网站,任何游戏开发都停止了。确实是没什么足够的力气和勇气继续生产快乐了。

不过作为即将二十七岁的成年人类,就算是再没力气,两三个月也应该足够恢复了。还是应当趁着年轻多为社会贡献价值才好。

决定认真起来好好再拼一把。但使愿无违。

漫画翻译工作流笔记

游戏开发遇到了一些难以解决的问题,具体最近会找机会说一下。既然不好办还是转换一下心情吧!于是最近闲暇之余翻译了一本漫画,基本复刻了去年的工作模式,在此总结一下心得。简单来说分为以下几个步骤:

  1. 图源和预处理
  2. 翻译
  3. 原文清理
  4. 内容重绘
  5. 文本框
  6. 文字粘贴
  7. 校对和导出

这几个步骤在漫画翻译中一般是分工为扫图、翻译、修图、嵌字、校对这几个职能。


图源和预处理

小时候也饱含热情地扫过图,不过太耗时且太累了,而且有时需要拆书。现在可以把书发到淘宝找人代扫。大部分的图源还是来源于网络,这次翻译的图源就是不这么令人满意,不过因为我觉得其中几篇内容很对我胃口,遂硬着头皮上了。不过还是建议有条件的话多来点高清资源。

预处理往往是对图像进行校正,比较泛用的方法是使用ps插件topaz,不过我更倾向于自己写一个命令自行处理。这个网上教程很多,就不加赘述了。

对于比较差劲的图源,有条件可以尝试一下现在逐渐兴起的深度学习修复技术。面对低分辨率但是没怎么丢失图像内容的图片时,效果还是比较不错的。在《超传脑》的打包整理工作时就试用了本技术,效果比较满意(当然这本书由集英社出版,尺度非常克制。完全可以从网上买到了)。

关于psd的预处理:由于大部分工作都是在ps上进行,因此所有的图都应当保存为psd格式的副本,在此应当使用批处理,对图片进行批量的psd转换。查了一下网上并没有什么图片批量转换为psd的在线工具或教程。那我来吧。

  1. 在漫画根目录用ps打开随便一张图片例如021.jpg
  2. 打开动作(Alt+F9),新建一个动作”psd”进行录制
  3. 将图片另存为psd,不改目录、不改名称,仅改格式。
  4. 关闭图片结束录制

点击文件→自动→批处理,选择刚才的创建的动作,选择源文件夹,选择目标 ,点击确定。

大概调成这个状态

在整理文件顺序后,这些psd就可以在后续修图中起到效率强化的作用了。

翻译

我个人的做法是一个对话框一行,漫画分页时进行区分。

小技巧:往往两个屏幕比较好用,漫画放在竖屏,文本放在横屏,在翻译时不需要进行缩放,可以始终保持双手在键盘上。

原文清理

我在ps中完成该流程。首先打开多幅(看自己内存大小)预处理完成的psd文件。

  1. 点击选择工具,切换至添加至选区(这样可以省去按shift复选的疲劳)
  2. 使用选择工具将对话框的所有内容框选
  3. 新建图层
  4. 编辑→填充→填充白色
  5. 保存&关闭

该流程的3-4-5可以使用动作(Alt+F9)录制,并绑定快捷键以大幅提升效率。

内容重绘

遇到不可以用白色取代的文字(拟声词和漫画内容如物品商店招牌海报等)时,标记下来并在上一步完成后逐个替换。上一步的好处就是增加了一层原文遮盖图层,因此可以在该图层上进行重绘。

重绘一般情况下需要用到数位板,不过这并不是一个非常简单的工作,大部分情况下也可以通过加*以注释的方式在内容外标出。不是完美主义者或不需要太彻底的本地化时就不必进行该工作。

在ps中重绘推荐使用画笔工具(软边圆画笔)、仿制图章和污点修复画笔工具。

文本框

一般来说比较讲究的作者会使用不止一种字体:标题、旁白、对话、拟声词、手写、场景内字体。为了保证统一和最大程度还原原作者文本风味,应当对文本进行严格的格式化管理。

我的建议是单独建立一个psd文件用于放置文本框设计标准,在打开时批量放置。

放置时调整好位置,尽量在本环节让下一步能够减少调整文本框大小和格式的时间。

小技巧:不可避免地会出现 ?!、《》、“”、34、UFO 这样的内容,在竖排漫画中,会导致格式混乱,因此建议也采用竖排的排版模式。方法是选中目标文本后,字符→右上角菜单→直排内横排 以达到需要的效果。

在这儿藏着呢

要注意的是,?!这样的密集内容最好使用半角符号,否则会比较影响画面。关于《》和“”,在竖排文字中可以用『』「」来替换(统一在翻译文档中替换),这样的效果较为美观,也符合竖排文字格式。

文字粘贴

嵌字会占去整项翻译工作的1/5时间,和翻译工作不同,嵌字需要在两个应用之间来回操作,因此应当让手离开键盘以解放小拇指。有条件可以使用带宏按键的鼠标,分配三个按键:Ctrl+C, Ctrl+V, Esc——用来退出ps中的文本框编辑模式,根据使用频率来说,和前两项一样有用。

我个人使用了带有六个额外按键的罗技G604进行日常工作,除上述三个外,还绑定了回车、Delete和→。最后一个适合单手看电影。

校对

啊?写错了?mingomingo~ 导出按照之前的批处理方式再做一遍就是了,非常简单。


总之就是这么个过程。下次再翻译的时候就不会忘记了。

另外,关于漫画翻译我也寻找了一些深度学习方面的资料,我自己试了一下,效果并不是很理想,弄下来效率和精致程度还不如整理下来的这个流程高。

另一方面,我也注意到photoshop是提供了psd处理的api的,即是说,可以在这个基础上进行改善,把图像预处理、原文清理、文本框放置、粗翻译的问题解决。按这样来说py+ps是可行的。

jtl1207/comic-translation: 基于深度学习的漫画翻译辅助工具,包含翻译、朗读、图像去字、自动嵌字功能。 目的是帮助非专业汉化人员完成更简单,快速的翻译任务。 (github.com)

kha-white/manga-ocr: Optical character recognition for Japanese text, with the main focus being Japanese manga (github.com)

有什么可以优化的地方,或者过时的地方,欢迎评论指正噢!