网站首页 > 技术文章 正文
很多热爱游戏,有多年游戏经验的程序员们想要加入游戏行业。程序员在玩游戏的时候,可能会发现一个问题,虽然有着几年甚至十年以上的游戏经历,但是也许不了解或者根本不知道一款游戏是怎么做出来的。
Q:游戏程序员有哪些分类?
游戏程序员有明显分类。最简单的分类,就只有客户端与服务端。
游戏客户端开发者应具备初步的图形开发应用能力和代码识别能力,理解图形开发包含的内容。此外,随着发展,了解游戏战斗机制或游戏框架将有助于进入客户端开发的核心圈。
游戏服务端是为客户端服务的,服务的内容诸如向为客户端提供登录,客户端提供资源,保存客户端数据。服务端是一种有针对性的服务程序,是专门为某一客户端设立的程序。
游戏程序员如果细分就很多了: 游戏脚本编程、引擎开发、计算机图形工程师、技术美术、服务器架构工程师、游戏算法工程师等等。
Q:成为一名游戏程序员需要具备哪些编程基础?
在游戏开发中,用到的语言比较多,但各个岗位侧重的方向不同。
- 图形接口语言:OpenGL,DirectX,Shader
- 常见引擎底层语言:C++
- 常用脚本语言:Lua,JS
- 常用服务器开发:C++,JAVA,Python 等都可。
还是建议格外学习 lua 的,因为现在很多游戏,尤其是网游还是需要 lua 的,它非常容易更新、尤其是在苹果平台。更何况 lua 其实很简单,你如果肯花时间集中精力学习,可能只需要花1-2 周就能熟练掌握了。
一般来说你知道什么是热更新、怎么去用热更新、以及会做SDK 的集成就可以了。到时候你参与的项目,不论用哪个,你学起来都不会太难。
游戏公司常用的开发语言:
- 腾讯:C++/C/Python/Go;
- 网易:C++/C/Java/Go/Python;
- 西山居:C++/C;
- 紫龙游戏:C++/C#;
Funplus:C++/Go;- 乐元素:C++/Go;
IGG:C++/C;- 莉莉丝:C++/C/Go/Python;
- 米哈游:C/C++
……
Q:游戏程序员需要学习什么编程知识?
常规情况下,应掌握C++的语言特性、语句、循环、条件、函数、面向对象开发(类的概念)以及范式编程。同时,熟悉至少一种C++开发环境(如Visual Studio或Linux),并了解异常处理、错误处理和调试器的使用。
对于C++新标准(如C++11、15、20),建议也有所了解,以便在面试中展现自己的深厚底蕴。
首先比较通用的:
- 算法构建与数据结构,游戏业务知识,网络通信,面向对象,计算机操作系统。
- 然后根据各个岗位的侧重:
- 客户端方向要单独学习常用游戏引擎、计算机图形学 。
- 服务端方向需要深入掌握数据库、多线程编程等知识。
Q:游戏程序员如何选择游戏开发平台和编程语言?
以国内现在的环境来看,做手机游戏对就业来说可选择的机会比较多。因为国情的原因,几乎不太可能做主机游戏。主机游戏要在国内过审并上线,太难。所以这类公司会比较少。
目前开发主机游戏的公司大都是做独立游戏的公司。手机游戏这几年发展得很快,学习 iOS 和 Android 这两个平台,对就业的帮助会很大。
做手机游戏的话,现在用得比较多的几个引擎有:Unity3D,虚幻,Cocos Creator,这几个都是用 C++/C# + Lua 来进行开发的。还有用 H5 游戏发布成手机游戏的。
现在用得多的引擎有:LayaAir,白鹭,Cocos Creator,用的语言主要是 TypeScript、ActionScript。除了这几个引擎和语言,还需要了解下 OC/Swift(iOS),Java(Android)。
Q:独立游戏开发者和游戏行业从业人员有哪些区别?如果是独立游戏开发者还需要学习什么?
独立游戏开发者对技术要求会更全一些。因为一般独立游戏的开发团队,人员都比较少,常需要一人身兼多职,就需要他什么都懂一些。
但技能的深度上,还是游戏行业的人员会要求高一些,细分的职业,就是要在某个技术上深入的挖掘,做到极致。
独立游戏开发者,除了要学习编程的技术,还要对游戏有自己的理解,对设计游戏也要有一定的认识。还需要有创造力,独立游戏里的独立,指的就是有创新,做与传统游戏不一样的游戏的含义的。
Q:如果对FPS游戏开发特别感兴趣,相较于Unity,是否更适合学习Unreal Engine 5?
在PC平台上,FPS游戏确实Unity使用较少,而Unreal Engine 5更适合。因为UE5 的工具和设计理念更适合精致小场景的快速开发,但对于大世界方向的游戏制作存在局限性。而 Unity在扩充性和支持开放世界开发方面表现更好。
另外一个关键点是游戏平台。Unity因其较好的扩展性和成本控制优势,更适合移动游戏开发。而 Unreal Engine 在 PC 和主机上的表现更佳,尤其比较适合车枪球游戏。
总而言之,两种引擎各有侧重点。对新同学来说,不论学哪个都 OK,本质上都是在学习完整的开发流程、积累经验。
在掌握了其中一个引擎后,之后再转向学习另一个,都会非常简单。因此,关键是沉下心来学好一款游戏开发工具,并掌握游戏开发的整体流程和理念。
猜你喜欢
- 2025-03-26 CocosCreator 中使用proto(2022版)
- 2025-03-26 如何用 CocosCreator 对接抖音小游戏的侧边栏复访
- 2025-03-26 Cocos Creator 花了一个月入门经历
- 2025-03-26 cocos creator开发遇到的困惑(cocoscreator有前景吗)
- 2025-03-26 当下弹幕互动游戏源码开发教程及功能逻辑分析
- 2025-03-26 Cocos 高级架构师经典面试题,你懂几道?
- 2025-03-26 Cocos与声网合作为游戏开发者提供实时开黑能力
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)