我只就大标题回答下具体怎么做吧。
题主现在高二了,如果是想做游戏程序,那么得把数学和英语这两块学好,前者是由于游戏开发会涉及到几何、概率、算法逻辑等相关的数学知识,后者是因为一些优质的文献资料、文档往往要求开发者具有较强的英语阅读能力。
关于编程语言,既然题主说有一定C#基础了,那么就继续深入C#吧。如果想对C#的基础查漏补缺,我推荐《C#图解教程》,这本书内容不算多,而且有大量的图例,看到18章左右就足够了,进阶可以看看《CLR via C#》。
然后你得选择一个游戏引擎,C#的最佳拍档肯定Unity无疑了,学习Unity最开始你可以跟着官方的教程走,选一款你感兴趣的demo项目加入,和项目里的其他人一起学习,跟着教程一步步实现,在这个过程中熟悉Unity的架构、功能模块使用。你可以尝试往官方demo加入一些自己的想法,然后分享给教程里的其他人,或者尝试在学习过程中回答其他人的一些疑问。 这样一步步下来我觉得最多两三周你就对Unity的基本使用比较熟练了,你就可以选择一些感兴趣的方向进行深入。
另外学习游戏程序开发的步骤主要就是:
1.确定学习该技术的目的。
2.了解这门技术背后的原理,以及它主要是用来解决什么问题。
3.尝试自己去实现一些原理,或者阅读源码,加深理解。
4.把这技术运用到自己的项目中。
5.总结,下次遇到类似的问题举一反三。
比如具体到学习AI的设计与实现:
1. 我开发了一个RPG游戏,我想赋予里面的怪物不同的行为。
2. 了解什么是状态机,状态机解决了什么问题;了解什么是行为树,行为树又解决了哪些状态机不能解决的问题;AI主流的寻路算法有哪些,Dijkstra算法是啥,为什么比BFS、DFS暴力寻路块,A* 寻路呢?
3.尝试用代码实现一个简单的状态机,实现一些寻路算法。
4.把实现的东西放到自己的项目里,或者用官方提供的解决方案去实现AI。
5.用博客或者笔记软件之类的记录下学习的难点、知识点和一些经验教训。
这是我个人的学习习惯,你也可以按照你自己的爱好来。反正做游戏程序,重要的就是多思考、多动手、多总结。
最后,附一位大佬整理的游戏程序员学习路线,你可以尝试选择一条路线循序渐进,加油。