mudos开发简介
首先我們應(yīng)該知道m(xù)udos提供哪些服務(wù)
我們可以從許多l(xiāng)ib中找到我們需要什么
假設(shè)我們的lib還是擁有很多現(xiàn)在mud的特性 比如戰(zhàn)斗 人物和世界
我們需要一些最基本的東西
比如 master.c user.c login.c <include>
你完全可以使用不一樣的文件名 甚至修改出自己的mudos
你也可以完全使用一個(gè)成熟的lib來修改 不過這里要討論的不是這些。
我們需要一個(gè)指令目錄 一個(gè)系統(tǒng)配置文件的目錄 一個(gè)數(shù)據(jù)保存的目錄 一個(gè)幫助文檔的目錄 一個(gè)安全系統(tǒng) 一個(gè)角色系統(tǒng) 一個(gè)戰(zhàn)斗系統(tǒng)(如果你是戰(zhàn)斗類的 根本不需要這個(gè))
一個(gè)網(wǎng)絡(luò)服務(wù)提供系統(tǒng)(這個(gè)一定需要嗎?可以不需要) 一個(gè)核心守護(hù) 一個(gè)時(shí)間系統(tǒng)(如果你的mud只有簡(jiǎn)單的時(shí)間概念 也根本不需要這個(gè)) 一個(gè)處理文字的系統(tǒng)
我們可以找出很多l(xiāng)ib都有的通性 這些文件可以這樣描述:
// Daemons
// maintains information on legitimate character creation
#define CHAR_D????????????????? "/secure/daemons/chard"
// support to chinese character
#define CHINESE_D?????????????? "/secure/daemons/chinesed"
// handles fighting events
#define COMBAT_D??????????????? "/secure/daemons/combatd"
// handling core daemon state
#define CORE_D "/secure/daemons/cored"
// handles the loading and rehashing of verbs
#define COMMAND_D?????????????? "/secure/daemons/cmd_d"
// handles domain state and build rooms
#define DOMAINS_D "/secure/daemons/domains_d"
// emote daemon
#define EMOTE_D???????????????? "/secure/daemons/emoted"
// the management daemon a user connects to before determining their real body
#define LOGIN_D???????????????? "/secure/daemons/logind"
// handles mud's Quests
#define QUEST_D??????????? "/secure/daemons/questd"
// handles security of Lpmud
#define SECURITY_D????????????? "/secure/daemons/securityd"
// handles intermud services
#define SERVICES_D????????????? "/secure/daemons/servicesd"
// management daemon of time/disasters/scenario
#define TIME_D??????????? "/secure/daemons/timed"
// handles update events
#define UPDATE_D??????????????? "/secure/daemons/updated"
// virtual daemon
#define VIRTUAL_D?????????????? "/secure/daemons/virtuald"
// handling vote security
#define VOTE_D??????????? "/secure/daemons/voted"
構(gòu)架lib 最先要考慮的不是針對(duì)一個(gè)游戲 而是一個(gè)游戲支持所必需的內(nèi)容 連接 服務(wù) 和表現(xiàn) 而我覺得 可擴(kuò)展性 在經(jīng)歷這么多年以后 對(duì)于Mud而言 已經(jīng)日益重要
1.指令???
?????? 是玩家接觸mud world的直接界面 沒有好的指令 就算這個(gè)角色不是blind 也會(huì)感到看不到東西的感覺 所以最基本的指令 是look say quit who 等等 注意say代表的是交流的意思 而不是現(xiàn)在mud的含義-"說"
2.數(shù)據(jù)保存
?????? 正式開啟mud world的時(shí)候必須考慮的問題 你可以使用傳統(tǒng)的文件保存方式 也可以采用msql/mysql數(shù)據(jù)庫方式 要注意的是 不要以為傳統(tǒng)的方式是一個(gè)無效的或者無能的方式
不過利用高效的mysql方式 還是比較好的 這里的數(shù)據(jù) 不要單純的認(rèn)為是玩家本體的數(shù)據(jù) 一個(gè)mud不單單只有這些數(shù)據(jù) 更多的數(shù)據(jù)可能出現(xiàn) 比如地圖(rooms) 動(dòng)作(emotes) 物件((objects) 技能(skills)
3.安全系統(tǒng)
?????? 傳統(tǒng)的es安全模式借助于uid系統(tǒng),這是快10年的系統(tǒng)了。而每個(gè)LPC Library都可能會(huì)有自己的系統(tǒng)。注意一個(gè)mud往往有三部分構(gòu)成 分的比較明白的就是mudos 還有兩部分是? LPMud 和 LPC Library 的說法。比如常說的 ES TIM-II NIGHTMARE 都是LPC LIbrary
而ES3 就是? ES LPMud,比如fy3這個(gè)LPmud 使用的ES lib library。安全的做法很多 而且沒有一種是絕對(duì)安全的 畢竟這個(gè)mud系統(tǒng)先基于unxi更基于internet。但是目的只有兩個(gè):安全和使用性。安全是指能保證原創(chuàng)者的利益,使用性是指能發(fā)揮使用這個(gè)LPC lib的人的自主性,不要單單認(rèn)為是設(shè)計(jì)者或者是大家說的巫師(wizard)。
4.角色系統(tǒng)
??????? 如果你的lpmud不需要角色,那么這個(gè)可能對(duì)于你是無足輕重的。如果你要求體現(xiàn)完美的人物特性,那么復(fù)雜而不冗余的系統(tǒng)是需要的。一般角色所要表現(xiàn)的東西都應(yīng)該考慮一下。傳統(tǒng)需要的是 表現(xiàn) 生命 動(dòng)作和交流。
5. 戰(zhàn)斗系統(tǒng)
??????? 首先 確定你的lpmud是否需要戰(zhàn)斗 這里的戰(zhàn)斗是指比較復(fù)雜的戰(zhàn)斗 包括西方的魔法和東方的戰(zhàn)斗 都是戰(zhàn)斗。戰(zhàn)斗系統(tǒng)的表現(xiàn)方式有很多種 需要提醒的是 心跳并不是唯一處理戰(zhàn)斗的方式。就好像現(xiàn)在很多游戲都使用既時(shí)系統(tǒng) 但是還有很多的游戲在采用回合或者半回合的方式。ES的lib比較東方化 但是帶有明顯的西方mud的特性 就是心跳來處理普通技 而傳統(tǒng)武俠是沒有skill perform的區(qū)分的。記住,沒有心跳一樣可以戰(zhàn)斗。戰(zhàn)斗要處理的事情就是 怎么決定出手(心跳是AI處理的一種途徑) 怎么決定結(jié)果(傷害 回避等等) 怎么決定仇殺等等 表現(xiàn)方式(描述)
6 網(wǎng)絡(luò)服務(wù)系統(tǒng)
???????? 更多的服務(wù)被包含到intermud3中,mudos顯得更像是一個(gè)server服務(wù)提供者,最多可以達(dá)到4-5個(gè)端口,可以用來提供包括http/mail/ftp/finger/telnet/等等服務(wù) 其實(shí)我們可能根本不需要這么多 一個(gè)最基本的telnet或者ftp用來處理一些文件服務(wù) 一個(gè)簡(jiǎn)單的UDP交流可以用來保持相關(guān)mud之間簡(jiǎn)單交流。另外 文件自動(dòng)更新功能 數(shù)據(jù)統(tǒng)一風(fēng)格 分站區(qū)域互連和漫游也在考慮的范圍之內(nèi)
?
7.時(shí)間系統(tǒng)
??????? 一個(gè)時(shí)間系統(tǒng),用來保持整個(gè)Mud的發(fā)展,天氣/災(zāi)難/故事的發(fā)生都可以歸納到這一類。良好的時(shí)間系統(tǒng)可以用來紀(jì)錄mud world的歷史,這方面參考國外的mud可以收益良多。好的系統(tǒng)已經(jīng)出現(xiàn)了時(shí)間 天氣 季節(jié) 區(qū)域 災(zāi)難等等的結(jié)合。東方太陽西方雨。
?
一些基本的設(shè)置用來維持一個(gè)LPC lib,而作一個(gè)LPMud,還需要更多的變化和環(huán)境。不僅僅是一個(gè)LPC lib。就好像一個(gè)linux系統(tǒng) 單單只有內(nèi)核是不行的。
總結(jié)
- 上一篇: EPC项目管理要点
- 下一篇: 生活中常用的汉字?有4600个。都有哪些