第二人生客户端程序, 第一部分: 探索第二人生

来源:互联网 发布:windows 系统修复 编辑:程序博客网 时间:2024/04/29 15:37

级别: 中级
Peter Seebach (dw@seebs.net), 自由作家
原文: Second Life client, Part 1: Hacking Second Life
译: 赵珂 cn.zhaoke.com
http://blog.zhaoke.com/101.html

2007年4月2日

Linden实验室开发的”第二人生“开源版浏览器为”闭源”和”开源”两种开发模式的比较提供了一个很难得的机会. 本系列文章的第一篇主要介绍了这两种开发模式的不同, 以及如何建立您自己的开发环境.

第二人生是一个由客户端软件和托管服务器联合组成的虚拟世界. 它有点类似于”大型多用户”在线游戏(MMOs), 但它却有着与众不同的质量, 而且所有的内容都几乎由用户提供. 另外Linden实验室最近发布了客户端的开源版本. 这太不寻常了, 在商业MMO历史中是从来没有的. 开源版本的客户端选择了GPL 2版本, 无疑属于FLOSS(自由/开放源码)软件.

本文主要介绍了客户端(或”浏览器”, Linden术语)程序, 探索开发环境, 文档等更多的地方. 开发人员使用的开源开发环境可能跟商业环境有所不同, 而这个项目提供了探索折衷办法的机会. 当然, 探索程序的最好办法是动手去做, 所以本文将对源代码做少数的修改.

第二人生的系统需求

第二人生游戏客户端程序现在支持Microsoft Windows, Mac OS X和Linux系统(也许将能运行在更多的平台上). 下面将介绍如何在Linux上安装和开发, 最终的客户端程序在交叉编译后将能运行在于其它的系统平台. 运行客户端程序, 你的系统需要相应的3D硬件和CPU支持; 当然, 速度越快越好. 对于Linux的安装, 客户端程序需要硬件具有”direct rendering(直接渲染)”功能; 大多的nVidia或者ATI图形卡都提供该功能.

Linden最初在Debian, Fedora Core 4和Knoppix上测试过客户端程序; 我在SUSE 10.1上做过客户端程序测试, 鼓励大家使用自己常用的Linux发行版, 如果你有什么问题, 可以提交到Linden开发人员的支持论坛上(见资源栏目的链接).

现在编译安装第二人生客户端程序并不容易, 然而对于一个软件包曾经关闭然后重新启动来说是正常不过的. 过去安装早期的Mozilla程序就如同恶梦一般, 比较起来, 第二人生客户端程序就如同漫步在公园里的感觉.

第二人生客户端程序现在是一个Alpha版本, 包含了许多更新. 你可以在第二人生Wiki的”编译浏览器(Linux)“页面找到最新的软件包和安装指导.

安装指导提示编译时间大概在”数个小时”. 我在多个CPU和不同的Linux平台下编译了数次, 编译时间的范围在1个小时20分钟到仅仅25分钟 — 硬件没有任何问题. 下面是我遇到的一些有趣的事情:

.依赖旧的软件包. 客户端不支持gcc4, 你需要使用gcc 3.4.
.使用商业软件包如fmod声音工具包; 它是”免费的”, 不过是闭源软件. 类似的, 客户端程序最初只能使用Kakadu JPEG, 而不是OpenJPEG(参阅资源栏目获得更多信息).
.依赖非标准的软件包如SCons. GNU make的替代程序, 它能够运行在大多的Linux发行版上, 但是很少情况下是缺省安装. SCons是必须要安装的软件包, 在开始编译前, 你必须要准备好.
.特别和额外的安装需求: 比如, ELFIO标准构建过程生成一个静态库, 第二人生浏览器程序需要安装静态库, 而且还需要xmlrpc-epi和专门的补丁程序.
冲突: 说到xmlrpc-epi, 它与xmlrpc-c发生冲突. 虽然很难说是客户端的错误, 加速3D图形卡驱动程序会阻止OpenGL程序的编译, 这样会导致一些重复的工作.

如果你过去常使用开源开发环境, 商业的构建过程似乎是十分糟糕的. 为什么存在这样的依赖性? 为什么在开始使用软件之前我需要建立这些的环境?

部分问题是(对于商业程序来说是这样的)假设你只想在已符合编译条件的机器上安装浏览器程序. 当你已经控制了开发系统, 你将很容易确保每一个开发工作站或者编译机器提供你需要所有的库. 第一次编译OpenGL客户端程序会占用你很多的时间.

你需要手工建立整个环境, 这将会耽误你的工作时间. 许多Linux系统自身不提供本地补丁和软件程序, 因此你需要做大量的编译工作, 甚至在第二人生代码编译之前, 你需要确保每个相互依赖的软件能够独立地运行. 在开源项目当中, 这些工作是司空见惯的; 但是不同地方是这里没有”配 

原创粉丝点击