游戏主程序亲述游戏职场生涯

来源:互联网 发布:数据库如何使用boolean 编辑:程序博客网 时间:2024/06/12 20:08

作为游戏开发中不可缺少的一个环节,游戏程序人员一直作为幕后英雄存在。大家对程序员都不陌生,那么做游戏程序员和其他的软件程序员有什么样的区别呢?要从事游戏程序的开发需要从业者具备什么样的素质呢?本期,我们邀请到巨人网络《龙魂》游戏主程序周昌贵,让他带领我们去感受游戏程序员的酸甜苦辣。


职场明星:周昌贵

  年龄:28岁

  从业经历:2005年毕业于四川大学计算机学院计算机科学与技术专业后一直从事游戏开发至今,曾任职于广州综联数码有限公司从事休闲游戏的开发工作。现任职于巨人网络成都分公司担任《龙魂》项目服务器主程序工作。  


《龙魂》服务器端就是周昌贵的得意之作

  编游戏玩的就是C/S

  很多人都遇到过类似的问题:你是做什么工作的?如果你回答,我是游戏程序员,就有很大的可能会被追问有关游戏的事情。如果恰好你编写的游戏是对方正在玩耍的,那么诸如有什么办法获得游戏里面的极品装备,有没有什么BUG可以利用,某关BOSS应该如何打等问题就会接踵而至。会这么追问的人往往对游戏有着极大的热情,但是他们对游戏程序员的工作又理解得太少。

  游戏程序员就是以制作游戏为职业的普通人而已,他们不是游戏里面被玩家攻击的怪物,也不是游戏里面大家骂得最多的GM。游戏程序开发人员的工作就是开发基于客户端/服务器(C/S)模式互动程序的程序,不过这个程序很巨大,每天都有成千上万的用户在使用,同时,这个程序能给用户带来乐趣,创造更多的财富。

  游戏程序员从一开始就会被要求有一个自己的发展方向,是为更好的用户体验而努力奋斗的客户端程序员,还是为服务器稳定高效而埋头苦干的服务器端程序员。当然了,选择方向也不是那么容易的,也许在从业半年后,你才会更加清晰地认识到,自己到底想要从事什么工作。

  周昌贵:编游戏就是追“新”

  首先,市场要求游戏应该是不断地推陈出新,不断地寻找进步。所以,编写游戏就得不断地尝试不同的方法来达到最佳的游戏体验。

  其次,就算好的东西,玩家也会要求游戏间拥有更多的不同点,游戏开发在做每一款游戏时都会想做出不一样的特点,所以你就不得不寻求新的东西,这也会让你的工作永远都有新挑战。

选C:一切为了用户体验

  如果你对程序精简和资源利用简化有兴趣,那么客户端程序员一定是最适合你的岗位。游戏客户端承担着与玩家交互的任务,所以必须一切以提供良好的用户体验为主,这对客户端编程提出了多方面的要求:为了减少客户端的下载时间必须控制客户端大小,这就要求游戏资源格式必须精简。

  为了给玩家创造好的更新体验,我们必须将资源化整为零,有效减少无关的更新;为了适应玩家的不同操作习惯,我们必须提供不同的操作方式甚至要允许玩家自定义一些功能;为了减少客户端的资源占用,我们必须设计动态的回收机制。此外,为了让玩家尽快地上手我们的游戏,还要编写各种各样的新手指引……总之客户端程序员要能以玩家的心态去体验自己的作品,创造良好的用户体验是工作的核心!

  客户端程序员基本需求

  1.熟悉C与C++编程。
  2.有面向对象的设计能力。
  3.掌握WIN32编程与SOCKET通信。
  4.图形学基本原理与DIRECTX的掌握。


常见的打斗场面中蕴含了信息通信、数字运算等诸多元素

  周昌贵:请做好加班的准备

  游戏编程在初期与其他团队会有很多磨合的需求,与其他开发人员磨合形成统一的设计思路与编码习惯。与策划磨合形成一致的开发方向。要解决这些困难没有捷径,至少我没发现,只有在前期多开会,多沟通,需要更多的包容与理解。否则面临的就是无止境的加班以及游戏编码的推倒重来。

  选S:目标就是稳定、高效、易维护

  服务器端程序员在编写服务器的过程中主要需要考虑三个方面的内容:稳定、高效和易维护。稳定是前提,谁也不能容忍服务器动不动宕机、回档操作不断吧,不管你是在内测还是技术测试,提供一个稳定的游戏运行环境是服务器程序员的首要任务。

  高效性也比较好理解,主要体现在服务器对玩家操作的响应时间,优化服务器代码,提高服务器运行效率,提高服务器的有效载荷,在同等硬件条件下提供更高质量的服务。这是我们长期的目标。

  易维护性包含的范围较广,各功能模块是否可配置、能否不停机维护、玩家行为是否可跟踪、玩家数据是否易迁移等等,设计一个好的数据结构是关键,而这些只有实实在在经历过至少一款游戏的开发到运维才能明白它的重要性。

  服务器端程序员基本要求

  1.熟悉C与C++编程。
  2.熟悉SOCKET编程。
  3.熟悉LINUX操作系统环境。
  4.拥有数据库相关知识。
  5.掌握至少一门脚本语言。

两台电脑是标配:左边看服务器状态,右边看编码执行情况

掌握引擎是必备技能

  在实际的工作中,游戏程序开发其实更多的是在游戏引擎中进行游戏的开发。游戏引擎其实就是一组开发游戏所用到的工具集合(可能包含源码、库文件、二进制可执行文件和可重用的资源)。它的主要作用就是简化游戏开发过程,使游戏开发者只要关注游戏本身即可。

  现在各个游戏公司各自使用的引擎区别很大,主要分为自主研发和海外商业引擎两类。使用自主研发引擎最大的好处就是能随时根据游戏的开发需要进行扩展、更新!缺点自然就是自主研发周期较长,投入相对较高,最怕遇到的情况是开发过程中核心研发人员的流失!

  使用成熟的第三方引擎(Unreal Engine 3、Gamebryo Lightspeed等等)各种开发工具相对完善,掌握以后制作周期短。但是要经过比较复杂、系统的人员培训。还有各种授权的限制。同样也无法对引擎进行修改、扩展来适应现在新的需求。

  所以对游戏程序开发员来说,游戏引擎就是你工作的工具,只有熟练掌握了当前使用的引擎,才能够在繁重的工作中如鱼得水。

  周昌贵:学会从编程的眼光看游戏

  游戏程序员更多的会去关心这款游戏的表现方面,比如画面是否流畅,资源占用情况(处理器、内存、网络)。服务器是否流畅,在多少同时在线人数时延时是可以接受的,我们会分析它使用了哪些领先的技术,和其他游戏相比它有哪些不同,以及这些不同创造了什么样不同的用户体验等等。甚至想去了解它的运维支持系统,它的持续开发能力。从这些方面做出结论这个游戏好还是不好。

  收入偏高压力大

  这个行业创造了很多“70后”、“80”后甚至“90后”一夜成名的神话,这些故事曾经吸引过我,现在也同样吸引着很多有梦想的人。前面说过了,游戏程序员通过编写的程序为用户(玩家)带来欢乐,从而创造更多的财富。因所在城市生活水平的差异可能各个地方不尽相同,一个工作3年左右的游戏程序员在一线城市的收入一般在6000元~15000元。

  但是事情永远都有两面性,高额的收入只是表面,游戏程序员的压力相对其他行业的程序员要大很多。首先,现在的玩家对游戏要求很高,这也给了游戏程序员新的要求,要不断掌握更新更好的技术。此外,游戏程序每天使用的人数众多,其中的BUG也容易被发现,游戏程序员时刻都处于备战状态。

  所以你除了要具备相关的专业知识以外,更重要的是要具备严谨的工作态度、不折不挠的精神与旺盛的精力,因为长期加班会让你倍感疲惫,而自身惰性也会让你的好心情消耗殆尽。

  职场点评:面对浮躁找准自己定位

  从收入上来讲,游戏编程人员的收入通常都会高于其他的编程人员。

  但是我们也要看到,这个收入高的前提是因为游戏公司的盈利模式比较成熟有效,相应地带来了员工收入的提升,而作为游戏开发重要组成部分的编程人员自然也是水涨船高。

  事情都是有两面性的,游戏市场的火爆,也让游戏编程面临了更多的诱惑和浮躁思想。跳槽、自主创业等情况屡见不鲜。所以一个优秀的游戏程序员可能在跳槽带来的磨合期中丧失自己的激情和创新能力,最终泯然众人。

  要从事这个行业,必须有几个准备。首先,在从业初期,自己应明白想要侧重哪一方面,想要在职场中能够更进一步,在某个方面的精通是必不可少的条件。其次,游戏开发是一个漫长的协同作战,在精通某个方面后,尝试去担任游戏开发中的几个主要角色之一,并为之做好准备,因为随时都有可能让你担当某个主要角色。最后就是要有自己的长期目标,并能够大体估算出要花多少时间来实现自己的目标,让自己能够在浮躁和各种诱惑中始终按自己的方向前进。

原文:http://www.youxijishu.com/blogs/27.html

0 0
原创粉丝点击