2019开工第一天,发现你的大天赋

今天是2019新年开工的第一天,想必大多数人已经进入工作状态,Shawn已经从老家回到了成都,虽然没有像大家一样正式上班,但在精神上也在努切换到工作模式。

我今天的工作仍然是继续买菜、做饭、洗碗、带娃…,不行!不行!不行!看着微信群里一个个的晒红包,我顿时向老婆咆哮道:“老板!新年开工,洗碗工也要发红包的哦!”

开工大吉

虽然以上工作艰巨,但是Shawn还是偷偷在Switch上玩了几把《暗黑破坏神Ⅲ》,我女儿看到我在玩,也强烈要求加入,一边玩一边说:

“这个游戏有什么好玩的嘛”,
“你们男生就喜欢玩这种打打杀杀的游戏”,
“就是感觉杀死很多怪物时很爽”,
“我觉得我好牛哦!”

我晕,这是要上瘾的节奏呀,赶快禁止,做点正事找本书来看!

image.png

这本书买了好两个月了,一直没怎么看,之前有人说我写的教程,断言说这肯定是策划写的,再三澄清没用好吧!那就尝试学点策划的东西。当感觉有点眼皮子打架时,一段文字把我惊醒:

天才的秘密是对工作的爱

简单提炼一下:
1. 小秘密:天赋有两种“小天赋”与“大天赋”;
2. 小天赋:先天擅长某种技能,并可轻松施展,但不一定享受其过程;
3. 大天赋:对工作的爱,发动自己一切有限的技能来完成任务,并能支持下去。

开卷有益,书中问道:

“游戏设计师的目标是什么?”
“游戏设计师的目标当然是设计游戏”

这个回答当然是不对的,书中讲道:

游戏设计师真正关注的是创造体验,必须尽可能领悟、理解,掌握人类体验的本质;游戏能够带来体验,但游戏并不是体验本身;玩家和游戏是真实存在的,但体验是想象中的。

为什么《暗黑破坏神Ⅲ》没几分钟就把一个从来没玩过的小朋友给带走了,正是因为它产生了一系列的爽快,自我感觉牛逼的体验!心中已经长草了,就一爽到底吧,还好假期还有几天,争取两天通关,封存Switch!让肉体与精神正真进入工作模式,在工作中挖掘出我们的大天赋。

2019开工第一天,你是怎么过的呢,欢迎讨论!

梦想的另一支翅膀—Creator插件开发

前言

前天两吐槽Cocos插件商店的问题,迅速得到了Cocos大佬们的重视,当天晚上就将插件款收到了,在此感谢帮助过我的朋友们,也感谢批评过我的人,也感谢2018年的自己。

关于Cocos插件开发,在Cocos插件商店上架了11款插件的插件小王子「许彦峰」则是比Shawn有着更深刻的见解,先看一下小王子为Cocos插件商店的杰出贡献,请看下图:

小王子的插件大军

以上插件中有5款是收费插件,看下图:

image.png

其它插件都是免费的,它们不仅可以帮助我们的日常开发工作,也是学习插件开发的极佳参考与案例。

小王子的心声

使用Cocos Creator也有2年的时间了,说一下目前的使用体验吧!因为对插件比较熟悉,所以会偏重一些插件方面。

  • 编辑器API特别缺乏,特别是Scene,Prefab相关API,所以能够看到基本上插件商店的都是修改移动查找文件、游戏外围的Excel转换,文件资源压缩等一些插件工具,这些都是一些不痛不痒的功能,真正渗透到编辑器、引擎的插件几乎找不到。
  • 编辑器扩展使用的Web开发技术栈,这个对于从Native开发过来的小伙伴不是太友好,因为Web知识点太碎太庞大,而且Web技术更新非常快,当时从长远考虑,选择Web技术去开发插件是一件正确的方向,目前来说,插件开发门槛还是比较高。
  • 想要开发一些高度定制化的功能,必须得学习Electron,这个学习成本这里不再赘述,心塞心累!
  • 插件收入分成 6.5 : 3.5 比例太高,本来开发者数量不算是很多,所以插件设置价格过高肯定卖不出去,太低了,平台抽成又拿走了一部分,实际到开发者手中的屈指可数,看着一年百十来块的收入,根本就没有提现的动力。
  • 插件没有代码保护机制,下载的插件基本算是源代码,就是是做了代码混淆,也完全可以自行修改为己所用,这既是好事,又是坏事。
  • 插件审核速度几乎为0,全靠开发者催官方人员。
  • 个人录制的一些插件视频,几乎没什么人关注,也从侧面反映,creator在插件这块,如同鸡肋,食之无味弃之可惜。个人感觉,creator无论是在游戏产品层面,还是在插件层面,都缺少一款代表作,就像是当年凭借《刀塔传奇》,creator迅速占领市场,引爆手机游戏开发领域。如今的吃鸡游戏,虚幻引擎可谓是又风光了一把。
  • 对于插件下载这块,作者自己的付费插件下载还需要付费,也不能评论回复,感觉有些醉醉的,看下面:
    image.png
  • 后台管理,收到的评论,看的是一脸懵逼,查找起来特别费劲
  • Cocos Creator在动画编辑器这块,一直被广大开发者诟病,这里打个广告,近期在GitHub上发现了一个名叫Creature的一款专注动画的软件,竟然对Cocos Creator做了支持,而且还对微信小游戏做了特地的适配工作。后来联系到软件作者了解到竟然这款软件在中国有稳定的使用客户,creature runtime for creator 就是为Cocos Creator量身打造的,在惊叹Cocos Creator影响力之余,不仅唏嘘Creator Animation为啥亲儿子这么不争气。
  • 我身边的开发者有些是从Unity转型过来的,Unity现在已经不仅仅应用到游戏领域,已经融入到了各个行业,和Cocos Creator相比,实力不言而喻。所以一边骂一边使用Cocos Creator,已经成为了日常开发工作,所以,开发习惯一个引擎一个风格,总结一下,都是编辑器给惯的!

结语

上面是小王子对插件开发和Cocos Creator的一些肺腑之声,新的一年祝Cocos Creator不断突破,越来越好,愿更多的开发者能在Cocos Creator构建的平台上长出梦想的翅膀,2019我们一起加油,一起飞翔!

遇见未知的自己,奎特尔成长之路!

前言

有幸在安晓辉老师的「程序视界」填写了一份副业赚钱的调报告,受到安老师邀请,分享自己在这一年多来的转型之路,在开始之前先做个自我简介:

张晓衡
   软件开发工程师,独立游戏开发者兼职讲师
成就事件:
   - 连续2月在Cocos论坛刷帖回答问题,被官方大神友情关注
   - 参与首批Cocos付费插件商店建设,提交pbkiller插件
   - 开通「奎特尔星球」微信公众号,1年4个月原创100+篇教程
   - 授邀成为Cocos兼职讲师,开启转型之路
   - 在GitChat开启首篇付费教程
   - 个人开发微信小游戏 《奎特尔数字大冒险》

1. 低谷

我是从2013年底开始进入的游戏开发行业,从业3年多,近乎996的工作节奏,从卡牌到SLG,经历的每一个项目都如石沉大海,渐渐地对自己失去了信心,内心充满焦虑和恐惧!

从2016年底在家休息了两个月,当时真不想再做游戏了,学习一些非技术类的知识。其中《樊登读书会》对我的影响非常大,在两个月时间内,听了近50本书,特别是《翻转课堂的可汗学院》、《翻转式学习》、《匠人精神》让我深受启发,自己从事Cocos2d-js游戏开发这么些年,还是有些积累,能否让自己的经验分享出去,于是开始了自己第一篇文章《探索cocosH5正确的开发姿势》,零散地录制了些视频。

2017年初,因为经济压力,不得不去工作,进入了一家棋牌游戏公司。整整半年时间,自己都是处于抑郁状态,做着自己不喜欢的事情,对未来没信心!这段时间《樊登读书会》一直陪伴着我,特别是一行禅师的《正念的奇迹》、《和繁重的工作一起修行》让我在抑郁状态下,坚持认真工作。业余时间,我在简书上写点Cocos游戏开发的文章,每当收到他人的点赞或打赏,还是会特别高兴,为了让自己能分泌更多的多巴胺,我将部分教程也分享到Cocos论坛上,偶尔有幸还能上Cocos官方公众号。

2017年8月封一次意外的邮件点燃了我沉沦的激情,当时Cocos Creator游戏引擎的制作人王楠竟然会给我发邮件!!!邀请我参与Cocos付费插件商店的建设,将我文章中关于protobufjs的经验编写成Cocos Creator插件,而且还以收费的方式首批入驻Cocos付费插件商店。

pbkiller

花了两周时间,我的pbkiller提交了第一个版本,过了两天陆续有人找到我说:“购买了你的插件不会使用”,做视频、写说明、当客户服忙活了好一阵子,第一笔非工资入收,虽然数量不多但心中还是非常激动的!直到现在pbkiller卖出了170多份,看下图:

pbkiller销售记录

2. 公众号之路

我下来仔细回想、分析,能编写插件卖钱是因为,自己写的分享教程能对人有帮助,它不仅可以提高自己技术能力、表达能力,更重要的是,它还能对周围的人产生一定的影响,同时给自己提升多巴胺分泌,也算是对自己抑郁症状的一种自我治疗!

那段时间,我非常更热衷写技术教程,开通了一个微信订阅号取名为「奎特尔星球」(奎特尔就是Creator的音译),一是将曾经在简书上的文章搬了上去,二是自己编写了一些提搞游戏开发效率的组件代码放到了github,还为它写了好几篇风格迥异文章(武侠、动漫、无厘头),三是一有空就到论坛刷帖回答问题、收集素材!

「奎特尔星球」关注量每天两个、三个的样子,极其缓慢的增长!偶尔收到有网友来公众号留言,一是来告知插件或github上的代码有bug,二是咨询CocosCreator开发中遇到的问题,这些我将他们的做为公众号持续输出的重要来源,并真诚、耐心对待,因此有时也会收到网友们的赞赏或红包。

赞赏

虽然数目微不足到,但收到赞赏或红包之时,心情还是特别愉悦,不是因为能收到钱,更多的是能帮助到他人同时得到肯定 。到目前为止,现在公众号终于突破1000人,到今天已经有1030了!

公众号突破1000人关注

由于公众号的持续输出,也结识了一些朋友,也有人在默默的关注。为了能坚持下去,还得不断提升自己,我又开始迷恋上了《逻辑思维》和《得到》,购买了《硅谷来信》、《武志红的心理学课》、《超级个体》等一些课程,每天上下班的路上、晚上睡觉之时,就是我的得到时间,让我的思维方式一点一滴发生着微秒变化。

3. 道路崎岖

2017年12月31日,正好是元旦放假,女儿感冒生病主院,我折腾了两天,也倒下了,当时高烧40度(十年没感冒发烧过了),因为医院人满为患,连住院的资格者没有。老婆在医院照顾女儿,我高烧不退在家躺了4天,烧的全身发软有气无力,也吃不下东西。

在此时微信小游戏横空出世,我在元旦之夜,在医院时刚推了一篇小游戏的公众号文章,第二天社区又遇到一个问题:“protobuf不能在微信小游戏中使用”,当然我的pbkiller插件也不能幸免。

高烧的前一天我独自己在家,完全是个人生活都不能自理,我给父亲打电话,父亲第二天就过来照顾我,下午稍微有点力气,用了两天时间,我把小游戏protobufjs问题搞定,更新插件,在公众号上推送解决方案。

在家休息了4天,虽然烧已退,但人还是没什么力气,思维也变得迟钝,写公众号、泡论坛也渐渐少了,2018年上半年,似乎又进入了周期性循环,整个人又陷入一段抑郁期,公众号停止更新了103天。

唯独《得到》还在天天听,此时也关注安晓辉老师的「程序视界」有一段时间,也在幻想能做自己喜欢的事情,同时能养活自己。在2018年6月,在网上接到一个儿童教育公司的外包Demo任务,我当时不仅把甲方公司的任务搞定,而且还帮助培训他们的美术人员使用Cocos Creator游戏引擎,在我提供的脚本、开发环境之下可以独立创作内容,这为我打开了新的思路,我不仅可以分享经验给程序员,也可以帮助到美术、策划人员。

我狠下心辞去了工作,找儿童教育公司谈合作,以技术顾问的方式帮助他们将传统PPT开发成H5游戏的方式,签了一个半月的兼职合同。同时公众号又开始复活,推送的文章短小精干,不在追求高深的东西,图片用的也更多,定位Cocos Creator的初学者和美术、策划人员。

从此开始,我就踏入了自由职业的路子,在网络上帮助更多的人,也在线下去一些小公司帮助解决一些问题,但在经济上没有任何收益。由于之前写公众号的原因,有朋友将我推荐给一位掘金主编,他们策划了一个小册题目《使用Cocos Creator开发微信小游戏》,我当时也答应了下来,同时在策划自己的一个小游戏,计划是将游戏做成微信小游戏,以此为案例做成一个有体系的视频教程。

4. 讲师之路

现在有了自己的时间,每天就是写文章、写代码,还有每周两天时间去儿童教育公司,主要内容是:搭建内部开发环境、部署自动化构建,培训美术人员使用git、jenkins,以及Cocos Creator更多内容等,尽可能帮助他们能自己创作课件内容,我只是提供辅助。

我将新的开发协作方式整理推送到公众号,用了一个多月时间公众号从300+上升到600+,不过掘金小册被黄了,掘金要求教程内容一年能不能在其它平台上发布,我也没按时交稿。但是这段时间我也与更多的开发者沟通、交流,为我带来新的机会,有公司愿意聘请我做Cocos Creator讲师,兼职为他们的企业客户做培训。

我二话没说就答应了,对方公司提供了培训内容需求,第一次给了我四个题目,让我制作成PPT,完成后还需要他们的技术主管审核。激情再次被点燃,我每天在家花费近5~6个小时制作PPT,用了半个月时间,之间来回修改了两个版本还是不能得到公司的满意。

2018年9月,快临近培训任务时间,提前了三天去公司,第一天小范围试讲了一个上午,下午自己修改调整,晚上公司技术部主管陪我一起修改第一篇PPT,帮我指出问题,整理结构,将原来四篇PPT整合成两篇,我们一直忙到晚上10点。人好像是打了兴奋剂,内心也很忐忑,回到酒店继续修改课件到临晨1点左右,早上6点不到就醒了,翻身起床干活。就这样上午修改课件,下午试讲4~5个小时,中途大家给我提意见、找毛病,晚上回去整理调整,连续4天每天睡觉不足5个小时,但人还是很亢奋,最后终于以波澜不惊状态完成了两场培训,每次3个小时左右。

之后的三个多月中,断断续续接到了公司三次培训任务,我在空闲时间继续更新公众号、接点小外包、帮助朋友公司搭框架及CocosCreator的入指导,这段时间算是有了基本的收保障,但是极其不稳定,还好家人理解,看我虽然没正经上班,但是看我平时工作比上班还忙,暂时还能维持生存,虽然心中有抱怨,没有给我太大的压力,在此感动不已。

5. 被动收入

2018年11月底,年前的最后一次培训任务,此后的时间我将没有持续的收入,心中还感觉有些慌张。平时一直在读安晓辉老师的文章,安老师的一篇知乎live标题打动了我《如何构建被动收,赢得自由生活》,通过这次live的学习,以及安老师提供的建议,我下来开始筹备被动收入计划。

首先我注册了creator-star.cn的域名,搭建了「奎特尔星球」博客网站,公众号、网站相互关联。

然后我又在GitChat开了一场题目为《集合类游戏模块化与热更新实践 》,由于经验不足,又是自己的第一篇付费文章,不小心把题目写大了,写这篇文章整整用了10天的工作时间,终于按时交稿,这场Chat目前挣了近400块,也让更多人认识了我,为公众号带来了更多的关注量。

GitChat

一场GitChat毕竟是杯水车薪,网站在短期内也不会有什么收益,心又开始不安起来。2018年还剩下最后10天时间,我又重新拾起之前计划要做的小游戏《奎特尔数字大冒险》,联系上愿意低价帮助我的美术同学,为我的小游戏制作了一版游戏UI,曾经设计动画的同事提供我一个角色动画,就这样每天只睡5~6个小时,全身心投入到小游戏的开发,终于在2019年元旦后上线微信小游戏,下面是游戏视频演示连接:

《奎特尔数字大冒险》是一款数学小游戏,通过将怪兽身上的数字加起来,然后在答题板上手写数字,消灭来袭的怪兽,用以锻炼数学运算与工作记忆能力。

看下面的gif演示:
boss战

BOSS战,需要同时计算两道题,BOSS还会旋转干扰,考验瞬间记忆力,在小怪与BOSS之间暂存记忆、切换记忆。

dmx.gif

工作记忆是一种对信息进行暂时加工和贮存的容量有限的记忆系统,在许多复杂的认知活动中起重要作用。1974年,Baddeley和Hitch在模拟短时记忆障碍的实验基础上提出了工作记忆的三系统概念,用“工作记忆”(working memory,WM)替代原来的“短时记忆”(short-term memory, STM)概念。此后,工作记忆和短时记忆有了不同的意义和语境。

小游戏上线第四天就拿到了流量主权限(估计被系统扶持了),开通了复活激励视频广告,但游戏太过简陋又费脑子,直到前几天我才意识到《奎特尔数字大冒险》还并不能算是一个游戏,而是游戏化的脑力训练工具,因此活跃度非常低,上线20天广告收看下图:

小游戏广告收

调整好心态,目前自己的小游戏是凭着自己的感觉快速撸出来的,内容少、质量差是事实,接受就好,不过还有进步空间。更重要的是,在这段时间又结识到了不少的同行伙伴,有程序员、有美术、甚至还有公司的邀请,当然还有安晓辉老师,他们都有意向给我提供帮助或合作,这才是最为宝贵的收获。

在2018年是自己最为动荡的一年,9月的一篇公众号文章,我就立下志向:“助力个人和企业,让游戏(编程)成为教育的有力武器”

这一年起起落落,如何养得此心不动,认真做好当下的每一件事,王阳明说过:

举业不患妨功,唯患夺志”,夫谓之“夺志”,则已有“志”可夺;
倘若未有可夺之“志”,却又不可以不深思疑省而早图之。


欢迎关注「奎特尔星球」公众号,来我们一起成长!
奎特尔星球

奎特尔手写冒险日记

奎特尔数字大冒险

2018年1月4日,从想法到实现用了368天《奎特尔数字大冒险》终于上线微信小游戏!

不知道大家还记得在2018年1月1日,微信小游戏刚出来时,Shawn发过一篇文章《元旦快乐—小游戏!小游戏!小游戏!》当时还发了一个自己做的Demo,不知道是否还有人记还得,看下图:

image.png

1. 大家关心的问题

猜一猜,这两天收到最多的问题是什么?

手写数字识别怎么做的?

我想这是大多数程序员同学体验了《奎特尔数字大冒险》最为关注的问题,也引起不少群中的讨论!

数字大冒险中没有图像识别的技术,是用的轨迹近似匹配实现的。

记得很久以前玩过一个叫《刀剑封魔录》的游戏,就是使画“一”、“V”、“Z”等书写轨迹发大招,看下图:

数字轨迹模版

首先是将0~9的数字写一遍,将每个数字的轨迹坐标点保存下来,大概数据结构如下:

[
  {name: '1',  data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
  {name: '2',  data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
  {name: '3',  data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
  {name: '3',  data: [{x, y},{x, y},{x, y},{x, y},{x, y}]}
  ...
]

为了适应大多数人的书写方式,需要为每个数字多保存几个书写轨迹!看下面视频:
数字轨迹播放

视频地址:https://v.qq.com/x/page/i0823npmetu.html

我这里做了一个轨迹播放器,大家有兴趣可以看一下,按照这种近似的路径去写就容易被匹配上,里面还有更多sample示例。

轨迹匹配

在游戏中监听写字板节点的TouchStart、TouchMove事件绘制轨迹,同时保存轨迹坐标点,在TouchEnd时将收集到的坐标点数组与事先录入的模版数据挨个做对比,看与那个近似,将最接近的轨迹name值拿出来。

在这里4和5比较特殊,他们是由两笔写成,因此将4、5的第一笔也做了单独的轨迹模板,如果识别到写的是4或5的第一笔时,就等待用户输入第二笔。

Shawn目前还不能把代码直接拿出来,暂且只能分享大致原理,后面有时间我会再做更多这方面的分享,也欢迎大家讨论!

2. 冒险之旅

Shawn是从2018年7月开始独自踏上冒险之旅,一边四处打游击做点小外包和Creator的入门培训,一边写点公众号文章,想把数字大冒险游戏给做出来!想的是比较美好,但总是一拖再拖,拖到了12月才正式全身心投入!

手写识别在半年前就解决了,用它来做一个什么样的游戏呢?当时唯一的想法就是,一定是要意义的游戏,可以真实帮助到小朋友学习数学运算、锻炼思维记忆。

其中的意义就是来自于我的女儿,一个老爸想在女儿面显得很厉害!在她幼儿园的时候,我经常对女儿说:

“这个游戏不错,爸爸也可以给你做一个,还可以永远不会死掉”,
“这个游戏太没意思了,爸爸给你做一个更好玩的!”

但每一次熬更赶夜换来的无一都是鄙视的表情,太丑了!

但每一次熬更赶夜换来的无一都是鄙视的表情:“太丑了,全是方方块的!“。不过还好,我送女儿上学的路上,我们会不时讨论一下,怎么做她会接受!

游戏的创意也不是Shawn发明的,任天堂早在10前就有不少这类益智游戏了,Shawn也是任天堂的粉丝,从Wii到NDS、3DS、Switch一个没落下,如果大家有兴趣做小游戏,任天堂的益智游戏绝对是一个不错的老师!

怀揣着一颗萌动的心,一个朝夕相处鞭策你的用户,一个可以学习模仿的老师,开始独自踏出了第一步!

3. 冒险计划

任天堂的益智游戏,咋一眼看起来简单,但深入体验你会感受到作品的中无比的诚意。

《奎特尔数字大冒险》匆忙上线微信小游戏,明显也缺乏诚意,导致大家所关注的焦点是手写识别,而非游戏本身!游戏难度颇大,其实更适合大朋友,而非小朋友!说的是帮助小朋友锻炼思维记忆,却是惹的小朋友玩的冒火想打人!

静下心来,把自己当成一个小孩子,我能从《奎特尔数字大冒险》学习到什么呢?带着这种想法,我思考了好几天,整理了一份粗略的计划!

奎特尔数字大冒险计划

一年来的想法和思考始终没有记录下来,不能踏实去执行,这次将所有的想法写下来,一条一条地死磕下去!

显然上面的工作量是非常巨大的,Shawn是一个程序员,同时扮演一个伪策划,好几次使用PhotoShop切点图,想把电脑给炸了!

有人问:“狼居然会天上飞,你想象力还真丰富!”
我回答说:“不是猪也会飞的吗?我这是没资源嘛,先做出来再说吧!”

没有美术就像有枪没子弹、有锅没米,而且今年冬天也特别冷,储藏的食物也快用尽,先把东西做出来再说,先让狼飞一会儿吧!终于在1月4号把第一颗子打出去了!

Shawn在此感谢帮助过我的朋友们,成都村雨科技的「大白」、「onescc」近乎无尝给我提供部分美术资源;感谢「丁丁猫」的骨骼动画,以及对游戏的建议,让我好好看下女儿的课本给了我不少启发;感谢「jacklling」在微信小游戏程序开发中提供的帮助!也感谢帮助我分享分享、传播的同学们!

4. 帮助更多的人

对程序员来说,美术与推广是最难的,今天算是为自己写了一篇广告!
如果你也有个人开发的小游戏与有趣的故事,欢迎来奎特尔星球,免费为大家提供推荐,帮助他人就是帮助自己,愿我们一起成长!


欢迎关注「奎特尔星球」公众号,欢迎大家投稿,来我们一起成长!

奎特尔星球公众号