他一年开发19款!款款口碑爆棚-程序员宅基地

技术标签: 算法  python  编程语言  人工智能  大数据  

前言

转眼一年又到了最后的十几天了,这一年发生了很多事情,其中很重要的一件事,就是从去年年底开始,在业余时间编写上架各种 Creator 插件。

10d0f97ef97777fb9dbbca1d577a2eb7.png

借着这个特殊的时间节点,正好来回顾下,并把文中介绍的 19 个插件,一人一个,赠送给随机挑选的 19 个留言回复的朋友,作为小福利 (点击文末阅读原文,论坛留言参与)。

同时提醒一下,Cocos官方旗舰店双12半价活动,今天晚上12点结束!

历程

从 cocos2dx 时代开始,自己就在业余时间开发过几款游戏,上架了各种商店。

但是就个人而言,比起游戏开发,还是更喜欢做一些应用型软件的开发,或是针对某些技术难点,编写演示程序,再发展到把演示程序完善成完整的解决方案。

曾经会经常在论坛或是博客分享一些自己做的演示程序或是工具,但是因为官方一直没有一个比较好的平台,分享的项目有时候自己也会忘记,更别说是继续更新维护。

对于 Creator 的 CocosStore 从开始时,就有过关注,但是不可否认,在 v1.x 时期,商店还仅仅是个摆设,不光开发文档极度匮乏,商店的运营模式也是一路的坑 :rofl:

到了 v.2.x 中期,引擎方开始从多方面完善 CocosStore,如文档,后台,上架流程,等等。也正因为如此,越来越多的开发者开始进入 CocosStore ,提交自己的开发成果。

个人认为这是一个非常好的平台。

  1. 比起过去,各种资源程序,散落在论坛或是个人博客的角落。总有想要找某些资源的时候,只记得在哪儿看过,却就是记不起来的经历。现在有了 CocosStore 这样一个平台,可以更好的将资源进行整合。方便有需要人,快速的找到需要的资源

  2. CocosStore 的出现也对资源的规范性做出了一定程度的统一

  3. 开发者可以更好的管理自己的项目

  4. 开发者通过发布收费项目,可以给自己更多的优化完善项目的动力,从而吸引更多的用户,形成良性循环

  5. 制作一款功能相对完整的游戏,上架,销售是一个相对漫长复杂的过程,但是开发一款功能点单一但有针对性,却是比较快的一件事情。开发者借助 CocosStore ,可以经历一个项目完整的开发到销售推广的过程,这是一个很有意义的经历

项目总结

这一年上架了不少插件项目,虽然大多 功能单一 且 演示程序居多 ( 非标准意义上的插件 ),但是所有的项目都有明确的目标,解决对应的技术问题,并且在实用性上进行了深入的设计和实现。

下面是对这些项目的一个回顾,也是为了今后还能够做出更多更优秀的插件而做的总结。

01. SSRFBO / 渲染到纹理 Shader 助手

这是开发上架的第一款插件,最初是想要寻找 Creator 中截图相关的实现方式,查找资料后发现,论坛虽然有不少的相关解决方案,但总有着各种不足。

虽然原理很简单,使用 cc.RenderTexture 来实现,但是实际的使用对于新手而言确实就不那么友好了。

于是就花了一点时间,研究 cc.RenderTexture 各种使用方式,从原本只是 截图 这一目标,发展到了一款具备各种不同的 纹理抓取 方式的扩展插件。

论坛讨论帖:

https://forum.cocos.org/t/topic/99659

同时插件项目中也附带了大量的 FBO 功能实际使用场景。

02. SSRSVG / SVG 矢量图解析库
f0c98392432626a1139cb32979955ebf.png

第二款插件,是 cocos2dx 时期就开始研究的,SVG 矢量图解析库。

论坛讨论帖:

https://forum.cocos.org/t/topic/100568

通过完全用 Creator 实现的解析算法以及渲染方式,实现了在网页端和原生端具有相同表现,统一接口的 SVG 解析,渲染组件。

03. SSRSVGWriter / SVG 矢量图汉字书写库

f5dc225b0cb3027f4cc965083f2470ab.png

第三款插件,是由 SVG 矢量图解析组件衍生而来。

主要是专注于 SVG 在汉字书写方面的应用。配合一些现有的汉字笔顺数据文件,实现在 Creator 上简单的汉字书写功能。

论坛讨论帖:

https://forum.cocos.org/t/topic/101362

04. SSRShaderEditor / Shader 可视化编辑器

2ffbbe7debf49c61873d3619aed7bebc.png

同样是从 cocos2dx 就一直开始业余时间开发,最终借助 Creator 这个平台,实现了项目的产品化。

完全可视化的 Shader 制作编辑器,同时具有众多的功能亮点。

论坛讨论帖:

https://forum.cocos.org/t/ssrshaderfx/60295 https://forum.cocos.org/t/topic/103617

05. SSRLoS / 2d 视野-光照-阴影解决方案

ef4ea9d40585878aa709ba2c86a1b987.png

继续是从  cocos2dx 就一直开始研发,花费了大量的时间调试,优化,最终形成的 2d 环境下的光照,视野计算的完整解决方案。

论坛讨论帖:

https://forum.cocos.org/t/los/98673

06. SSRFogOfWar / 可定制战雾组件

6dbe8f879d9e4703e69e96a491720979.png

这是一款基于网格的,可定制战雾组件。能够帮助开发者快速的创建各种不同风格的战雾效果。此外,还包括了一个简单的边缘羽化战雾的实现方案。

07. SSRPluginAdaptor / Plugin Adaptor 插件转接器

c40c40846c70b4e61f2b4af0264ebd02.pngCreator 插件开发,本该使用 html + css + js / ts + vue + electron 这样的主流前端模式来进行。

但是作者本身对这些前端技术相当苦手,对于用 html + css 制作界面布局相当的不擅长。

因此就有了这款插件,将用 Creator 开发的游戏或是应用,直接转换为可以在 Creator 上运行的插件,前面的 Shader 编辑器 就是用这样的技术实现的。

论坛讨论帖:

https://forum.cocos.org/t/6-6-cocos2dx-creator-0/98245 https://forum.cocos.org/t/6-6-cocos2dx-creator-1/98268 https://forum.cocos.org/t/6-6-cocos2dx-creator-2/98279 https://forum.cocos.org/t/6-6-cocos2dx-creator-3/98326 https://forum.cocos.org/t/6-6-cocos2dx-creator-4/98327 https://forum.cocos.org/t/6-6-creator-creator-5/98394 https://forum.cocos.org/t/topic/101756 https://forum.cocos.org/t/topic/120311

08. SSRShaderTutorial / ShaderEditor 配套教程演示

29336c8e36260c5ae473c976762113ed.png

本演示程序是配合作者在公众号上连载过的 Shader 编辑器 系列文章的演示程序,对于没有购买过 Shader 编辑器 的朋友,也可以配合文章和演示程序,学习一些 Creator 的 Shader 编程基础。

论坛讨论帖:

https://forum.cocos.org/t/topic/107351 https://forum.cocos.org/t/topic/107726 https://forum.cocos.org/t/topic/107727

09. SSRDnD / 文件拖放组件

90ae840d5113b2f1ddcebb005a78c0ba.png

本插件是网页端,实现文件拖放的组件。同时包含了将拖放的数据,转换为 Creator 中对应对象的解决方案,如图片,骨骼动画的转换方式。

10. SSRShaderGallery / Shader 在线特效库

0581386c9e884cce880ffd087e87c52f.png

本插件是从 ShaderEditor ,响应用户的建议,对于并不需要,或是没有能力进行 Shader 实际创作的朋友,Shader 编辑器 的功能国语繁琐。而 ShaderGalelry 则是专注于 挑选,调试,使用 自己所看上的特效,所见即所得,并且支持一键将特效导出至 Creator 中进行直接的使用。

论坛讨论帖:

https://forum.cocos.org/t/topic/117953

11. SSRDynamicMaterial / 动态生成材质解决方案

d8a1a460d45c4b8d847ff532f6c5e77d.png

本演示程序,是 ShaderEditor 中的核心技术难点之一,通过将一些 glsl 字符串,动态的转换为符合 Creator 规范的材质文件 Material ,进而实现 Shader 的可视化编辑功能。

12. SSRBluePrintStarterKit / 可视化编程-蓝图框架模板

45f7d7921323c39447ef67ee18e40107.png

同样是 ShaderEditor 的核心技术之一,仿虚幻引擎蓝图风格的可视化编程框架模板,所有技术点全部使用 Creator 自带基础模块实现。

13. SSRPostProcessingFX / 2d 屏幕后期特效

df8916c3a4512447725d36890e4f548c.png

回归原点的插件,相对于 FBO 插件各式各样的 纹理抓取 特效和使用方式,本插件只专注于 屏幕后期特效 的实现,去除了各种龙鱼的属性和接口并对性能做了一定程度的优化,同时还内置了数量众多的,开箱即用的屏幕特效。

14. SSRDeviceMotion / 移动设备体感遥控
f24241c38cdb278c28056554a20e93e7.png 基于  Creator v3.x 的一款移动设备体感遥控演示程序。演示了从  移动设备端 / iPhone 发送体感数据到  服务端 / python 再由服务端将数据发送至  网页端,实现网页中模型和  移动设备 的体感同步。
15. SSRGridCCLContour / 连通区域轮廓提取算法
1754a329686c85cbad15b1a6faca111a.png

一个算法演示程序,它包含两大算法工具:

  1. 基于 Grid / 网格 的 ( 或是 TiledMap / 瓦片地图) 的 connected-component-labeling / 连通区域 算法

  2. 基于 Grid / 网格 的 ( 或是 TiledMap / 瓦片地图) 的 contour-extractor / 轮廓提取 算法

曾在用 cocos2dx 开发的 光照地下城演示程序 中,使用该算法,动态生成光照区域 (在演示程序制作期间,对算法进行了大量的调试和优化)。

16. SSRWorkCollection / 插件演示程序工作集
209e52d3aeac8e014e9e385c528664ca.png 对自己所做的一些插件演示项目的整合介绍网页 ( 网页的布局参考了  Unity Asset Store 的风格 )。

使用 CocosCreator 同样可以制作一些简单的 网页应用,对于不熟悉 htmlcss 等前端技术的朋友,也是一个不错的选择。

17. SSRScreenSplitFX / 分屏特效

3d5bea159212fcd26fbf7d5cd11b21bd.png

通过使用 Creator 提供的最基础的组件,实现非常有趣的分屏特效演示效果。配合展示 Shader 特效,效果还是非常好的。

18. SSRShaderToyConverter / ShaderToy 特效一键转换
c4fe9c094f0ddc99769103b81d174f79.png

顾名思义,将 ShaderToy 上的特效,一键转换成标准的 Creator 特效材质文件。

一些主要的特性:

  1. 一键转换 ShaderToy 的特效文件,输出 Creator 可以直接使用的 .effect + .mtl 文件

  2. 支持引擎版本 >= v2.4.0 及 >=v3.1.0

  3. 导出特效格式,支持基于 builtin-2d-sprite (>= v2.4.0) 及 builtin-sprite / builtin-unlit (>=v3.1.0)

  4. 支持自动修复 ShaderToy 特效中的 UV 计算,转换为 Creator 的形式

  5. 支持自动提取 ShaderToy 特效中的各种变量,转换为 Creator 中可以直接使用的导出属性

  6. 支持自动修复 ShaderToy 特效的透明度问题,使其可以配合各种不规则图片使用

  7. 支持自动去除 ShaderToy 特效的实体背景,使 程序纹理 类特效可以拥有 透明背景,从而更好的被应用到游戏中

  8. 支持自动修复 ShaderToy 特效的纹理翻转问题

19. SSRShaderPreview3D / Shader 3D 预览演示程序

acb8f524c7fae9efbc5a1de7a7f3e7e1.png

通过一种身临其境的方式,展示了 SSRShaderEditor 几乎所有特效在 Creator v3.x 的各种渲染组件上,能够达到的效果。

虽然是将 2D 方式编写的材质特效,霸王硬上弓式的强行套用在 3D 的对象上,但是也可以实现出一些有趣的效果。


展望

想要做的东西总是还有很多,除了将 ShaderEditor 继续完善,增加跟多的功能和特效,配合 Creator 全面进入 v3.x 时代,自己也很想抓住这个机会,从一个 2D 老手 3D 零基础的开发者的视角,一边学习,一遍产出各种有趣的模块工具。

最近做的一些尝试:

论坛讨论帖:

https://forum.cocos.org/t/topic/125390 https://forum.cocos.org/t/topic/125537 https://forum.cocos.org/t/topic/124594

虽然现在已经再也不能和过去一样,有充足的时间来研究各种技术问题,实现解决方案,并最后做到产品的程度。

但也正因为如此,如何更加准确的选取题材,更加高效的解决问题,更加系统的生成产物,成为了更加重要的事情。

到目前为止,上架的大部分项目都是过去时期的积累,以此为界,希望今后还能有机会做出更多,更优秀,更有趣的工具,插件,产品。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/6346289/article/details/121896525

智能推荐

UOJ #11. 【UTR #1】ydc的大树-程序员宅基地

文章浏览阅读92次。题目描述:ydc有一棵n个结点的黑白相间的大树,从1到n编号。这棵黑白树中有m个黑点,其它都是白点。对于一个黑点我们定义他的好朋友为离他最远的黑点。如果有多个黑点离它最远那么都是它的好朋友。两点间的距离定义为两点之间的最短路的长度。现在你要摧毁一个白点。摧毁后有一些黑点会不高兴。一个黑点不高兴当且仅当他不能到达任何一个在摧毁那个白点前的好朋友。请你最大化不高兴的黑点数。解题..._ydc的大树

阿里程序员常用的 15 款开发者工具~-程序员宅基地

文章浏览阅读88次。从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍:工具名称和简介使用场景使用教程获取方式一、Java 线上诊断工具 ArthasArthas是阿里巴巴 2018 年 9 月开

java实体类及类属性判空_判断实体类是否为空-程序员宅基地

文章浏览阅读1.1w次。敲代码时判空是必须的,这里分享一下java实体类及类属性判空体会。一、实体类判空:1.1实体类判空如果是读库返回实体类,我们直接判空即可,如下图1.2如果是先定义了类就不能这样判空了,因为new 对象时已经分配了资源,代码不执行if而是执行else,如下图二、类属性判空如果遇到上述1.2情况时,属性判空就比较麻烦了,特别是类属性是基本类型时,比如类的id属性是long类型时,这时可以用下面的代码(下面的代码是看网上提供的判断类是否都为null的判断方法)修改上述代码为下图,就可以根据实际需求_判断实体类是否为空

源码阅读笔记 - 2 std::vector (1)-程序员宅基地

文章浏览阅读362次。vector的源码真是太长了,今天用了一个下午和一个晚上看和注释了前面的一千行左右p.s.博客园的代码高亮真是太垃圾, 如果想要阅读带注释的源码,推荐粘贴到VS2015里,然后按ctrl+z取消自动格式化,用我格式化好的样子,并在最前面#include <vector>和using namespace std,这样就能带高亮的看我加了注释的代码了花了不短的时间弄明白了..._2std

利用python实现对连续特征的分箱操作(数据离散化)_连续性数据分箱方法-程序员宅基地

文章浏览阅读5.7k次。1. 数据分箱1.1 等区间分箱将连续变量的值进行获取,然后利用pandas的cut函数进行等区间分箱。如下代码,获取值A2_values ,并等数值区间分为6类为[0,1,2,3,4,5];(cut在操作时,统计了一维数组的最小、最大值,得到一个区间长度,因为需要划分6个区间)1.2 等频分箱将连续变量在[min,max]区间内,等数量地进行分箱。1.3 卡方分箱法(ChiMe..._连续性数据分箱方法

时序动作检测SSAD《Single Shot Temporal Action Detection》-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏29次。温馨提示:本文仅供自己参考(勿捧杀),如有理解错误,有时间再改!时序动作分类:识别一段视频中的动作类别时序动作检测:识别一段视频中的动作类别以及动作的开始和结束时间时空动作检测:识别一段视频中的动作类别、动作的开始和结束时间,以及动作发生的空间位置(如投篮人所在的bbox)时序动作检测可以被看做是时序版本的图像目标检测,因为两者都是需要检测目标的类别,并且都需要确定目标的准确边界位置。detect by classifying时序动作检测方法:先使..._时序动作检测

随便推点

Xcode控制台调试常用命令_xcode po命令-程序员宅基地

文章浏览阅读1.7k次。当遇到crash时,查看线程栈,只能看到栈帧的地址,使用imagelookup–address地址可以方便的定位到这个地址对应的代码行。命令可以打印出线程的堆栈信息,该信息比左侧的DebugNavigator看到的还要详细一些。在调试时,动态的修改变量的值,这在调试想要让应用执行异常路径(如执行某个else情况)很有用。命令类似,所以也是可以打印常量、变量,打印表达式返回的对象等。在控制台执行该命令,可以在不修改代码,不重新编译的情况下,修改界面上的视图。命令是打印所有线程的堆栈信息。......_xcode po命令

PPT的配色方法(师从于珞珈老师)_ppt配色教程-程序员宅基地

文章浏览阅读969次。PPT的配色方法PPT中色彩的用处层次更加的清晰,ppt中有小标题 大标题 正文等不同的部分,每一个部分的重点和级别程度也不一样,可以使用不同的颜色来对重点和非重点进行区分分割内容区域,通常一个PPT具有很多个部分,每个部分表达的内容可能不一样,比如开题PPT,就包括了研究背景和意义、研究现状、研究内容、工作进度安排和参考文献五个部分。分别对每个部分用不同颜色加以区分(这里求同存异,我个人是不太赞成老师这一观点的,因为我一直觉得一套PPT必须有一套的完整风格)强化主题联系,在专业的场合,_ppt配色教程

ajax 注册异步查询,Ajax异步查询用户是否存在-程序员宅基地

文章浏览阅读142次。码农公社 210.net.cn210是何含义?10月24日是程序员节,1024 =210、210既210之意。Ajax就将信息发到了服务器去检查该用户名是否已经被注册了,这样如果用户名已经存在,不用等用户将所有数据都提交就可以给出提示。采用这种方式大大改善了用户体验。下面是用JS获取用户Id然后将其发送给UserValidate.jsp页面,然后通过callback方法接收页面返回的消息并通..._.net查询用户信息ajax

catkin_make 与cmake-程序员宅基地

文章浏览阅读990次。http://blog.csdn.net/zyh821351004/article/details/503884291. catkin_make 与cmake的关系 程序在cmake编译的流程: cmake指令依据你的CMakeLists.txt 文件,生成makefiles文件,make再依据此makefiles文件编译链接生成可执行文件.catkin_make是将..._catkin_make -dcmake_build_type=

基本函数依赖和候选键_5G 通信候选波形的设计和评测解决方案-程序员宅基地

文章浏览阅读336次。利用仿真技术深入分析 5G 通信系统及其波形概述虽然第四代(4G)蜂窝系统——LTE 和 LTE-Advanced——还处在部署进程中,第五代(5G)系统的研发已经开始,5G 技术愿景是“随时随地万物接入”。5G 相比 4G 的一个显著优势是, 5G 能够提供超快(接近 10 Gbps)、连贯和优质的连通性,时延很低(不超过几毫秒),可以支持新的用例和构成物联网(IoT) 的数十亿个传感器。同样重..._数学5g通讯函数

linux 编译 内核模块 头文件,linux/module.h: No such file or directory 内核模块编译过程...-程序员宅基地

文章浏览阅读1.7k次。1、缺少Linux kernel头文件To install just the headers in Ubuntu:sudo apt-get install linux-headers-$(uname -r)To install the entire Linux kernel source in Ubuntu:sudo apt-get install linux-sourceNote that yo..._linux/init.h: no such file or directory