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。坦克移动时,周围有障碍物时,很难转弯,屡思不得其解。后来突然搞懂了。

  1. XNA精灵移动都是按像素计算的,两个挨着的精灵,即使差一像素,也会被卡住
  2. 后来,就在移动时,做了些手脚,让坦克移动时,停止按键时,做一个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

  1. XNA很简陋,完成同样的工作,所写代码量远远高于Unity3D
  2. Unity3D跨平台支持性超强,其他游戏引擎很难望其项背,现在Editor连Linux都支持了,这点XNA要差很多
  3. Unity3D更新更快,XNA微软自己都不更新了,不过MonoGame开源项目依旧在继续
  4. 另外,很多VR/AR sdk都支持Unity3D

PS

一些资源分享

[Unity3D] 和Unity3D的一些事的更多相关文章

  1. 【Unity3D】Unity3D之 注册表动态存取游戏存档——PlayerPrefs类

    [Unity3D]Unity3D之 注册表动态存取游戏存档--PlayerPrefs类 1.Unity3D提供了一个用于本地持久化保存与读取的类--PlayerPrefs.工作原理非常简单,以键值对的 ...

  2. 【Unity3D】Unity3D之 Resources.Load 动态加载资源

    [Unity3D]Unity3D之 Resources.Load 动态加载资源 1.Resources.Load:使用这种方式加载资源,首先需要下Asset目录下创建一个名为Resources的文件夹 ...

  3. 【Unity3D】Unity3D开发《我的世界》之三、创建一个Chunk

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_03.html 一.引入int类型的Vector3 我们都知道Unity3D里Vec ...

  4. 跟我从零基础学习Unity3D开发--Unity3D开发必备神器(Visual Studio Tools for Unity)

    开发Unity3D程序你用的什么IDE呢? 1.MonoDevelop 2.VS 可能你的回答是这样的,我用的vs写代码MonoDevelop来做调试.这时有同学就会反驳了傻X不知道用unityVS吗 ...

  5. 【和我一起学习Unity3D】Unity3D的坐标控制

    坐标这个东西,在Unity3D里面是分为几个类的,各自是Vector2,Vector3.Vector4:含义各自是:二维坐标系,三维坐标系,四维坐标系.一般做游戏呢,用到的最多的就是Vector3了. ...

  6. 【Unity3D】Unity3D开发《我的世界》之七、番外篇

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_07.html 本来上一篇就结束了,但是有小伙伴私信我觉得还差了很多重要的内容,比如 ...

  7. 【Unity3D】Unity3D开发《我的世界》之六、创建地形(视频 + 源码)

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_06.html 一.引入LibNoise 虽然Unity3D里也有一个Mathf.P ...

  8. 【Unity3D】Unity3D开发《我的世界》之五、创建无限地形(视频)

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_05.html 一.导入Unity3D自带的第一人称角色控制器 直接导入就行,我们用 ...

  9. 【Unity3D】Unity3D开发《我的世界》之二、创建一个立方体

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_02.html 这一篇的内容比较简单,因为所有理论内容都在上一篇中讲到了.但有两点需 ...

随机推荐

  1. 在Seismic.NET下用最少的语句写出一个剖面显示程序

    用Seismic.NET开发地震剖面显示程序可以节省大量的时间,下面的代码展开了如何用最少的代码显示一个SEGY文件. // 用一行语句把 reader, pipeline, view 和 plot ...

  2. ADB server didn't ACK 解决方法

    在安卓开发的过程中 连接真机的时候 连接不上 提示 The connection to adb is down, and a severe error has occured.[2015-01-22 ...

  3. Emacs常用命令汇总

    注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shift,在键盘上通常是Shift键,也就是 C Control ...

  4. 使用CocoaPods管理第三方开源类库

    iOS开发中经常会用到许多第三方开源类库,比如AFNetworking.FMDB.JSONKit等等,使用CocoaPods这个工具就能很方便得对工程中用到的类库进行管理,包括自动下载配置以及更新. ...

  5. json深度详解及org.json库

    了解json  (Javascript Object Notation) 网站:http://json.org/ english JSON (JavaScript Object Notation) i ...

  6. animation of android (3)

    视图动画,只有view可以使用. 在android3.0以后,属性动画. ValueAnimation 可以记录属性变化的过程,所以他的对象是任何object. 所以ValueAnimation 的真 ...

  7. ubuntu14.04下nodejs + npm + bower的安装、调试和部署

      1. 简介 本文介绍ubuntu14.04下nodejs+npm+bower的安装.调试和部署 参考文档 https://docs.npmjs.com/getting-started https: ...

  8. mybatis java.lang.UnsupportedOperationException

    mybatis抛出下面的异常: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exc ...

  9. OS X下安装Redis及配置开机启动

    1.下载redis源码包redis-3.0.5.tar(此步骤可在图形界面下操作) 2.解压源码包 tar zxvf redis-3.0.5.tar 3.编译源码并安装 #进入源码目录 cd redi ...

  10. html列表

    有序列表 <ol type="A", start="C"> <!--ordered list--> <li>第一项</ ...