本文旨在使用Unity3D和TensorFlow来教AI怎样玩一个简单的游戏:把球投进篮筐。
游戏介绍
我们说的这个游戏里玩家只有一个主要目标:把球投进篮筐里。听起来貌似不难,但当你血液上涌、心跳加速、观众们呐喊时,嗯,想投进还是挺困难的。这是不是北美的经典游戏——篮球?不是,没听说过。我说的是Midway出品的经典街机游戏NBAJam。
如果你玩过NBAJam或任何受到它启发的游戏(包括真实世界中的NBA大联盟,我记得应该是在NBAJam之后诞生的),那你肯定知道从玩家的角度来看,投篮的原理是非常简单的。只需按住投球键,然后在正确的时机松开即可。但你有没有想过,从游戏的角度来看,投篮的过程是什么?球的弧线怎样确定?投球的力度多大?计算机怎样知道投球的角度?
聪明并且喜欢数学的你肯定能用纸笔得到答案,但笔者八年级的代数不及格……所以这种“聪明人”的答案就免了吧。我需要用更难的办法解决。
我不想用简单、快捷、有效的方式,用数学解决投篮的问题,而是想学一些简单的TensorFlow,然后试着投篮就好了。
让我们开始吧!
我们需要一堆东西来完成这个项目。
Unity模拟篮球和物理运动;
Node.js和TensorFlow.js用于训练模型;
TensorFlowSharp用于将模型通过ML-Agentsasset包集成到Unity中;
tsjs-converter(