本人是还差半年就拥有了十年编程经验的菜鸡, 目前即将进入业内工作, 在某游戏工作室实习过.
如果你想做游戏:
- 直接上手游戏引擎. 引擎要求用 C# 你就学 C#, 引擎用 Lua 你就学 Lua.
- 以独立做出一个完整的游戏为评判标准. 比如 LudumDare 那种小游戏, gameplay, juciness, 美术资源等等全部都要有.
- 以此深入往下做更多的尝试和探索, 渲染特效怎么写, 怎么 profile, 怎么优化, 怎么编写和维护复杂的游戏机制, 怎么提高开发效率, 怎么和别人沟通等.
如果你想做程序员:
- 建议参加 NOIP 试试水. 如果你自己感觉打比赛不快乐, 就不要一条路走到黑.
- 算法竞赛的 C++ 并不是完整的 C++ (例如 template 完全是当做 generic 用的). 学习语言主要是要熟练掌握各种基本概念, 类型怎么定义和使用, 变量怎么定义使用, 控制流怎么写, 生命周期怎么管理, 元编程技巧等. 如果打比赛建议起手 C++. 如果不打建议 Lua 入门 C / C# / Java 进阶最后再学 C++.
- 不论是否参赛, 从最偏向硬件的到计算机体系结构, 到抽象的算法和线性代数全部过一遍. 最好找到它们在游戏编程中的应用以增强理解. 自己实现一些效果, 或者一些 benchmark demo, 甚至可以逆向一些游戏做一些 mod.
- 和上一条同时进行, 学习传统 OOD 套路, 学习软件工程和测试方法, 多读些书. 这些实践出真知的东西在脱离生产环境的情况下学习效率其实挺低的, 通常知其然不知其所以然.....
- 以上两条以大学毕业生或能找到工作为评判标准. 建议多勾搭一些业内人士问问.. 或者在某个游戏圈子里混出点名堂自然就有人理了.
- 千万不要去深究各种库的使用方法, 包括标准库. 相当多的同学说"我学java"结果学的是 java + spring + mybatis 被带偏跑到网页开发去了. 说"学C++要学Qt", "学C#要学 WinForm", 被带偏到桌面去了. 搞这些不如直接上游戏引擎.
- 游戏开发甚至不一定会碰到游戏引擎, 所以你也不一定需要学习(也更方便转行(手动狗头)). 比如我们 C++ 写的服务器的就是一个普通的服务器, UDP 发包收包这样.... 像什么是游戏循环啊, 一张图是怎么画到屏幕上的啊, 也不需要特别关注.
无人懂我 1年前
谢谢
发布