2005年4月23日星期六

软件大赛

去年 12 月,决定参加学校的软件设计大赛,今天初赛终于结束了。一个简单的 3D 引擎自然没有奢望要进复赛,但在这整个大赛的过程中思考了很多。

游戏开发。当初决定做的并不是 3D 引擎,而是用 DirectX 做一个 3D 的记事本,后来才转而去做 C# + Managed DirectX 的 3D 游戏引擎框架。一个 3D 游戏需要的是大量的综合的技术,你需要对图形学有很深的了解,对图形硬件有系统的知识,你需要对操作系统的相关接口比较熟悉,你还要考虑声音、用户输入、网络通讯、美工、兼容性……这一切不是一个人能做得完的,必须选择其中 1、2 个深入地研究。而对于我来说,更擅长的还是抽象、对象、算法和逻辑,那么,是不是说游戏开发对我来说并不合适呢?是不是说,如果我决定在图形这方面更深入地了解下去,CAD 对我会是更好的选择呢?

.NET 的位置。4 月份的《程序员》在很大程度上改变了我对 .NET 和 Java 以及开源的态度,那时也正是我写引擎进入最关键阶段的时候。建议有机会的话还是去看看那篇《微软:令专家失望的 .NET》。虽然我并没有因为这篇文章改变多少对微软软件的信赖,但着实让我对开源有了一些更多的认识。这次软件大赛结束后,遇到一位已经毕业的师兄,听他说对 J2EE 有些专,也就和他讨论了一些 Java 和开源。他说,开源最大的优势在于这个群体的庞大,它的庞大使它能满足任何的市场需求。大型服务器需要相关软件,就有人做服务器系统;软件开发需要相关软件,就有人做 IDE,做插件;甚至他们电信要软件,也可以在网上找到相关的软件,改一下拿来用。这些,微软一个公司是做不到的。微软更关心中小型企业的市场,如果你现在要在服务器上传输一个 40G 的文件,你能叫微软来帮你解决么?总而言之,微软是做出了软件让大家来适应它,开源是大家提出要求,它来实现。

我今后要走的路。真是感到矛盾,一方面,我对游戏、图形编程很感兴趣,用手指创造动画特效的感觉是无可替代的,另一方面,我又对更加底层、抽象的编程绝对热爱,那是一种数学的美,智慧的美,成就的美。当然,现在决定以后要专攻具体哪方面的研究似乎还为时太早,就像 Alex 说的,本科应该是广阔视野,打基础的时间。也许,这种矛盾也是一种好的现象,至少,它表明我对计算机仍然具有热情,和 10 年前相比只增无减的热请吧。

另外,我觉得我是一个这样的人,平时没有编程“任务”的时候,真的是一点程序都不想去碰,那种“又要动脑筋苦苦思索”的潜意识会阻止我去打开 Visual Studio。但一旦我不得不动手开始编一个程序,一旦我已经陷入这个程序了,那我会不吃不喝不睡不休得完成它。似乎这样对身体有很大的坏处,但,我有什么办法呢?江山易改,本性难移,青山不改,绿水长流。

没有评论: