平台无关的游戏引擎
一直以来,我们的新引擎一直以跨平台为设计目标。这倒不是说,我们有多重视非 Windows 平台的用户。只是我觉得,一个好的设计一定是很容易做到平台无关的。对于做跨平台开发这件事情,公司里支持的人寥寥。光老丁都几次三番劝我不要把精力花在无谓的地方。
唉,怎么说呢。写了这么多年程序,我一直把编写代码和设计软件作为一件很有趣的事情在做。所以我并不认为我做的一切是一种工作,它是我的玩具。早就不需要担心后半辈子的生活问题,所以没有人可以阻止我做想做的事情,更何况我认为良好的设计造就优秀的产品。今天看似多花的精力,日后慢慢的会给出回报。
回想当年做西游的客户端,我固执的把内存的占用量控制在 64M 左右,让低配置的机器也可以流畅的运行。为了达到这一点,当年多花了好多的精力。做内存中的精灵压缩,做地图的动态加载,做图象数据的 cache 和主动交换,改动许多我认为会更多占用内存的数据结构,阻止美术的一切可能过于消耗内存的设计。
这些在我离开西游的开发后的这么多年里,配合硬件的发展,往日做的那些,得以让后来的不断扩展玩法和美术资源可以稳定的进行。后期的开发维护人员可以用足够的东西来“浪费”。前期的种种约束和正是为了后期的无拘束扩展,直到这些项目顺利的走完生命期。
我希望几年之后,依旧有人感谢我当下做过的努力。
这两个月从对 X 的一无所知,到略有所成,还是颇花了点精力的。google 上关于 X 系统的编程相比 Windows 少的可怜,更别说我在 glx 上遇到的问题,那些更是很难直接获得答案。
一直以来一个人摸黑在 X Window 上摸黑写了好多代码,昨天同事写的另一部分关于 3d 方面的一些代码完成,我惶恐不安的放到 freebsd 上运行。虽然理性上我相信我们的跨平台架构是没有问题的,但是感情上还是不太相信一点问题都没有。
结果,除了一些文件名上的小问题之外(*nix 上对文件名是大小写敏感的,一开始没有重视),居然一次运行通过。看到 X 上显示的 3d 画面,格外欣喜 :D 这种感觉大部分来自于我们的设计小小的被检验了一次。因为另外的程序员在写他的代码的时候,丝毫不用考虑跨平台的问题,仅仅只是在遵循我们一起指定的一些标准罢了。
这次还是二进制跨平台的。
后来试了一下 openGL 的远程渲染,我在 Windows 上装了 XMing ,昨天晚上第一次用。glx 方面还是出了一点小问题。XMing 的 server 只支持 glx 1.2 ,而我起先是用 glx 1.3 做的,这让我花了点时间改过来,并且找到了另一些小问题,最后也顺利通过运行了。虽然这种远程渲染对 3d 游戏这样交互性和性能要求比较高的应用程序来说意义不大,但当个玩具玩玩还是很有趣的。特别是远程使用 DDD 调试的感觉很不错,这样就可以换掉难用的 insight 了。
ps. 如果有 X Window 或是 Mac OSX 的编程达人看到我这篇 Blog ,可否留个联系方式,大家以后多多交流 :D
Comments
Posted by: 正逍遥0716 | (45) July 21, 2017 08:44 PM
Posted by: 福利工口姬 | (44) April 16, 2014 04:36 PM
Posted by: hlhboy@hotmail.com | (43) September 7, 2007 01:46 PM
Posted by: microcwj | (42) July 13, 2007 11:49 AM
Posted by: Anonymous | (41) July 10, 2007 11:25 PM
Posted by: jjgod | (40) July 3, 2007 01:17 PM
Posted by: Anonymous | (39) July 1, 2007 01:05 PM
Posted by: Anonymous | (38) July 1, 2007 01:03 PM
Posted by: hiyangxi | (37) June 30, 2007 07:39 AM
Posted by: zetorchen | (36) June 29, 2007 09:20 AM
Posted by: Anonymous | (35) June 28, 2007 11:22 PM
Posted by: Shawn the R0ck | (34) June 25, 2007 12:18 PM
Posted by: longtrue | (33) June 23, 2007 09:17 AM
Posted by: yeka | (32) June 23, 2007 07:47 AM
Posted by: rockcarry | (31) June 22, 2007 08:43 PM
Posted by: rockcarry | (30) June 22, 2007 08:34 PM
Posted by: rockcarry | (29) June 22, 2007 08:18 PM
Posted by: 红色警戒 | (28) June 22, 2007 06:27 PM
Posted by: Cloud | (27) June 22, 2007 04:08 PM
Posted by: ly | (26) June 22, 2007 03:41 PM
Posted by: rockcarry | (25) June 22, 2007 02:18 PM
Posted by: rockcarry | (24) June 22, 2007 02:13 PM
Posted by: rockcarry | (23) June 22, 2007 02:10 PM
Posted by: 红色警戒 | (22) June 22, 2007 02:04 PM
Posted by: Cloud | (21) June 22, 2007 01:16 PM
Posted by: xuying | (20) June 22, 2007 12:39 PM
Posted by: 风姿 | (19) June 22, 2007 11:12 AM
Posted by: ccc | (18) June 22, 2007 09:30 AM
Posted by: cnzhangzhen | (17) June 22, 2007 09:27 AM
Posted by: 天堂的隔壁 | (16) June 22, 2007 08:49 AM
Posted by: 安德尔斯 | (15) June 22, 2007 07:41 AM
Posted by: 安德尔斯 | (14) June 22, 2007 07:40 AM
Posted by: initial-x | (13) June 21, 2007 11:52 PM
Posted by: 红色警戒 | (12) June 21, 2007 10:50 PM
Posted by: tiro | (11) June 21, 2007 09:12 PM
Posted by: Zwinger | (10) June 21, 2007 07:29 PM
Posted by: 小磊子 | (9) June 21, 2007 06:31 PM
Posted by: moonese | (8) June 21, 2007 06:28 PM
Posted by: yuzhong | (7) June 21, 2007 05:54 PM
Posted by: nothanks | (6) June 21, 2007 05:51 PM
Posted by: Cloud | (5) June 21, 2007 05:13 PM
Posted by: 红色警戒 | (4) June 21, 2007 04:41 PM
Posted by: alioxp | (3) June 21, 2007 04:36 PM
Posted by: 顶风作案 | (2) June 21, 2007 03:41 PM
Posted by: 顶风作案 | (1) June 21, 2007 03:40 PM