站在巨具的肩膀上---使用现有工具搭建自己的工作流

生词解释



巨具:就是指高端,大器,上档次的工具

工作流:workflow的汉化



背后的故事

先前写了一篇文章,叫游戏引擎不仅是代码,更多的是完善的工具  而我们日常开发中所指的工作流(workflow)就是指 完善的工具集+使用这套工具集的开发流程,在前一篇文章中,我主要提到了Unity3D这种通过组件式解耦编辑器与项目需求,以及通过Shell(为了描述简单,我们在此姑且把Python也归类到Shell中)来免除一些重复性的劳动,通过Shell与命令行工具(许多工具都提供了command line模式,包括我们熟知的Unity3D),可以将强大的工具,利用得更为强大。

而今天,我想要说的,却不是Shell,Shell的使用在项目中是在所难免的。今天想要介绍的,是一种借助现存工具的输出来满足自己的需求,从而避免投入编辑器的开发。说到这里,可能大家第一时间想到的,就是为一些现存的编辑器开发插件。 这当然是首当其冲的策略,通过开发插件,我们就可以满足自己的需求,同时也不需要从头去开发编辑器。 但并非所有的工具,都支持插件开发。 所以,对工具输出的格式进行二次加工的方法,在许多时候,也能派上大用场。



首先要说的是这个yWorks提供的 yED Graph Editor 它提供了一套绘制流程图的操作界面,可以十分方便地画出流程图。 试想,如果我们要为项目中开发一个描述状态机的东西,然后让策划根据自己的需求进行连线,最终转化为程序能够识别的指令。 这样在逻辑开发中,策划们就可以在程序提供的指令和条件集下,进行逻辑部分的调整,且十分直观。 (PS:yED只是一个引子,如果你要使用其它一些流程图或者UML工具,也是可以的,在游戏编程精粹上有提到使用UML构建流程图工具的方法)

很遗憾的是,yED并未提供插件扩展能力,这使得我们的希望受阻了,几乎破灭了。可是,通过对yED保存的数据分析,我们可以很容易地找到规则,因此,我们可以写一套解释这个输出的工具,从而顺利地转化为自己的需求。

其实做到上一步,已经很满足需求了,只是,基于XML的解析可能会在数据加载时占用大量的CPU时间,如果你真的是觉得无法接受的话,那python大神就可以再次出场了,我们写一个简单的脚本工具,将数据转化为更直观,易用的数据即可。



提到Flash,可能大家都不莫生吧。在闪客动画领域,Flash MX 2004版开始,就已经争霸世界了。 flash player90%+的用户渗透率,以至于后来页游的兴起,也以它作为主要平台发展。但FLASH并不仅仅是可以作为页游和动画的工具。如果你愿意,它可以作为你强大的2D界面编辑器,2D动画编辑器。 因为FLASH CS支持插件开发,同时gameswf开源库也为C++中解释swf成为了可能。 基于gameswf的优秀框架是很多的,如果你不愿意去踩gameswf的坑的话。

在这里,我不推荐大家使用gameswf这样的爆力破解方式对swf进行解析。取而代之的是,我们使用另一种方式,即配置输出。 FLASH CS仅作为一个编辑器工具,我们为其开发插件,使之可以提供我们的特殊编辑需求,同时能够输出我们想要的数据。

界面(GUI):

FLASH在动画和层次编辑方面是很优秀,我们可以通过对FLASH CS进行扩展,写出一套UI控件,这套UI控件,最终可以序列化到配置文件中。 而不管我们采用何种引擎,是cocos2dx也好,是unity3d也好,还是自己的引擎也好,只要我们引擎中,能够解析这套配置文件,并且能够提供一个运行时来驱动这套数据。 那我们就成功了。  在早期的游戏引擎开发中,许多公司都自己DIY了一套UI库, 并且提供了一个比较破的UI编辑器。 而实际上,通过现成的FLASH(或者不是FLASH,但目前我没有发现更好的),对其进行扩展,不仅工具能够对美术十分友好,同时免除了工具的维护。 而仅仅需要维护少量的插件代码即可。

如果想要一个参考,那这个针对cocos2dx的FLASH UI编辑器可能带给你灵感,它是完全开源的  http://blog.csdn.net/ab342854406/article/details/37669321

动画

FLASH在动画领域可以说是首屈一指,如果是2D特效,使用它的关键帧加矢量动画功能,可以用很少的资源做出非常漂亮的效果。 在这方面,dragon bones可以说是将这个功能发展得很好。 dragon bones目前已经支持多种语言和引擎的运行时。

地址在这里:http://dragonbones.effecthub.com/



提到Unity3D,可能许多同胞们会赞叹它的IDE是如何的NB,不仅可以快速构建原型,还能够很容易地扩展它的编辑器,添加菜单,按钮,面板都不用说了,更能很容易地改写输出……

等等……。有没有发现‘……很容易地改写输出……’这句话。 没错,正是因为这个特性,使得UNITY3D不仅可以作为一个引擎来开发你的游戏,它可能作为一个通用的编辑器,与你的游戏引擎结合,从而得到你想要的数据。

多的就不必说了,我也是偶然听群中朋友提起,他们是使用UNITY3D来当编辑器,但他们引擎是cocos2dx. 很多人笑他们奇葩。 但大笑过后,有没有长见识呢?

www.unity3d.com



就这样结束吧

能够作为通用工具,并且在此之上构建出自己的工作流的工具彼彼皆是。 yED,Flash,Unity只是三个代表,一个是开源的,一个是不开源但能开发插件的,一个是十分流行且强大的,强大到你觉得用它的工具就得用它的引擎的。

总之,因为这些工具都是久经考验,且有专门组织维护,在它们的基础上构建自己的工作流,既省心,又省时,且稳定……。

站在巨具的肩膀上---使用现有工具搭建自己的工作流

时间: 2024-10-18 13:33:43

站在巨具的肩膀上---使用现有工具搭建自己的工作流的相关文章

站在源码的肩膀上全解Scroller工作机制

站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05

android开发利器--站在巨人肩膀上前行

本文主要介绍有助于android开发的三方平台和网站. 一:开发阶段 1:SVN(一个开放源代码的版本控制系统) 团队开发没有服务器,代码管理就没那么方便了,推荐taocode阿里开源网站,方便团队开发,不用安装客户端,方便快捷. 2:服务器(一个管理资源并为用户提供服务的计算机) 团队开发初期,资金有限没服务器?阿里云免费使用6个月,新浪云也可助你一臂之力. 3:android论坛(在线答疑,资源共享,分享心得) 没有名师指路?EOE论坛追求提问没有0回复,解决问题好帮手;CSDN最大的中国I

站在巨人肩膀上——vb.net学习

jeecg v3.0入门视频 链接: http://pan.baidu.com/s/1bnrMfiJ密码: 8q0k MiniDao持久层 入门视频 链接: http://pan.baidu.com/s/1eQGc4W6 密码: stst JEECG-OnlineCoding<企业招聘系统> 视频 链接:http://pan.baidu.com/s/1sjHHVM9 密码: os7b JEECG公开课视频 链接: http://pan.baidu.com/s/1pJFeiiJ 密码: cr75

站在巨人的肩膀上,C++开源库大全

程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分. Standard Template Library:标准模板库 C POSIX library : POSIX系统的C标准库规范 ISO C++ Standards Committee :C++标准委员会 框架 C++通用框架和库

站在巨人的肩膀上学习Android开发

我们知道,一开始最好的学习方法是模仿,尤其是模仿巨人.那说到Android开发的模仿自然就是分析并研究主流程序的布局.实现方法,进而提升自己的技术. 第一招----逆向工程 要分析"巨人"们的软件,自然免不了逆向工程,即将APK程序转化为我们可以看的懂得源码.这个google官方已经帮我们做好了工具,apktool就是一款很好的逆向工具. 下载地址为:http://pan.baidu.com/s/1kTqRhaR 我们以分析微信为例来说明这个工具的使用: 你只需执行如下命令,即完成了反

站在巨人的肩膀上才能看得更加远[Amo]

本来只是路过,写详细一点.我看楼主浮躁得不得了.现在什么都不要做了,先去看几遍<不要做浮躁的嵌入式工程师>这篇文章,想清楚了,再动手吧.我做了个实例,不用ST的库来点LED,解答你的问题我的 KeilMDK 3.5我的STM32板子奋斗版是 ,IC 是 STM32F103VET6调试工具 JLINK V8LED 接在 PB5 ,高电平点亮既然楼主说一定懂C语言了,那么对于下面我的问题,不查百度,完全靠自己,懂多少?然后查了百度之后又能懂多少?(一)新建 keil 工程,IC选择 ST 公司的

站在巨人的肩膀上——人事项目数据导出word

最近在做人事项目中的,数据导出word,具体的说就是从web客户端页面获取信息,添加到信函模板中,再导出为word文档.总结一下,学会了两种方法,1.通过将word模板转换为html文件,输出word.2.利用第三方组件Aspose.Words操作word模板,输出word. 一.通过将word模板转换为html文件,输出word 1.制作word模板,在word文档中要添加内容的地方输入占位符. 2.把word模板另存为html文件. 文件-另存为-网页htm文件. 3前台代码 <asp:Bu

站在巨人的肩膀上,谈 app 的创新性

这段时间做了.看了.听了,也想了很多,我们的成功始终是站在巨人的肩膀上的,在学习了很多工业界大牛的经验之谈之后,我经过认真的思考,特别想整理这样一篇文章,希望与许多有梦想的 IT 小伙伴儿们共享.共勉!如果说的不对的地方,欢迎大家在下面留言讨论,虚心学习. 随着移动设备的普遍和相关技术的成熟发展,我们都希望自己可以开发一个好用的应用,不管是公益性的还是旨在运营推广的app,既然练手何不做的有声有色.如果你不是在资源丰富的平台下,而是自己组队开发一个app,并向体现自己的竞争力,能够脱颖而出,那么

小游戏“跳一跳”——站在巨人的肩膀上,用技术为自己助力

在更新最新版微信之后,聊天列表下拉会出现一个崭新的模块,其中就有新推出的"跳一跳"小游戏.而在我几经努力奋斗到266分的时候,已经有技术大牛占据1999的高地... 抱着试一试的心态和蠢蠢欲动的好奇心... 实现了程序助力玩游戏... 具体代码来自gitHub的python大牛... 感兴趣的同学可以和我一起站在巨人的肩膀上... 另外说一点, 如果以后还想玩"跳一跳"的话... 不建议你接着往下看... 因为当你有了捷径... 整个游戏瞬间变得索然无味... 如果