游戏邦在:
杂志专栏:
gamerboom.com订阅到鲜果订阅到抓虾google reader订阅到有道订阅到QQ邮箱订阅到帮看

阐述游戏设置程序员的重要性

发布时间:2011-09-07 14:46:13 Tags:,,

作者:Andy Bastable

在我的整个游戏编程生涯中,我总是充满着对硬核图像编码员的敬畏与崇拜。追溯到PSX(游戏邦注:索尼公司生产的一款基于PlayStation2的能进行数字录像,DVD录像的多功能媒体设备)时期,那时的我刚从学校毕业,希望能够见识下如何利用汇编代码创造出这种编程艺术,我也曾与一些深度游戏编码员进行交谈,感受到了他们独特的硬核语言ASM(汇编语言),内联函数以及矢量单元的魅力。

有时候我会很想超越这些硬核游戏编码员。但是对于我来说,他们早已站在了程序员行列的最前方。对于各种编程者的欣赏,我更加坚定了自己必须创建一支优秀的AAA级开发团队。程序员行列中既有硬核引擎优化者也有许多全能者,但是,我想在这篇文章里集中讨论的是:最底层的游戏设置程序员。

Video-Game-Programmer(from downloadingwii.com)

Video-Game-Programmer(from downloadingwii.com)

首先要声明:我是一名AAA级编码员,从进入该行业的第一天起就一直致力于一个开发团队中。同时我也想在这里赞扬那些全能的编码员们,并且我所说的都是针对于那些游戏设置程序员们,与独立游戏开发者无关。

在这里,这些在游戏开发过程中担当着不同角色的人们总是能按照一些有帮助的指南前进。我很庆幸自己也在这个大队五中,因为我很热爱这项工作。

什么是游戏设置程序员?

在最近的一次采访中,有人让我描述一下自己的工作角色。除去管理工作,我将自己称为一名“富有创造性的游戏设置程序员”。但是随之对方又问道“但是这又是什么意思?”从那时到现在我一直在思考着这个问题。这到底是什么意思?什么是游戏玩法?游戏设置编码和非游戏设置编码各自的源头又是什么?

简单地说,编码让程序员更加接近玩家。他们能够了解玩家想要的或正在做的一些东西,并收到玩家的相关反馈。从这里看来,比起传统意义上的游戏玩法,游戏设置程序员涉及了更广泛的领域,包括用户如何使用功能表,如何在职业模式选择出现后做出反应,游戏模式是如何记分以及HUD是如何呈现分数等:这些都是包含在游戏设置中。

更全能

全能对于一名游戏设置程序员来说至关重要。技术人员常常会被认为缺少足够的知识,但是如果想成为一名富有成效的游戏设置程序员,广泛的知识基础是一个必不可少的技能。丰富的知识不仅能够让程序员自行编写文件管理器或者字体渲染器,而且也能帮助他们更好地理解代码库的功能,如何快捷地应用这一功能以及如何更好与其它功能相协调等。

在这里,全能就是指与曲面算法的优化和复杂的片元着色器的编写等同等重要的专业技能。但是这也不是说知识在这个领域不重要,不管在哪个领域知识的地位都不可磨灭,游戏设置程序员亦是如此。

当然了,对于游戏设置程序员来说还需要涉及很多专业领域,如专业的游戏设置技巧,模式匹配算法,以及近来用于快速创建游戏设置基础功能的物理系统等。

培养创造力

莱昂内尔·梅西(游戏邦注:Lionel Messi,阿根廷著名足球运动员)是当今全世界最优秀的足球运动员。

Lionel Messi(from sportschampon.blogspot.com)

Lionel Messi(from sportschampon.blogspot.com)

梅西现效力于巴塞罗那这个由众多富有才能的足球选手组成的球队,梅西为这个球队带来了巨大的创造力。他可以做到很多球员做不到的事,如使用一些奇特且不可预期的方法传球射门或者疑惑对手等,所以梅西在该球队的地位是不可取代。

梅西之所以可以如此展现自己的才能是因为球队支持他这么做,而换成在游戏世界中亦是如此。一个团队应该让队员们能够展示自己的才能而非强迫他做一些不相符的工作。就像你不能让如此擅于进攻的梅西去做后防,你应该让他往前冲,去散发自己的光芒。

你的团队中也需要如此富有创造性的程序员。你应该认可这些有创造性的成员,尽早地认可他们的才能,并让他们能够从事适合自己的工作,以更好地发挥他们的才能,就像你应该让有制作图像才能的程序员去引擎开发的图像部门效力一样。

如果你们团队有一名程序员总是拥有很多好的灵感,那么让他去发挥这一才能,与游戏设计者和美工人员共同协作抒发自己的灵感,并留给他们尽可能多的空间去发挥这种创造性。

我们很难在生产计划以及Agile等系统中控制好时间和空间因素,而且生产研发和创意的生成总是需要一定的时间和空间,但如果我们能够为成员提供更多发挥创意、实现想法的空间,那么他们定会更容易获得成功,你的游戏和工作室最后也必将从中受益。

为了创造一款AAA级游戏,你就必须拥有一群富有创造性的游戏设置程序员。我认为,如果我们懂得欣赏他们,培养他们的才能并鼓励他们进行创造,那么他们将会为你呈现更多好创意。(本文为游戏邦/gamerboom.com编译,如需转载请联系:游戏邦

Opinion: In Defense of the Gameplay Programmer

by Andy Bastable

Throughout my career as a professional games programmer, I have always been in awe of the hardcore graphics coder. As a graduate, I’d see these giants of the art deep in lines of assembly code (this was back in the days of PSX) and talking with other ubercoders using their own secret hardcore language of ASM, intrinsics, and vector units.

For a while, I wanted to emulate them. To me, they represented the pinnacle at the top of the programmer tree. Yet more and more, I am coming to appreciate the art of the many different kinds of programmers you need to form a crack AAA dev team. From the hardcore engine optimizers, to the generalists, to the subject of my blog: The humble gameplay programmer.

First, a disclaimer: I’m a AAA coder, having worked in a team since the first days of my professional career. Whilst I’m going to be praising the generalist coder highly here, I’m also aware that I’m talking about specializing as a gameplay programmer, which isn’t so relevant for indie development.

That said, hopefully there are some useful pointers for those who have to wear different ‘hats’ during the development of a project. I’ve been there, and I loved it.

What Is A Gameplay Programmer?

Recently, in an interview, I was asked to describe my job role. Leaving aside the management side of things, I described it as a “creative gameplay programmer”. “But what does that mean?” came the reply. That question has haunted me ever since. What does that mean? Indeed, what does gameplay mean? Where does gameplay coding start and non-gameplay coding begin?

Simply put, it’s the aspect of coding that puts the programmer closest to the player. It’s dealing with what the player wants, does, and receives in return. In this way, a gameplay programmer does more than just deal with the area of the game that might traditionally be considered “gameplay”. It includes how the user interacts with menus, how progression through a career mode happens, how a game mode is scored, and how a HUD represents that score: It’s all gameplay.

More Generalist Than Man

A vital aspect of being a gameplay programmer is generalism. Often overlooked as a skill, having an incredibly wide knowledge-base is essential for being a vitally productive gameplay programmer. This is not your generalist engine programmer style deal, where a programmer is competent enough to be able to write a file manager or a font renderer; this is a highly focussed understanding of what the codebase can do, the quickest way to do it, and how it all ties together.

Generalism, of this form, is a specialism every bit as important as optimizing skinning algorithms and writing complex fragment shaders. That’s not to say that knowledge in those areas isn’t important; it’s just that knowledge of many areas is just as important, if not more so, for the gameplay coder.

And, of course, there are plenty of specialist areas for the gameplay programmer: in-depth knowledge of gameplay techniques, pattern-matching algorithms, and lately physics systems are really important if creating gameplay from bare-bones functionality quickly is your aim.

Nurturing The Creatives

This is Lionel Messi.

Messi, is currently the best footballer in the world. (US readers, football == soccer).

His team, Barcelona, are a talented bunch, with unbelievable quality in almost every area of the pitch, but Messi is vital to the team because of the creativity he brings. He can do things with a football that other players cannot do, he can see passes, score goals and befuddle opponents in wonderful and unpredictable ways, and as such he is indispensable.

However, and to bring this analogy back into the game dev world, he can do all of this because his team allows him to. The team is set up to play to his strengths and not to force him into a role to which his skills are not well suited. You don’t ask Lionel Messi to defend; you ask him to dazzle.

So it is with the creative programmers in your team. Identify them, identify them early, and ensure they are placed in roles that can get the best out of them, in the same way you place a programmer with an aptitude for graphical effects in the graphics department of engine development.

If you have a programmer who prototypes ideas quickly, brings them to a stage where the fun can be proved out or dismissed, works collaboratively with designers and artists (and not against them), and who bristles with ideas of their own — ensure that they are given space to be creative.

Yes, time and space are difficult to fit into controlled production plans, and systems such as Agile, and yes, there is a time and a place for R&D and idea-generation, but if space is given to creative types for ideas to grow, morph, and develop, with no expectation that they will necessarily succeed, then your game and your studio could ultimately benefit from something amazing appearing out of nowhere.

Creative gameplay programmers are a vital cog in a well-oiled AAA game-making-machine. So mine, really, is a rallying call to appreciate them more, nurture their craft and encourage their creativity; their next big idea could be yours.(source:gamasutra


上一篇:

下一篇: