乐平| 奉化| 都昌| 汝南| 寻甸| 古蔺| 花莲| 关岭| 高雄市| 日土| 勉县| 岱岳| 项城| 下花园| 凤庆| 定日| 房山| 思茅| 宿豫| 吉首| 通州| 新安| 永新| 界首| 怀远| 佛坪| 银川| 黎平| 大通| 英吉沙| 宣化区| 肃南| 庄河| 邵武| 大渡口| 无为| 佛坪| 华坪| 贵定| 扶余| 洪雅| 大邑| 新平| 闽清| 杜集| 双城| 乐亭| 宜昌| 合作| 施甸| 吴中| 岳池| 友好| 大姚| 奉节| 宁晋| 南海| 蓬莱| 佛山| 伊川| 台州| 凌云| 封开| 汶川| 峨边| 西畴| 莱阳| 北仑| 纳雍| 沙洋| 咸阳| 本溪市| 米易| 眉山| 綦江| 平塘| 吉县| 大名| 巴马| 志丹| 洛浦| 即墨| 单县| 霍州| 商都| 玉山| 哈密| 延吉| 赣县| 东丰| 垦利| 固镇| 博山| 武功| 普陀| 抚州| 西青| 海安| 玉田| 淮阳| 瑞金| 志丹| 东光| 道真| 召陵| 八宿| 竹山| 雁山| 伊宁市| 云龙| 满城| 玉林| 加格达奇| 阜阳| 缙云| 石楼| 宜川| 滁州| 称多| 常宁| 长治县| 寒亭| 额尔古纳| 丹凤| 公主岭| 博鳌| 边坝| 黔江| 佳县| 太白| 扎囊| 鸡泽| 平鲁| 阿城| 惠安| 广安| 广灵| 正安| 台山| 南郑| 罗江| 奉节| 务川| 黄陵| 扬州| 陇川| 泰兴| 偃师| 东山| 静宁| 泗水| 无极| 宣化县| 大同县| 科尔沁右翼中旗| 嘉禾| 定安| 信阳| 乌马河| 无棣| 甘泉| 吴桥| 哈尔滨| 高淳| 琼山| 托里| 玉田| 德钦| 丰台| 楚州| 代县| 巴青| 蔚县| 铜川| 无棣| 浦口| 涪陵| 上高| 阜新市| 政和| 洪湖| 文登| 楚雄| 阜阳| 莒县| 麦积| 平坝| 融水| 沭阳| 乐安| 宁南| 肥城| 肇源| 泰州| 丹徒| 仁化| 元坝| 济源| 南溪| 兴国| 长兴| 汨罗| 庆云| 莘县| 尉氏| 潜江| 灵宝| 大同县| 从化| 保靖| 聂荣| 东阿| 遂川| 道真| 汨罗| 成武| 厦门| 柏乡| 玛沁| 云南| 大荔| 长沙县| 三明| 夹江| 都江堰| 桂东| 安图| 清苑| 陈巴尔虎旗| 富拉尔基| 大方| 牟平| 万源| 湖口| 马尔康| 珠海| 当阳| 鹤岗| 海安| 嫩江| 蓬溪| 金塔| 楚州| 望奎| 临清| 昌平| 平谷| 额尔古纳| 固阳| 三门峡| 沈丘| 鸡泽| 清河| 社旗| 宣威| 新泰| 普定| 曲江| 京山| 八达岭| 阿城| 瑞安| 宣化区| 华亭| 真钱扎金花游戏
|
|
51CTO旗下网站
|
|
移动端

用于游戏开发的图形和音乐工具

在这篇文章中,我们将讨论一些我们使用的工具和我们注意到可能有潜在阻碍的地方。

作者:Charlie Murphy来源:Linux中国|2019-01-16 15:15

 

要在三天内打造一个可玩的游戏,你需要一些快速而稳定的好工具。

在十月初,我们的俱乐部马歇尔大学的 Geeks and Gadgets 参加了首次 Open Jam,这是一个庆祝最佳开源工具的游戏 Jam。游戏 Jam 是一种活动,参与者以团队协作的方式来开发有趣的计算机游戏。Jam 一般都很短,仅有三天,并且非常累。Opensource.com 在八月下旬发布了 Open Jam 活动,足有 45 支游戏 进入到了竞赛中。

我们的俱乐部希望在我们的项目中创建和使用开放源码软件,所以 Open Jam 自然是我们想要参与的 Jam 了。我们提交的游戏是一个实验性的游戏,名为 Mark My Words。我们使用了多种自由和开放源码 (FOSS) 工具来开发它;在这篇文章中,我们将讨论一些我们使用的工具和我们注意到可能有潜在阻碍的地方。

音频工具

MilkyTracker

MilkyTracker 是一个可用于编曲老式视频游戏中的音乐的软件包。它是一种音乐声道器music tracker,是一个强大的 MOD 和 XM 文件创建器,带有基于特征网格的模式编辑器。在我们的游戏中,我们使用它来编曲大多数的音乐片段。这个程序最好的地方是,它比我们其它的大多数工具消耗更少的硬盘空间和内存。虽然如此,MilkyTracker 仍然非常强大。

其用户界面需要一会来习惯,这里有对一些想试用 MilkyTracker 的音乐家的一些提示:

  • 转到 “Config > Misc.” ,设置编辑模式的控制风格为 “MilkyTracker”,这将给你提供几乎全部现代键盘快捷方式。
  • Ctrl+Z 撤销
  • Ctrl+Y 重做
  • 用空格键切换模式编辑方式
  • 用退格键删除先前的音符
  • 用插入键来插入一行
  • 默认情况下,一个音符将持续作用,直到它在该频道上被替换。你可以明确地结束一个音符,通过使用一个反引号(`)键来插入一个 KeyOff 音符
  • 在你开始谱写乐曲前,你需要创建或查找采样。我们建议在诸如 FreesoundccMixter 这样的网站上查找采用 Creative Commons 协议的采样,

另外,把 MilkyTracker 文档页面 放在手边。它含有数不清的教程和手册的链接。一个好的起点是在该项目 wiki 上的 MilkyTracker 指南

LMMS

我们的两个音乐家使用多用途的现代音乐创建工具 LMMS。它带有一个绝妙的采样和效果库,以及多种多样的灵活的插件来生成独特的声音。LMMS 的学习曲线令人吃惊的低,在某种程度上是因为其好用的节拍/低音线编辑器。

我们对于想试试 LMMS 的音乐家有一个建议:使用插件。对于 chiptune式音乐,我们推荐 sfxrBitInvaderFreeBoy。对于其它风格,ZynAddSubFX 是一个好的选择。它配备了各种合成仪器,可以根据您的需要进行更改。

图形工具

Tiled

在开放源码游戏开发中,Tiled 是一个流行的贴片地图编辑器。我们使用它为来为我们在游戏场景中组合连续的、复古式的背景。

Tiled 可以导出地图为 XML、JSON 或普通的图片。它是稳定的、跨平台的。

Tiled 的功能之一允许你在地图上定义和放置随意的游戏对象,例如硬币和提升道具,但在 jam 期间我们没有使用它。你需要做的全部是以贴片集的方式加载对象的图像,然后使用“插入平铺”来放置它们。

一般来说,对于需要一个地图编辑器的项目,Tiled 是我们所推荐的软件中一个不可或缺的部分。

Piskel

Piskel 是一个像素艺术编辑器,它的源文件代码以 Apache 2.0 协议 发布。在这次 Jam 期间,们的大多数的图像资源都使用 Piskel 来处理,我们当然也将在未来的工程中使用它。

在这个 Jam 期间,Piskel 极大地帮助我们的两个功能是洋葱皮Onion skin精灵序列图spritesheet导出。

洋葱皮

洋葱皮功能将使 Piskel 以虚影显示你编辑的动画的前一帧和后一帧的,像这样:

洋葱皮是很方便的,因为它适合作为一个绘制指引和帮助你在整个动画进程中保持角色的一致形状和体积。 要启用它,只需单击屏幕右上角预览窗口下方的洋葱形图标即可。

精灵序列图导出

Piskel 将动画导出为精灵序列图的能力也非常有用。精灵序列图是一个包含动画所有帧的光栅图像。例如,这是我们从 Piskel 导出的精灵序列图:

该精灵序列图包含两帧。一帧位于图像的上半部分,另一帧位于图像的下半部分。精灵序列图通过从单个文件加载整个动画,大大简化了游戏的代码。这是上面精灵序列图的动画版本:

Unpiskel.py

在 Jam 期间,我们很多次想批量转换 Piskel 文件到 PNG 文件。由于 Piskel 文件格式基于 JSON,我们写一个基于 GPLv3 协议的名为 unpiskel.py 的 Python 小脚本来做转换。

它像这样被调用的:

  1. python unpiskel.py input.piskel

这个脚本将从一个 Piskel 文件(这里是 input.piskel)中提取 PNG 数据帧和图层,并将它们各自存储。这些文件采用模式 NAME_XX_YY.png 命名,在这里 NAME 是 Piskel 文件的缩减名称,XX 是帧的编号,YY 是层的编号。

因为脚本可以从一个 shell 中调用,它可以用在整个文件列表中。

  1. for f in *.piskel; do python unpiskel.py "$f"; done

Python、Pygame 和 cx_Freeze

Python 和 Pygame

我们使用 Python 语言来制作我们的游戏。它是一个脚本语言,通常被用于文本处理和桌面应用程序开发。它也可以用于游戏开发,例如像 Angry Drunken DwarvesRen'Py 这样的项目所展示的。这两个项目都使用一个称为 Pygame 的 Python 库来显示图形和产生声音,所以我们也决定在 Open Jam 中使用这个库。

Pygame 被证明是既稳定又富有特色,并且它对我们创建的街机式游戏来说是很棒的。在低分辨率时,库的速度足够快的,但是在高分辨率时,它只用 CPU 的渲染开始变慢。这是因为 Pygame 不使用硬件加速渲染。然而,开发者可以充分利用 OpenGL 基础设施的优势。

如果你正在寻找一个好的 2D 游戏编程库,Pygame 是值得密切注意的一个。它的网站有 一个好的教程 可以作为起步。务必看看它!

cx_Freeze

准备发行我们的游戏是有趣的。我们知道,Windows 用户不喜欢装一套 Python,并且要求他们来安装它可能很过分。除此之外,他们也可能必须安装 Pygame,在 Windows 上,这不是一个简单的工作。

很显然:我们必须放置我们的游戏到一个更方便的格式中。很多其他的 Open Jam 参与者使用专有的游戏引擎 Unity,它能够使他们的游戏在网页浏览器中来玩。这使得它们非常方便地来玩。便利性是一个我们的游戏中根本不存在的东西。但是,感谢生机勃勃的 Python 生态系统,我们有选择。已有的工具可以帮助 Python 程序员将他们的游戏做成 Windows 上的发布版本。我们考虑过的两个工具是 cx_FreezePygame2exe(它使用 py2exe)。我们最终决定用 cx_Freeze,因为它是跨平台的。

在 cx_Freeze 中,你可以把一个单脚本游戏打包成发布版本,只要在 shell 中运行一个命令,像这样:

  1. cxfreeze main.py --target-dir dist

cxfreeze 的这个调用将把你的脚本(这里是 main.py)和在你系统上的 Python 解释器捆绑到到 dist 目录。一旦完成,你需要做的是手动复制你的游戏的数据文件到 dist 目录。你将看到,dist 目录包含一个可以运行来开始你的游戏的可执行文件。

这里有使用 cx_Freeze 的更复杂的方法,允许你自动地复制数据文件,但是我们发现简单的调用 cxfreeze 足够满足我们的需要。感谢这个工具,我们使我们的游戏玩起来更便利一些。

庆祝开源

Open Jam 是庆祝开源模式的软件开发的重要活动。这是一个分析开源工具的当前状态和我们在未来工作中需求的一个机会。对于游戏开发者探求其工具的使用极限,学习未来游戏开发所必须改进的地方,游戏 Jam 或许是最好的时机。

开源工具使人们能够在不损害自由的情况下探索自己的创造力,而无需预先投入资金。虽然我们可能不会成为专业的游戏开发者,但我们仍然能够通过我们的简短的实验性游戏 Mark My Words 获得一点点体验。它是一个以语言学为主题的游戏,描绘了虚构的书写系统在其历史中的演变。还有很多其他不错的作品提交给了 Open Jam,它们都值得一试。 真的,去看看

在本文结束前,我们想要感谢所有的 参加俱乐部的成员,使得这次经历真正的有价值。我们也想要感谢 Michael ClaytonJared SpragueOpensource.com 主办 Open Jam。简直酷毙了。

现在,我们对读者提出了一些问题。你是一个 FOSS 游戏开发者吗?你选择的工具是什么?务必在下面留下一个评论!

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
大家都在看
猜你喜欢

读 书 +更多

J2EE开发全程实录

J2EE是目前企业级软件开发的首选平台。本书从架构的角度讲解了一个完整的J2EE系统的搭建。内容包括:正则表达式、JSP、Swing、XML等技术在...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
三塔镇 果园北区 琼库勒乡 姚家桥村 东江道天山里
芦台镇芦汉路 蜈蚣地 北药王庙 嘉兴移动公司社保局 沙湖宾馆
威尼斯人赌城注册 真钱牛牛可提现 拉斯维加斯獨家黄金21点 总统赌博 电子游戏厅
葡京娱乐网站 埃及王座 澳门梭哈游戏 澳门葡京开户 网上真钱斗地主
澳门赌场注册 真钱捕鱼游戏 葡京赌场开户 真钱牛牛游戏 澳门大发888赌场官网
ag电子游戏试玩 网上信誉赌场 mg冰上曲棍球怎么算分 澳门威尼斯人官方娱乐网 威尼斯人赌城注册
老虎机定位器 澳门大富豪网址 现金三公注册网址 牛牛游戏下载 现金骰宝 年度十大电子游戏 大小点游戏 玩什么游戏可以挣钱 电子游戏厅 方法奇葩赌博网 巴黎人网站 pt电子游戏哪个最会爆 澳门巴黎人游戏 澳门龙虎斗注册 澳门大富豪网站 押大小排行 真钱打牌 明升网站 十三水技巧 电子游戏下载 二十一点平台 现金网游戏开户平台 澳门百老汇游戏官网 皇博压大小 真钱捕鱼 跑马机游戏 赌博技巧 巴比伦赌场官网 现金三公 地下网址 捕鱼游戏技巧 英皇网站 手机玩游戏赚钱平台 现金网排行 pt电子游戏注册 赌博技巧 电脑玩游戏赚钱平台 海立方游戏 ag电子游戏排行 希尔顿官网 太阳网上压大小 现金赌钱游戏 现金棋牌游戏 真人网站网址 地下开户 九五至尊娱乐网址 澳门梭哈游戏官网 奇葩袖赌博网 鸿胜国际压大小 博狗扑克游戏 德州扑克游戏规则 庄闲代理 奔驰宝马老虎机下载 现金三公开户注册 免费试玩电子游戏 GT压大小 新濠天地注册 现金老虎机网站 纸牌赌博种类 乐天堂开户 澳门永利平台 电脑版捕鱼达人 玩电子游戏入门 斗牛游戏 bbin压大小 网上电子游戏网址 澳门网络下注平台 明升国际网址 明升娱乐 捕鱼达人电子游戏 mg电子游戏试玩 二十一点游戏赌场 澳门万利赌场官网 大小对比网站 现金电子游戏 电子游戏实用技术 老虎机破解器 澳门梭哈官网 澳门百老汇赌场注册 千炮捕鱼兑换现金 网上合法赌场 PT电子游戏 波克棋牌官方下载 天天棋牌 凤凰棋牌 美少女战士电子游戏 什么游戏可以赚人民币 银河国际娱乐 澳门番摊官网 澳门梭哈官网 胜博发电子游戏 电子游戏打鱼机 澳门现金网 大三巴网站 PT电子游戏 澳门银河国际娱乐