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. Fix Internet Explorer Crashes with SharePoint 2013 Online Presence Indicators

    IE中,只要是鼠标浮动到人名字上面的状态的时候,这个状态是与Lync相连接的,IE就会出现停止工作. 以下是解决方法. Until the other day when I figured this ...

  2. onWindowFocusChanged

    这个onWindowFocusChanged指的是这个Activity得到或者失去焦点的时候 就会call. 也就是说 如果你想要做一个Activity一加载完毕,就触发什么的话 完全可以用这个!!! ...

  3. HDFS主要特性和体系结构

    引言 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统 ...

  4. IOS 欢迎页(UIScrollView,UIPageControl)

    本文介绍了app欢迎页的简单实现.只有第一次运行程序时才说会出现,其余时间不会出现.下面是效果图. 代码如下:(如有不明白的可以评论我,我会详细讲解) // // ViewController.m / ...

  5. iOS中发送HTTP请求的方案

    在iOS中,常见的发送HTTP请求的方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最经典的一种方案 NSURLSession:功能比NSURLConnection更加强大, ...

  6. SQL2014内存表性能之内存中 OLTP 的性能改进测试

    先贴1个例子,后续补充完整的测试例子.... 1.用MSDN例子测试一下 use master go --1.先创建包含内存优化文件组的数据库 CREATE DATABASE imoltp2 ON P ...

  7. 一个完整的WSDL文档及各标签详解

    <?xml version="1.0" encoding="UTF8" ?> <wsdl:definitions targetNamespac ...

  8. C语言的函数

    "函数"在英文的翻译是"function",无论在自然科学还是计算机科学都是这个词,而"function"的本意是"功能" ...

  9. OpenGL 学习笔记 01 环境配置

    以下教程仅适用于Mac下的Xcode编程环境!其他的我也不会搞. 推荐教程:opengl-tutorial  本项目Github网址       OpenGL太可怕了...必需得把学的记下来,不然绝壁 ...

  10. 【转载】kafka的工作原理

    http://www.ibm.com/developerworks/cn/opensource/os-cn-kafka/index.html 消息队列 消息队列技术是分布式应用间交换信息的一种技术.消 ...