找回密码
 立即注册
查看: 222|回复: 0

游戏程序员的工作是怎样的?

[复制链接]
发表于 2022-6-29 14:34 | 显示全部楼层 |阅读模式
谢邀。

1.现在编那些动辄几十个G的游戏和以前编DOS游戏的方法是一样的吗?是原理不同还是原理相同只是工作量变大?
没有写过DOS游戏;
现在游戏大主要是因为美术资源量大:模型复杂,贴图精度高,动作丰富,特效绚丽等。代码量再多也不会导致游戏包大到哪里去;
现在游戏和以前的游戏有一些不同,现在游戏基本上都基于一款引擎来制作(例如OGRE,寒霜,CRY,虚幻,U3D等引擎),也就是说已经有一些常用、公用的东西(渲染,物理,动作等)被从游戏逻辑里抽离出来了。
这样游戏写起来反而更容易一些,生产力一直都在提高嘛。想了解引擎的话,推荐看一看《游戏引擎架构》 @Milo Yip。
2.从事这行在现在的高等教育中最对口的专业是哪些?
程序猿当然是计算机最好了,另外通信,自动化也可以,也有很多学生物化学的同学凭借毅力转到这条路上来,当然那更辛苦了。
最重要的相关知识有:用到的计算机语言,算法与数据结构,设计模式,图形学等…当然要增强内力的话要学的更多更深。
技术美术的话,还需要一些懂一些美术工具,例如3dmax,Maya等,ps会的话更好。
3.具体工作
个人先按自己的经验分一下游戏前端的工种(同行请轻拍):引擎程序,游戏底层程序,战斗程序,上层逻辑程序;
引擎程序:主要有3大主要业务:渲染,物理,动画。几个分支业务:音效,地形等……例如渲染来说,从像素开始,向量,矩阵,导入模型,摄像机各种矩阵计算(旋转,位移,缩放),各种模型填充方式,材质,光照模型等等。——这一部分的工作大部分都被商业引擎做完了,少数大厂会养一些大牛来维护自研引擎。


左图是你眼中的游戏;右图是引擎程序眼中的游戏;
游戏底层程序:具体业务具体办——例如实现前端数据的存储,需要研究xml,binary,excel表等东西怎么读,怎么写(核心3~5千行),读写工具最好自动生成(代码生成代码);例如实现与服务器通信的逻辑,需要知道TCP/IP,协议最好自动化生成(代码生成代码),怎么加密解密等(核心3~5千行);例如实现资源打包,需要思考怎么压缩资源,怎么解压资源,怎么从服务器下载资源,存放在哪里等(核心3千行)。——一般是主程做这些工作。


看见右下角的24%(7103.3kb/40759.0kb)没有?资源的打包,压缩,下载,存储,以及版本管理,可能就是一位底层程序大叔好几个月的心血。
战斗程序:和策划讨论好需求后,写角色的身体控制,特效控制,动作控制,封装出技能,然后实现AI;然后从角色派生出主角,NPC,怪物,宠物以及各种小物件等东西,然后写一下摄像机的镜头控制(共3~8万行)。当然,最好写一些编辑器让策划去使用,或者指定好表格结构告诉策划怎么配置,以达到他们的需求。——一般是核心元老程序做这些工作。


流畅的动作,顺滑的操作,这样的高水准战斗控制没有一位战斗程序大牛是不可想象的。
上层逻辑程序:与策划讨论需求,确定需求后消化之,然后确定表格结构,确定数据存储结构,确定网络协议,用已经写好的工具生成一些基础代码,然后就是编码实现各种逻辑(普通功能3-5千行),再把相关的UI的按键,效果写完(普通功能1-2千行)。例如实现一个铁匠铺,定好哪些是材料(铁锭),哪些是产品(铁锤),然后按什么逻辑从材料到产品,向服务器要哪些数据并告诉它存哪些东西,最后把UI的按钮以及效果写完。——界面可能改动量非常大,仔细认真的工作态度很重要。


国内大多数游戏,尤其是策略型网页游戏,都有着复杂的游戏界面,像这样一个繁杂的界面,玩起来觉得容易,但是做起来是不简单的。
以上工作统称为游戏前端,仅是大型网络游戏的1/2的工作量,除此以外还有一半是后端程序员,后端本人不熟,还是让有经验的同学来回答吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-26 02:47 , Processed in 0.117623 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表