先回答第一个问题吧,我没有参加过信息竞赛,也不了解信息竞赛具体是如何考验编程能力的,但就我个人很直觉性认知,游戏开发中对编程能力的需求和信息竞赛是不相同的,如果这点不对请指正。你所说的gameplay,就是指游戏玩法的开发,那何为游戏玩法呢?大到背包系统,战斗系统,天赋系统,Roguelike地图生成,小到一个载具的操作手感,一个技能的展现逻辑等等,这些都是Gameplay程序员需要完成的。而在我看来,对于这些需求,不仅需要基础,也就是所谓编程语言,数据结构,算法等等,更需要的是解决问题的能力以及大量的经验。
解决问题的能力其实就是,你有多大能力能很好把需求实现。我可以用一个例子给你解释一下,例如A和B两个人,拥有相同的基础和经历(空白的经历),然后现在两者被要求实现一个简单平台跳跃的游戏,A毫无头绪,并不知道怎么处理,但是B琢磨之后发现了这种游戏的一些本质,例如他明白,平台跳跃就是控制一个图片的位移而已,所以可以先实现一个输入和位移逻辑绑定的脚本,然后再往后思考。显然B比A更具有解决问题的能力,因为他能找到需求的实现点在哪,当然,这种能力在程序开发的任何领域都是极为重要的。
但事实上,有些人第一次接触自己完全不熟悉的领域时,都会像A一样,不知所措,毫无头绪。所以这也就是我所认为大量的经验同样重要,说直白点就是多去做项目或者看源码,你才会渐渐明白原来一些类型的游戏大概是怎么实现的,有哪些子系统,什么类型的游戏要自己实现物理,面向对象编程是否真是灵丹妙药,会不会让项目结构变得很繁重呢?这些都是你得深入开发当中,才能发现的。
至于第二个问题,你的措辞好像有误,不是“是否可以”,应该是“是否需要”吧。而我的回答是,你才高一,还没有任何游戏开发经验,想这些太早了。