2007年10月1日星期一

有关LPC

1. 什么是LPC?

也许这不是一个问题,但是看来,它的确是一个需要询问的东西。通过google,我知道:

"LPC is a small, object oriented type C language developed by Lars Pensj? for LP-MUD"

对我而言,LPC更多的是一个专有名词,来給一个语言命名。

总的来说,LPC是一种面向对象的类C语言,具有C的语法,但是数据结构有着比较大的差异,没有指针、没有结构。

2. 我为什么采用它作为服务器端的基础?

这个来源应该说有点诡秘。如果让我重新做一遍选择,我可能、或者说很可能并不采用它。

在2001-2002年这段时间,我比较清闲。因为以前做过文字MUD,觉得驱动LPC语言的MudOS功能比较薄弱,并且设计上有一些令人不满意的地方。于是我花时间重新制作了一个解释器。到后来,当我进入网络游戏领域时,我便采用了它,事实上,采用VM来驱动服务器是我必然的选择(用C++实现的服务器,呃,那会是一场噩梦),问题是我应该选择哪一款VM。

应该说采用目前这个解释器,至少有以下缺点:
  1. 它不够流行,缺乏很多第三方库的支援,了解的人也比较少
  2. 它还不够成熟,因为是自己写的,开发时间有限,所以很多功能有欠缺
  3. 听起来它不是那么威武,不像Java和C井那么让人尊重,这是很重要的一点,因为你不能出去忽悠人 :)
所以如果让我穿越回2004年跨入网络游戏这个领域的时候,我可能会采用Java。但是现在,我只有义无反顾的坚持下去,因为它还有几个优点:
  1. 比Java容易集成C/C++的库 - 所以第三方的库并不是大问题
  2. 容易掌握,很接近C,学习起来足够简单,以往事实证明,即使是策划也可以堆砌LPC代码
  3. 出错时容易根据Core-file进行Debug,这点JVM做的尚有欠缺
  4. 随着时间的进展,它现在已经足够成熟去实现现有网络游戏的功能了,而且相比之下,它更容易扩展
现在我认为最需要的是 - 一款强大的调试工具。

参考链接:http://www.lysator.liu.se/mud/lpc.html

没有评论:

发表评论