我作为一个游戏程序员在这个行业干了6年,其实你真正要会的东西是C++, 另外你还要对计算机的内存结构,数据编排管理方式,也就是我们说的数据结构掌握透彻。
Android只是一个程序的载体平台,你将来还有可能为iphone开发,所以这种东西你用到的时候通过sdk文档去了解一下它的规则就可以了。
cocos2dx你可以通过一个实例项目去掌握它,用它来做一块你进入这个行业的敲门砖还是可以的。毕竟现在用这个的公司是非常多,都想招个熟练工嘛。
粒子系统和OpenGL. 等你学了cocos2dx之后,如果对他背后的东西感兴趣可以研究一下,有百益而无一害。
数据库无非就是一些接口和查询语句,对于一个程序员来说,应该要学。
游戏脚本你可以学一个,比如lua, 不要纠结它的语法和形式,要思考为什么用脚本,用脚本有什么好处。大部分游戏引擎都有自己的脚本语言,你能理解他存在的意义遇到任何脚本语言就都没有问题了。
物理引擎我建议你也学一下,虽然我见过的很多游戏程序员根本不懂物理引擎,也能做出很优秀的游戏。但是当你深入研究了物理引擎,你就会觉得你游戏程序员的路还很长,就不会因此而满足现状。
最后给你一点忠告,学好数据结构很重要,做游戏的都说游戏的灵魂是程序,而程序的灵魂是数据!能创造出完美灵魂的人才是一个完美的游戏程序员。
学习路线可以从 编辑器基础——C#基础——unity3d案例——C#进阶——网上视频以及公开课学习——游戏框架——计算机图形学
更深入的可以到这边参观学习的