百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

创造2D游戏所使用的各种工具分享_2d创造类游戏

yuyutoo 2025-02-17 14:38 1 浏览 0 评论

当你刚进入游戏开发领域时,你总是很难决定该使用怎样的工具,语言和框架。你将面对各种各样的选择以及大量需要考虑的观点。而我和我的团队发现参考其它游戏公司的开发环境是非常有帮助的。

蹒跚而行

尽管拥有在其它领域10年以上的编程和设计经验,但是当开始开发游戏时我还是觉得自己就像个新手。我们的第一个项目《外星宠物》开始于2009年,并且在那时候只面向Android平台。Java是唯一适合初出茅庐的人所使用的语言,所以我们果断选择了它。为了创造一款2D游戏,我们并未使用OpenGL去开发游戏(这是错误的)。而因为Furdi广受欢迎,所以整个项目也因此受到广大关注。我们最终发现自己需要面对像性能和可移植性等问题。而如果我们能够从其他开发者身上吸取经验教训便有可能避免许多不必要的问题。

找到一个更好的方法

在完成《Furdiburb》并几乎快将游戏移植到iOS(使用playn)后,我们决定转向创造第二款游戏(《炼金时代》)。为了进一步扩展交叉平台开发并为未来的主机开发做准备,我们决定舍弃Java。

所以我们便开始进行各种探索。我花了将近1个月的时间去比较不同框架,工具和引擎,最终我和我的团队决定使用一种全新的开发方式,这也是我们到今天仍在使用的方式。我并不清楚为什么我们会有这样的选择。框架总是不断发生着变化,我们在一年前做出一个决定的原因可能在今天早已无效。而在之后的内容中我将简单地描述我们使用的方法以及为什么会使用这种方法。

编程

这是我们用于编写游戏程序的内容。这是我们做事的方法。结合各自不同的工具和框架是非常有效的。

框架

我们所选择的所有框架要么是开源的,要么是带有公开的代码。这对我们有很大的帮助,因为如此我们便可以根据需求做出适当的调整与紧急的修改。

Cocos2d-x—-我们的所有跨平台开发都是依赖于开放源Cocos2d-x框架。对于《炼金时代》,我们使用的是第二版。我们也将在之后的游戏中使用最新的第三版,即包含大量关于API和性能的完善。从整体看来Cocos2d-x 2D拥有突出的性能以及出色的文件编制功能。

Spine—-我们在动画制作中使用了Spine,所以我们添加了他们基于C语言的Cocos2d-x插件。

Box2D—-虽然我们还未使用Box2D发行过游戏,但是我们在下一款游戏《A Quiver of Crows》的开发中使用了这一工具。

SQLite—-Cocos2d-x提供给我们一个数据储存解决方法,但我们更倾向于使用SQLite,因为它能够帮助我们更好地阅读/编写。

语言

C++—-Cocos2d-x支持多种语言,但我们还是选择了C++,因为我们认为这是当下最友好的跨平台语言。

C—-有时候你可能会想整合一个开放源API。而有些开放源便是基于C语言进行编写。

Java—-我们仍然需要使用Java,但只是为了在Android平台上整合IAP,广告和针对于OS的功能。语言间的交流是通过JNI完成的。

Objective-C—-与Java一样,我们使用Objective-C去创造针对于iOS的功能。

脚本语言—-包含shell脚本语言和其它脚本语言。所有开发者都需要经常编写脚本,但我们却很少谈及它。这是相对简单的内容,但也是费时的内容,就像如果你和我一样因为很少使用而很难记住语法的话。我们是为了编译代码,自动化音频转化,自动化关卡创造和整合纹理而编写脚本。

开发环境

Xcode—-每个人都跟我们说Xcode很糟糕!所以我便决定尝试看看,但是我却必须承认,这已经成为现在的我最喜欢的开发环境。我们会使用Xcode进行跨平台开发以及面向苹果的编程工作。

Eclipse—-我们会在所有与Java和Android相关的开发中使用Eclipse,包括资源配置与调试。现在的Android主推Android Studio而不是Eclipse,但我们既没有时间也没有动力再去转向它了。

Visual Studio—-这同样也是个优秀的IDE。我们主要是在与微软相关的编程,调试和资源配置中使用它。

版本控制

即使你是只有一个人的团队,你也应该使用版本控制!每个人都会犯错,任何硬盘驱动器都有可能瘫痪。我们是一支拥有三个人的团队,所以从第一天开始我们便非常重视版本控制。虽然对此的解决方法并不多,但我还是想和你们分享我们使用的一些方法:

SVN—-我很喜欢SVN。它能做我需要它做的所有事(包括合并,同步,历史等等),唯一的缺陷便是它不具有较高的学习曲线。

Git—-在众多开放源框架中我们还是依赖于Git。我们会使用Git去保持实时更新,有时候还会在需要进行快速修改时用它去创造分支内容。

计算机

显然你需要使用计算机才能创造电子游戏!最初所有开发工作都是基于Linux,但是当我们开始面向iOS开发游戏时,Linux已经很难再同时应对两台或三台计算机(甚至是系统多重启动的机器)。所以我们便购买了几台iMacs并使用它们去开发游戏。幸运的是OSX中的命令行与Linux的一样,如此我们便不需要再去改变大量脚本。

图像艺术

Adobe Creative Suite—-这没有什么意外,我们的美术师使用最多的便是Illustrator和Photoshop。

Spine—-我真的极力推荐这个骨架动画工具!比起传统的逐帧动画,骨架动画能够帮助你节省更多磁盘空间。并且因为拥有像动画混合,角色蒙皮和可变形的网格等强大功能,它还能帮你节省下不少时间。

Texture Packer—-你可能会为了拥有更好的性能而想将图像打包到更大的纹理中。为此我们便选择了Texture Packer,我们还使用了他们的命令行功能去自动化打包过程。

bmGlyph—-如果你计划使用位图字体(而不是运行Truetype字体),你便需要位图字体生成器。我们选择的是OSX可兼容的bmGlyph,这对我们非常有效。

关卡编辑

以下是我们用于设计关卡和图像布局的工具。

没有编辑器!—-有时候我们不会使用任何编辑器!我们只是编写了代码。虽然这听起来很疯狂也很无理,但如果你的团队真的很小,那么放弃编写一个编辑器将能够帮助你们节省不少时间。

定制编辑器—-有时候我们会编写一个较笨拙的游戏内部编辑器去创造图像布局或设置关卡。对于笨拙,我指的是未优化,因为只有我们自己会使用这一编辑器。

R.U.B.E—-对于我们的下一款游戏,我们先是创造了一个游戏内部编辑器,然后偶然发现了R.U.B.E(游戏邦注:即Really Useful Box2D Editor,真的很有用的Box2D编辑器)。这一工具帮助我们节省了不少时间,但如果我们决定发布一个关卡编辑器的话,我们还是要创造自己的编辑器。

音乐和音频

ffmpeg—-我是ffmpeg的忠实粉丝。它真的很棒!我们是在脚本中使用它将音频转化成面向特定目标平台的适当格式。

Cakewalk Sonar—-这是一个非常强大的音乐制作程序,在一开始便带有一个复杂的学习曲线。

Garritan Personal Orchestra—-如果你想要的是orchestral VSTs(乐器),Garritan便拥有非常高的音质。我们便是使用它与Sonar结合在一起。

Audacity—-这是一个很棒的音频编辑器与录音工具。

而以下是我们虽然不再使用,但仍想推荐你们的工具:

Anvil Studio—-如果你曾培训过乐器并且能够浏览/操控音符和时间等,且想要创造MIDI的话,这对你来说便是一个很不错的程序。

Linux Multimedia Studio—-LMMS是一个非常简单的程序。你将能够使用它去创造高科技舞曲/电子乐。并且该程序也不需要你知道如何看乐谱。

结论

如今创造游戏的方法多种多样。而以上是我们选择的用于创造跨平台2D游戏的方法,并且到目前为止我们都用的很顺畅。我们最近的游戏已经面向Android(Google Play,Kindle和Nook),iOS和Windows Phone发行了。我们也将使用同样的工具和框架将我们的下一款游戏进一步带向PC,Mac和Linux等平台。

相关推荐

史上最全的浏览器兼容性问题和解决方案

微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...

平面设计基础知识_平面设计基础知识实验收获与总结
平面设计基础知识_平面设计基础知识实验收获与总结

CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...

2025-02-21 16:01 yuyutoo

写作排版简单三步就行-工具篇_作文排版模板

和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...

写一个2048的游戏_2048小游戏功能实现

1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...

今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……

  最近的天气暖和得让很多小伙伴们喊“热”!!!  昨天的气温到底升得有多高呢?你家有没有榜上有名?...

CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式

之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...

柠檬科技肖勃飞:大数据风控助力信用社会建设

...

你的自我界限够强大吗?_你的自我界限够强大吗英文

我的结果:A、该设立新的界限...

行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?

行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...

让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华

去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...

2025-02-21 16:00 yuyutoo

今年国家综合性消防救援队伍计划招录消防员15000名

记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...

一起盘点最新 Chrome v133 的5大主流特性 ?

1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...

竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使

style="text-align:center;"data-mce-style="text-align:...

学物理能做什么?_学物理能做什么 卢昌海

作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...

你不知道的关于这只眯眼兔的6个小秘密
你不知道的关于这只眯眼兔的6个小秘密

在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...

2025-02-21 16:00 yuyutoo

取消回复欢迎 发表评论: