Before
一开始知道Unty3D引擎,貌似还是大一或者大二,那时Unity3D还是收费软件,不像现在Personal Version免费。
XNA|MonoGame
再后来,在Coursera上发现一门课Beginning Game Programming with C#,科罗拉多大学的课,总共12周,不过,最终却没拿到认证,因为中间有段时间公司安排出差。时间上错过了,不过,我还是完成了这门课,虽然时间已经晚了,Cousera和科罗拉多大学不会在颁发认证,但我还是看完了所有视频课程、完成了所有Assignments。
和别人不一样,我的开发环境是Linux+MonoDevelop+MonoGame,而不是Dr Tim用的Windows+VS2013+XNA,所以当时遇到了一些发生在Linux环境下的小问题,多数都解决了,不过也有一些问题仍然无解,比如MonoGame的声音。
课程完成之后,就准备做两款小游戏试试,其中,往坦克大战Clone上投入了不少时间,游戏的核心基本已经做出来了。
还记得当时遇到的一个非常有趣的Bug。坦克移动时,周围有障碍物时,很难转弯,屡思不得其解。后来突然搞懂了。
- XNA精灵移动都是按像素计算的,两个挨着的精灵,即使差一像素,也会被卡住
- 后来,就在移动时,做了些手脚,让坦克移动时,停止按键时,做一个5像素的取舍,避免出现就差一像素转弯的情况
最后,这个问题就解决了。
当时的Mind Map:
详细的介绍 Tank War
Unity3D
结果,Unity3D免费了。虚幻引擎4也免费了。我很快转到了Unity3D下,还获得了一份Michagen State University在Cousera上Introduction to Game Development的课程认证
还做了一个3D扫雷的Demo
现在,正在筹划着正式Release一款小游戏,详细介绍暂时保密。 原则上来讲,我也是一个Indie Game Developer & Designer了。 ^^
后记
像在Begining Game Programming With C#里Dr Tim里讲的,
年轻时候,学吉他是用的旧的破木吉他学的。后来,换了更好的吉他,我就不会弹了吗?不是的。
他是借此来阐述自己开设这门c#和xna课程的理由,毕竟微软自己都不在支持XNA了。也正如Dr Tim所说,确实,从他的课里学到了很多C#及游戏引擎的知识,在Unity3D里也是无缝对接。
另外,对比一下XNA和Unity3D
- XNA很简陋,完成同样的工作,所写代码量远远高于Unity3D
- Unity3D跨平台支持性超强,其他游戏引擎很难望其项背,现在Editor连Linux都支持了,这点XNA要差很多
- Unity3D更新更快,XNA微软自己都不更新了,不过MonoGame开源项目依旧在继续
- 另外,很多VR/AR sdk都支持Unity3D
PS
一些资源分享