中阶LPC-介绍

1.1 基础 LPC
      阅读此课本的人应该读过基础 LPC 课本或是够熟悉 mud 世界的程序写作.
不只是能建造房间 和撰写区域内有关的对象而已, 也该清楚自己写出来的程序在执行的时候到底在做什么. 如果你觉得你的程度还不到, 就回去看完基础 LPC再来看中阶LPC 课本. 如果你达到要求, 你会发现你在此读到的东西对你比较有意义.


1.2 中阶 LPC 课本的目标
      此份介绍性的课本是为了对 LPC 一无所知的人, 让他们有能力在任何 LPMud写出好的游戏世界. 对 LPC 和建设 LPMud 来说, 自然要比建造房间、护甲、怪物、武器来得艰深. 当你进入更复杂的概念, 例如公会; 或想更深入你的游戏世界, 你会发现基础 LPC 详细说明的概念里面没有这些东西. 中阶 LPC 的设计是把你从简单的世界建造过程, 带到完全了解 LPC 作为 LPMud 世界建造者的知识. 撰写 mudlib 本身的工作留到后面再讲. 读完这份课本, 并实际撰写一些实验性的程序 码之后, 你们读者应该能写出合乎任何设计或想法的游戏对象,只要这样我的目的就达到了.


1.3 概观
      到底多了什么东西? 呃, 你们大部份都知道 LPC 支持映像 (mapping) 和阵列 (array), 也曾问过我基础 LPC 为什么没有详细说明它们. 我觉得那些概念超出我在基础 LPC 课本里面尝试讲述的范围, 而比较适合放在这份课本里. 不过, 新工具都棒极了, 而重要的是, 你可以用新工具做啥. 基础 LPC 课本的目标是让你能建造够格的 LPMud 区域, 不需要映像 (mapping) 和数组 (array) 就可以办到. 这份课本的目标是让你能在你的区域中实现任何点子, 这样就需要映像和数组的知识.LPMud中, 任何你想写的点子都可能实现. 令人惊讶的是, LPC 语言非常适合实现这些目标. 你无法写出你的点子的原因是: 你对 LPC 的知识、不合的mudlib、你的 Mud 主题、mud 管理的政策. 这份课本没办法把你工作的 mudlib 变得更好, 也无法改变你的Mud 主题或 mud 的管理政策. 千万别认为 LPC 没办法做到你想做的事. 如果你的点子不容于 mud 主题或是管理政策, 那就是你的点子无法在你现在的 mud 实现. 如果 mudlib 不合, 告诉负责 mudlib 的人,在 mudlib 层面上可以做哪些事来增进它. 你会很惊讶, mudlib 中实际上有很多 你不知道的东西. 更重要的是, 读过此课本后, 你应该能读懂你 mud 的mudlib 程序代码, 了解每一行程序在做啥. 你目前应该还没有能力自己写出这种程序代码, 但是至少你可以了解 mudlib 层次在做什么.这份课本开始时, 讨论 LPMud driver 到底在做些什么. 这份课本的一个好处是, 里面所讲的东西跟 driver 和 mudlib 无关 (除了 Dworkin Game Driver).对于游戏 driver 的章节不会深入实际的 driver 程序架构, 而是所有游戏driver 跑 mud 基本上所要做的事.接着, 我讨论每个人都想多了解一些的题目 ---- 数组 (array) 和映像(mapping). 要了解映像这种数据型态, 大概是最简单也是最困难的事. 大致上, 映像算是一种复杂的数, 要讨论映像之前, 你应该先了解数组. 一旦你了解它们, 映像实际上要比数组好用得多. 无论快慢, 用你最多的的时间来学习这一章, 因为本章大概是这份课本里头最困难, 也是最有用的一章.之后, 有一小章讨论 LPC pre-compiler, 在你的程序代码送给 compiler 之前, 你可以用它来编排你的程序代码. 虽然我在这里介绍得很可怕, 这章恐怕是这份课本中最简单的一章. 所以我把它摆在介绍映像和数组的那一章之后.接着重新介绍字符串 (string) , 更详细地教你如何处理字符串, 像是分断字符串这种高级的命令处理技巧. 只要你很了解数组, 这章应该很简单.再下一章是这本课本第二重要的部分. 如果你想超越中阶的水平、深入 mudlib程序代码, 这可能是最重要的部分. 这章深入介绍 LPC 继承 (inheritance) 的复杂观念. 既然这份课本的目标并不是教你设计 mudlib 的程序, 这章不会详细讨论面向对象程序设计. 了解本章, 会让你体会一些面向对象程序设计的内涵, 也让你能够僭越 (overriding) 其他函式以写出更复杂的对象, 并定义出你自己的角色基础职业.最后, 课本以简略地讨论程序代码除错作结. 这不是很重要的一章, 但是这样也表示此章不只是补充你目前所学的知识而已.


1.4 此课本没有的东西
      对某些人来说, 此份课本最大的、也是政策性的遗漏就是「投影」(shadow). 我从来没有看过使用投影是 最好或最有效率的例子. 不过, 这样也不代表投影一无是处. 我在这份课本里不介绍投影的理由是, 学习 LPC 的人, 最好在碰上投影以 前, 先从此课本学得一些观念, 并花上时间去熟悉这些观念. 这样一来, 我觉得学习 LPC 的人会有能力决定是否要使用投影. 我会在以后的课本里讨论投影.如果你经常使用很多的投影, 请别认为上面这段文字是针对你的批评. 我也曾经看过投影有很多优秀 的用途. 不过, 投影并不是一个完成工作的好方法, 所以投影并不适合这份中阶课本的目标.我也删掉了讨论系统安全和面向对象 程序设计的部份. 这两者很明显都是讨论 mudlib 方面的题目. 不过很多人大概会反对我不讨论面向对象程序设计的作法.我决定 把这个课题留到以后再说, 因为大多数区域设计者是为了创作而撰写程序码, 而不是为了信息论. 在中阶和基础的课本里, 我决定只在实际 LPC 程序设计上可以直接应用的地方讨论面向对象程序设计的理论. 对于想撰写一个庞大 mudlib 的 LPC 老手而言, 理论可能要实用得多. 不过以这份课本的目标来说, 讨论面向对象程序设计只是个让人打瞌睡的题目. 我计划在下一份课本里多讨论这个理论.


1.5 总结
LPC 不难学习. 虽然比不上其他大部分计算机语言所常做的工作, 令人惊异的是它非常强大, 在建造 MUD 这种游戏的工作上, 也没其他语言比得上它. 对初学者来说, 它让你易于学习, 甚至在你还不知道在做什么的时候, 就能写出有用的物件. 对中阶的人来说, 它让你的任何点子变成文字化的虚拟现实. 对高阶的人来说, 它的面向对象特点, 可以让你建造一个 internet 上最受喜爱的游戏. 你唯一所受到的限制, 是你了解多少东西. 而进一步学习并不需要信息学位.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值