2008年6月21日星期六

将问鼎移植到Linux下

概述

本文介绍了将版本移植到Linux下的一些工作。

背景

我首先将版本移植到了MacOS下,然后再移植到了Linux下(基于X-Windows工作)。相比之下,移植到Linux下的工作要容易一些,这并不是说移植到Linux下这件事情本身更简单,而是MacOS也使用gcc、类Unix的环境,所以在完成这个移植工作以后,再向Linux下移植所需的工作则少了很多。

过程

基本上,主要是遵循以下几步:
  1. 编译
  2. 链接
  3. 完成渲染功能
  4. 增加消息处理
  5. 修订bugs

头两步几乎毫无阻碍,除了在使用configure配置CEGUI时遇到了一些麻烦。最终,因为CEGUI采用了3种工程文件 - VC Project、XCode Project、automake - 让我感到厌倦(我不希望每次修改工程都要让大家同时修改3个工程文件),我干掉了后面两种,增加了手工式的makefile。当然,按照陈拓琳的看法,最终使用premake类的工具统一工程文件可能更好。

渲染这一步我遇到一点小麻烦,程序运行起来以后没有绘制出任何内容,不过很走运,我们很快发现是因为创建的X-Window没有active的缘故,当activate这个窗口以后,顺利的得到的预期的画面。

增加消息处理这一步我根据一个简单的X Windows application修改了一下,因为游戏所需要的输入非常简单,这一步没有问题。

同理,最后一步没有任何技术含量。

总结


一个不错的设计
因为make过程中我将不同平台的中间文件(.o、.a)分开存放,这样可以用一个view同时build基于MacOS和Linux的工程,减少了view的数量。

通过远程访问X-Server性能有点糟糕
调试的时候我使用安装在MacBook下的X-Server,速度不佳,效果不好。问题并不仅仅在这里,而是在帧数如此至少的情况下,对播放录像可能会造成一些问题。设计录像功能时需要考虑这点。

没有评论:

发表评论