游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2414|回复: 2

MMO编程杂谈一:建立可行和简易理念

[复制链接]

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2008-1-11 16:46:00 | 显示全部楼层 |阅读模式
认识我的朋友,都知道我在年底已经完成了服务器核心部分,目前面向Linux和freebsd的平台移植性为20%,面向NT构架移植性为80%。为什么我Linux下是20%,因为TrueLife在系统依赖上有一处败笔:客户端过分依赖操作系统的核心功能。虽然使用OpenGL,但是有许多对操作系统API依赖,使得现在客户端只能面向windows和.net构架的XBox360,惟独服务器可以实现Linux和BSD的跨平台运行。
  
我先做一个简短的引擎结构介绍。服务器分为底层系统层,和逻辑处理部分,底层系统为多线程核心,逻辑处理部分为全脚本式编程,多进程互斥。服务器在底层主要涉及到磁盘IO,内存,网卡IO等等,所以在移植上,那些磁盘,内存,网卡都已经有人做过了,较方便。在客户端上,我本想对PS机进行支持,后来使用FreePascal对ARM进行编译以后,发现许多问题:SDL在PS,以及N64,以及各个平台支持上,远比OpenGL来的有效,可是SDL在3D上没有得到硬件开发商的支持,而客户端重点跑OpenGL,使得我只能能放弃使用SDL为主流的3D接口,另一点,PS3,PSP等平台,关于Free的开发资料甚少,几乎全部是sony自家提供的编译器,使得移植中发现很多困难。
  
另外,我在业内听说Windows已经开始支持虚拟技术,这意味着不久以后MacOS,Linux的应用程序可在Windows上正常运行。当了解以上,再结合现在的现状,我开始放弃客户端对多操作系统的支持,目前只对WindowsX86,X64支持,以及XBOX360。
  
以上为建立最佳可行性的一些感想。接下来说说简易性。
  
当我做了引擎,并且开始自用,开始时,我发现在UltraEdit下编辑代码太麻烦,Pascal代码风格总是长长一段,记忆起来,尤其在编写一动就是几万行脚本的客户端上,非常麻烦。后来,我做了一个IDE,最开始并不能实现语法跟踪和分析,只能在IDE中查找相关的函数,和可使用的类。后来随着不断演进,才慢慢把语法跟踪,分析,EXE,DLL等等过程做完。
  
在做引擎中,总是不断的冒出比之前更好的设想。当更好设想更有价值时,我就推翻之前的方案,或则兼并两者。举个例子,我现在实现了两种客户端的GUI系统,一种为基于图形渲染的GUI,另一种为基于图片绘制的GUI。显然后者在操作上更简易,而性能却不如前者,可是在当今硬件日新月异下,直接基于像素绘制GUI,用起来并不会感到不爽,相反的,没有任何感觉,只感觉GUI更漂亮。活脱一个WindowsXP的GUI翻版,实际上他是基于像素内核而实现的。当然,我是先实现的渲染GUI,然后再实现另一种象素级GUI,他们在编程方式上完成不一样,像素级GUI可以将Firefox,IE引入游戏客户端,甚至Delphi,C++Builder等等编写的应用界面,也引入客户端,而渲染GUI,通盘就一种风格,制作起来比较不那么灵活。
  
另一点是,图形界面对MMO的辅助编程。宜用的最佳方式,就是将复杂的动画配置信息,使用图形辅助工具,来完成它。要不然就专门撰写大量的格式标准文档。我选择使用辅助工具来达到宜用目的。
  
等等,等等,很多地方我都放弃了所谓聪明的做法,重视更加简单,可行有效。
  

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
 楼主| 发表于 2008-1-11 16:48:00 | 显示全部楼层

Re: MMO编程杂谈一:建立可行和简易理念

左边为像素级GUI,右边为图形GUI。

稍后发几张PSP,和XBOX360的照片上来。
sf_2008111164820.jpg

13

主题

46

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2008-4-22 15:32:00 | 显示全部楼层

Re:MMO编程杂谈一:建立可行和简易理念

楼主你真是神仙,都一个人做的么
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 17:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表