[转载]SDL 用法:"Pirates Ho!" 的诞生

SDL 用法:"Pirates Ho!" 的诞生
从头开始创建一个 Linux 游戏

Sam Lantinga 和 Lauren MacDonell
Loki Entertainment Software 首席程序员
2000 年 2 月

内容:
构思游戏
研究
越来越快乐!
工具
结束语
参考资料
关于作者


Simple DirectMedia Layer (SDL) 的作者 Sam Lantinga 和 Lauren MacDonell 发布了这个系列的第一篇文章,在这些文章中,他们记录了从头设计和构建 Linux 游戏的过程。在本文中,作者说明了他们如何开始游戏的构思过程。

一切都是在某个星期天下午开始的,当时我们沿着州际 5 号公路从 Stockton 驾车回家。就在 Santa Nella 的南边,我们开始讨论编写我们自己的计算机游戏的可行性。由于有人请我们撰写关于在游戏开发中使用 SDL 的系列文章,我们才有了这个想法,而这是其中的第一篇。由于有一些游戏开发的实际经验,我们认为要熟悉和了解某个过程的唯一方法是亲身体验它,并且用文档记录下各个阶段。接着就是总结我们已经采取的预备步骤,以及游戏开发至今为止我们得到的建议。

构思游戏
6 小时的路程给了我们足够的时间开始激发脑力。首先,我们考虑要编写哪种游戏。街霸?冒险游戏?策略游戏?我们参与角色扮演游戏的历史很长,并且成绩出色,因此我们认为开发冒险游戏应该很有趣。

那么就引出了下一个问题:哪种类型?是科幻冒险?中世纪幻想?探宝历险?提到“探宝历险”时,突然冒出了一些灵感的火花。我们开始想像那种震撼的感觉:大把的金币从指尖滑落……,风帆在头顶拍打,空气中弥漫着盐和海水的味道……,恐惧地看着一个人走在甲板上,独脚海盗船长向远处眺望……。几分钟之后,我们已陷入了沉思中,毫无疑问我们的方向已定。

我们讨论了激烈的舰对舰战斗的各种情形,而那种世界下角色扮演游戏的可行性引起了我们的兴趣。我们边驾驶边讨论了一些游戏的具体细节。我们需要一个全面计划。一个经典计划,并且它要集角色扮演和战术战斗于一身,那就是寻宝。游戏中有几位海盗船长,而玩家将扮演其中一位,每个海盗船长都有一部分寻宝图,而他必须想办法收集其余部分的地图并得到宝藏。

Pirates Ho! 地图草稿
Pirates Ho! 地图草稿

到家之前,假设已经变更了好几次。最初,宝藏是最终目标,但如果宝藏可以带领玩家去寻找新的或更刺激的财宝,那又会如何呢?或许,它是神秘的炼金术配方,可以使铅变成金子?或者是通向另一个空间的门户?可能的情况是无穷无尽的,所以我们决定研究所有海盗电影、书籍,特别是可以弄到手的游戏。因为我们希望获得一些历史和文学方面的观点,以及现有游戏中可能与我们相似的构思。

研究
到家之后,我们做的第一件事就是访问 CompUSA 来寻找游戏。我们找到几个关于海盗的游戏,它们自称包括了战斗、策略和角色扮演成分。我们有一点失望,因为游戏公司似乎事先窃取了我们的灵感,但我们很快就恢复了信心。因为在从 Stockton 回家的途中,我们就进行了激烈的争辩,是使游戏世界符合现实和历史,还是构造一个虚幻的世界,它包括美人鱼、海妖、巨大的旋涡以及类似的东西。我们所看到的正在销售的游戏似乎是符合现实/历史的,所以我们决定走相反的路,使我们的游戏尽可能有幻想。

在购买了一个我们找到的游戏后,我们把它拿回家,只是希望发现它并不如看上去那么好玩。这个海战游戏并没有很好地开发,也没有涉及到角色扮演的成分。很快,我们便认定我们可以使某些部分变得更好。我们搜索了 Internet,以查找其它海盗游戏的演示版及其评论,用它们来帮助确定我们游戏的范围。了解了其它游戏在评论家眼中的亮点和败笔,我们就对当前游戏尚未满足的要求有了一些认识。

我们租借了可以在当地录像带商店中找到的每一部海盗电影来继续进行研究。它们包括 Treasure IslandCutthroat IslandKidnapped,当然还有现代经典片 Muppet Treasure Island。根据这些影片,我们可以找到海盗电影的一些感觉:故事情节、场景、以及现代观众心目中的海盗形象和声音。这些是我们的游戏要考虑的因素。

越来越快乐!
我们在一个素不相识的人家中举行的意大利聚餐会上,惊奇地发现了游戏开发迄今为止最重要的一件事。我们应朋友之邀,而他又是个游戏程序员,所以我们就带上草稿和草图,希望他能花几分钟时间提供给我们一些新的想法。没想到主人和大多数宾客都是游戏程序员、QA 测试人员或热情的玩家,他们都有一些想法可以与我们分享。

我们一开始比较犹豫地提出了我们原来的构思,并解释了我们的想法。但却得到了热情的回应。每个人都有最中意的游戏愿意与我们分享,他们的想法对我们的计划是很好的补充,并且其中也不乏一些建设性的建议。现在,最关注的是游戏应该充满情调。一些使游戏增加情趣的建议包括添加一些随机的有趣事件,如在格斗期间添加一些船员的说明,以及在游戏中不同人物之间建立一组关系。

由于这是一个角色扮演的游戏,定制人物和船员相当重要;人们希望可以使他们的人物个性化,并且可以与船员中的人物交流。每个人都喜欢逻辑问题的构思,并建议可以有多种方法获胜。他们还希望有旁门左道的方法可以玩游戏,并且可以帮助完善人物。

当我们征求游戏的技术方面的反馈时,我们学到了最有价值的一课:在开始操心游戏的内部工作之前,先构建想法和故事。我们的新朋友告诉我们,不管代码如何巧妙复杂,一个不变的事实就是人们喜欢好的故事情节。

工具
我们在设计游戏世界和玩家界面时所遇到的第一个问题是“它看上去像什么?”。游戏开发的第一阶段就是概念艺术图;有一天晚上,我们很晚未眠,草拟出人物和环境的形象。我们从一开始就认定三维环境要比二维好,并且知道要有逼真的地图以及寻宝图。还需要想办法生成人物的图片,通过改照片或者徒手绘制。一旦有了关于外观的灵感,就必须找到适当的工具。幸好,我们家中已经有了 Bryce3D 和 Fractal Design Painter4 的副本,这样就可以在家中进行创作了。

构建游戏时作者的桌面
Pirates Ho! 地图草稿

我们开始研究已经拥有的软件能力,并且在大量讨论和预算分析后,最终购买了包括 Bryce4、Poser4 和 Canoma 在内的软件包(请参阅本文后面的参考资料)。目前,已经成功创建了非常好的 18 世纪风格的游戏世界地图,以及一些三维岛屿,但仍必须想出处理小镇、船只、人物以及其它一些可视元素的算法。我们仍在讨论是否要投资买一部数字像机。

结束语
迄今为止,我们认为已经开了个好头。当然,希望在实现了我们的想法以后有些事可以改变 -- 毕竟,事物很少按人们的意志发展。

在开发过程的最初部分,我们学到了一些东西,并希望它们会有所帮助。首先,不要指望某个下午坐在电脑前,就可以写游戏。这也许适合某些人,但我们大多数人必须 -- 或至少应该 -- 首先创建好的构思。开始时,尽可能多地创建一些构思。如果可以的话,听听别人对您的构思有什么看法 -- 越多越好!

一旦确定了一些构思,尽量多做一些调查,看看市场上是否有同类产品,以及还有哪些需要没有满足。考虑一下,如果您是这个游戏玩家,那么需要什么,有什么期望;是要将游戏卖给别人,还是只想打发空闲时间,搞清楚这一点非常重要。同样,还要查看一些能从中获取灵感的书籍、电影、游戏等。当然,我们不是暗示您去剽窃什么,但从其它资料中汲取灵感并没有错。此外,彻底探索要工作的领域,就可以了解到玩家希望什么样的行为模式、人物、故事情节和场景,以及有什么创新能够带给他们惊喜。也许,还可能发现这个想法已经实现了,那么就可以在创建游戏的新构思时享受别人的劳动成果了。

要选择正确的工具,应考虑一些事情。首先,应根据要创建的事物选择工具,决不能反着干。换句话说,不要跑出去买回一大堆软件,结果让它们永远躺在书架上。想清楚要做什么,然后到处找一找适合这项工作的东西。其次,我们认为不是每个人都舍得花钱买那些我们刚好能负担得起的好软件。我们不会推荐特定软件包,但可以介绍几个好的 Internet 站点(请参阅参考资料),可以在这些站点上找到各种共享软件和低成本应用程序。另一种选择就是在决定购买某个公司的整个软件包之前,先尝试下载和研究该软件的演示版本。

我们仍在学习中,希望您可以从我们的成果中学到一些东西,但这决不是开发游戏的唯一方法。我们认为这个游戏仍有值得改进的地方。只要知道如何实现目标,我们并不介意对游戏做改动。在探索过程中,您将会找到自己的方法。如果发现确实有值得借鉴的地方,我们也乐于听到。

祝好运!

参考资料

关于作者
Sam Lantinga 是 Simple DirectMedia Layer 库的作者,现在是 Loki Entertainment Software 的首席程序员,这家公司致力于生产最畅销的 Linux 游戏。他与 Linux 和游戏打交道开始于 1995 年,从事各种 DOOM! 工具移植,以及将 Macintosh 游戏 Maelstrom 移植到 Linux。

Lauren MacDonell 是一位技术作家,并且是一位业余艺术家。她和 Sam 正在合作开发海盗角色扮演游戏 "Pirates Ho!"。在工作、写书或跳舞之余,她照管着热带鱼。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值