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

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

yuyutoo 2025-02-17 14:38 8 浏览 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等平台。

相关推荐

墨尔本一华裔男子与亚裔男子分别失踪数日 警方寻人

中新网5月15日电据澳洲新快网报道,据澳大利亚维州警察局网站消息,22岁的华裔男子邓跃(Yue‘Peter’Deng,音译)失踪已6天,维州警方于当地时间13日发布寻人通告,寻求公众协助寻找邓跃。华...

网络交友须谨慎!美国犹他州一男子因涉嫌杀害女网友被捕

伊森·洪克斯克(图源网络,侵删)据美国广播公司(ABC)25日报道,美国犹他州一名男子于24日因涉嫌谋杀被捕。警方表示,这名男子主动告知警局,称其杀害了一名在网络交友软件上认识的25岁女子。雷顿警...

一课译词:来龙去脉(来龙去脉 的意思解释)

Mountainranges[Photo/SIPA]“来龙去脉”,汉语成语,本指山脉的走势和去向,现比喻一件事的前因后果(causeandeffectofanevent),可以翻译为“i...

高考重要考点:range(range高考用法)

range可以用作动词,也可以用作名词,含义特别多,在阅读理解中出现的频率很高,还经常作为完形填空的选项,而且在作文中使用是非常好的高级词汇。...

C++20 Ranges:现代范围操作(现代c++白皮书)

1.引言:C++20Ranges库简介C++20引入的Ranges库是C++标准库的重要更新,旨在提供更现代化、表达力更强的方式来处理数据序列(范围,range)。Ranges库基于...

学习VBA,报表做到飞 第二章 数组 2.4 Filter函数

第二章数组2.4Filter函数Filter函数功能与autofilter函数类似,它对一个一维数组进行筛选,返回一个从0开始的数组。...

VBA学习笔记:数组:数组相关函数—Split,Join

Split拆分字符串函数,语法Split(expression,字符,Limit,compare),第1参数为必写,后面3个参数都是可选项。Expression为需要拆分的数据,“字符”就是以哪个字...

VBA如何自定义序列,学会这些方法,让你工作更轻松

No.1在Excel中,自定义序列是一种快速填表机制,如何有效地利用这个方法,可以大大增加工作效率。通常在操作工作表的时候,可能会输入一些很有序的序列,如果一一录入就显得十分笨拙。Excel给出了一种...

Excel VBA入门教程1.3 数组基础(vba数组详解)

1.3数组使用数组和对象时,也要声明,这里说下数组的声明:'确定范围的数组,可以存储b-a+1个数,a、b为整数Dim数组名称(aTob)As数据类型Dimarr...

远程网络调试工具百宝箱-MobaXterm

MobaXterm是一个功能强大的远程网络工具百宝箱,它将所有重要的远程网络工具(SSH、Telnet、X11、RDP、VNC、FTP、MOSH、Serial等)和Unix命令(bash、ls、cat...

AREX:携程新一代自动化回归测试工具的设计与实现

一、背景随着携程机票BU业务规模的不断提高,业务系统日趋复杂,各种问题和挑战也随之而来。对于研发测试团队,面临着各种效能困境,包括业务复杂度高、数据构造工作量大、回归测试全量回归、沟通成本高、测试用例...

Windows、Android、IOS、Web自动化工具选择策略

Windows平台中应用UI自动化测试解决方案AutoIT是开源工具,该工具识别windows的标准控件效果不错,但是当它遇到应用中非标准控件定义的UI元素时往往就无能为力了,这个时候选择silkte...

python自动化工具:pywinauto(python快速上手 自动化)

简介Pywinauto是完全由Python构建的一个模块,可以用于自动化Windows上的GUI应用程序。同时,它支持鼠标、键盘操作,在元素控件树较复杂的界面,可以辅助我们完成自动化操作。我在...

时下最火的 Airtest 如何测试手机 APP?

引言Airtest是网易出品的一款基于图像识别的自动化测试工具,主要应用在手机APP和游戏的测试。一旦使用了这个工具进行APP的自动化,你就会发现自动化测试原来是如此简单!!连接手机要进行...

【推荐】7个最强Appium替代工具,移动App自动化测试必备!

在移动应用开发日益火爆的今天,自动化测试成为了确保应用质量和用户体验的关键环节。Appium作为一款广泛应用的移动应用自动化测试工具,为测试人员所熟知。然而,在不同的测试场景和需求下,还有许多其他优...

取消回复欢迎 发表评论: