2008年2月28日木曜日

ブッチャーブロックにて

更新が滞り、申し訳ありません。

既にシステムには登録しておりますが、ブッチャーブロックのサーナクキャンプにいるResearcher Bredikを起点とする一連のクエストをこなしました。このクエストは、ゴロウィンのクエスト「スピロックが飛ぶと共に」から継続するものです。ゴロウィンのハオイランとブッチャーブロック山脈のクラッグプルームの同盟を阻止しようというのがクエストの目的になります。いかに連続する3つのクエストについて説明します。

1)「羽根の道


ハオイランの羽だそうですが、サーナクキャンプから赤っぽい色の光の点が地面に落ちており、その点を辿っていくと、崖を登ることになります。崖を登ったところで光の点は途切れているのですが、最後の光の点をクリックすると、ハオイランとクラッグプルームが2体ずつPOPします。合計4体になるのですが、こいつらを倒し、Bredikに報告するとクエストが完了します。

2)「スピロックの挑戦

ハオイランがクラッグプルームに取り入るための贈り物を奪ってしまおうというのが目的です。

ブッチャーブロック港から崖伝いの道を登り、グリフォンステーションの付近にHaoaeran AdvancerとHaoaeran Lightchanterのグループがいくつか点在します。その足元にトーテムがあるのでこれを4つ集め、Bredikに届けるとクエストが完了します。

3)「似たもの同士

このクエストで最後になります。両種族の使者を倒すことで、クラッグプルームのハオイランに対する信用を無くしてしまい、同盟を阻止しようというものです。倒すモンスターは2体です。Haoaeran Emissary, Kragploom Emissary。名前だけみると似ていますが、外見はぜんぜん違います。

Haoaeran Emissaryは、先のクエストで倒したモンスターの近くの崖沿いにいます。こいつはHaoaeran AdvancerとHaoaeran Lightchanterに守られているので3体とも倒してしまいます。


Kragploom Emissaryは少々離れた場所にいます。クラッグプルームの巣に続く崖伝いの道があるのですが、その道の崖側の下にいます。こいつはKragploom Guardianに守られており、同じく3体とも倒してしまいます。

最後に、Bredikに報告してクエスト完了です。

もうひとつおまけのクエストを最後に紹介いたします。

Schmittyのサンダル

ブッチャーブロック港のそばの砂浜にいるSchmitty McEricsonから依頼されるクエストです。どうやら釣りに夢中になってサンダルを無くしてしまったそうです。かわりのサンダルを作成するためのアイテムを集めるのがクエストの目的になります。

1つ目のアイテムは、そばの海底に生息しているSea Slugから手に入ります。2つ目のアイテムは砂浜に生息するTerratrodderから手に入ります。3つ目のアイテムは、こいつもすぐそばの海底に生息するWandering Anemoneから手に入ります。それぞれ規定の個数が手に入るまで倒します。

すべて揃ったら、Schmittyに届けますが、無くしたサンダルが見つかったようです。集めたアイテムがもったいないので新しいサンダルを作ってくれることになるのですが、少々時間がほしいとのこと。しばらくしてからもらいに行くことになります。

実時間で5分くらいでしょうか。Schmittyの頭上にクエスト完了のマークが点ったので、話しかけるとサンダルをもらえ、クエストが完了します。

<ここまでの成果>

2008年2月21日木曜日

Content is not allowed in prolog.エラー

あるアプリケーションでiBATISを使用しているのですが、いつの間にかXMLで書かれた設定ファイルを読み込む際に例外が発生するようになり、動かなくなってしまいました。
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1438)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(XMLDocumentScannerImpl.java:899)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at com.ibatis.common.xml.NodeletParser.createDocument(NodeletParser.java:157)
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:50)
... 16 more

XML自体に問題はなく、なぜ例外が発生するようになったのかまったくわかりませんでした。

で、Webを調べているうちにUTF-8で保存している場合の注意点を見つけました。BOM付きのUTF-8で保存した場合に上記例外が発生するようです。早速、BOM無しで保存すると、何事もなかったかのように、正常に動き出しました!左の画像は、サクラエディタの場合です。ファイルを保存するときにBOMのチェックボックスがあるので、これを外すとBOM無しになります。

同じような問題で悩んでいる方、是非お試しください。

2008年2月19日火曜日

サンダリングステップにて

だいぶ前にDrowned Trooperから入手した「ぎざぎざの金属塊」から始まるクエストをペンディングしていたので、進めることにしました。

このクエストは、ラクリンが破砕した際のかけらから、武器を作るものになります。まず、サンダリングステップでアンデットを倒して武器の握り手を手に入れます。サンダリングステップのすべてのアンデットが対象となるようですが、私はカラナの遺跡周辺のスケルトンを狩って手に入れました。結構な数を狩って、やっと手に入りました。

続いて、カラナの遺跡の北にあるクレーターで金属を手に入れます。水の溜まったクレーターで、坑夫のそばにある石を調べると手に入ります。

最後にジャイアントを倒して、じょうぶな鎖を25個集めて完了です。このジャイアントを倒している最中に、「磨きあげられた柄」をドロップしました。このアイテムから「未完成のツルハシ」のクエストが始まったので、ついでにこのクエストも終わらせることにしました。

このクエストも、最終的に武器を手に入れるものになります。ジャイアントを倒し続けて「巨大なツルハシの刃」を手に入れるとクエスト完了です。

<今日の成果>


2008年2月18日月曜日

ゼック島のクエスト

今まで完了したクエストのうち、システムに未登録だった以下のクエストを登録しました。
また、 タロンの英雄たちについても内容を見直し、わかりやすく修正しました。

2008年2月16日土曜日

サーバの交換

先日、ついにサーバを交換しました。以前のブログで書いたとおり、これまではVMWare上でCentOSを動かしてサービスを提供しえいましたが、新構成ではxenを利用して仮想化を実現しています。仮想環境であることは変わりありませんが、パフォーマンスについては大幅に向上しているはずです。

新構成では、PCスペックも大幅に向上しており、4Gバイトのメインメモリ、デュアルコアのCPUとしています。OSはCentOS5.1の64ビットです。サーバの入れ替えに伴い、Tomcatを6.0.16に、またPostgreSQLを8.3にバージョン・アップしています。

新しい環境で数日動かしていますが、何か問題があるようであれば、コメントをお願いいたします。

2008年2月12日火曜日

ゼック島にて

昨日に引き続き、ゼック島のクエストを続けます。

オークを退治しよう」の後続クエストである、「クリスタルの輝き」をはじめます。このクエストは6種類のクリスタルを集めるのが目的です。このクリスタルは、デスフィスト城に向かう途中の第1ゲートと第2ゲートの間のエリアで入手することができます。赤、青、緑、白、黒、橙のクリスタルを集め、Birchbark Oakleaf に届けてクエスト完了です。

まだまだ老トレントからのクエストは続きます。「木の復讐」というクエストが始まりました。結局、友人であるBeechlillyはオークたちの手によって亡き者にされてしまったようです。その敵を討つのがこのクエストです。

第2ゲートを抜けると製材所があり、その付近をSullon Lumberjackgが徘徊しています(Lumberjackはきこりの意味のようです)。まず、このMOBを20体倒します。その次のターゲットがオークの木工者なのですが、具体的な名前が分かりません。とりあえず製材所に向かったのですが、いつの間にかペットがMOBと戦闘を開始していました。結局このMOBが目指すターゲットである、Sullon Carpenterでした。後は老トレントに報告し、クエスト完了です。これが老トレントからの最後のクエストでした。そうそう。無事「ティアナーラの枝」もゲットです!

この後のクエストですが、グリーンフッドのLuteに「ティアナーラの枝」を届けるところから始まります。Luteは製材所の奥の「タイタンの塔」の更に奥、一本だけ青々とした木のある場所の奥にいました。非常に分かりづらいかもしれません。そこでLuteと対面しました。彼女からは「狂騒行進曲」というクエストの依頼があったのですが、本日はここまでにしたいと思います。

ここまで老トレントから一連のクエストを進めていましたが、その最中にいくつかのクエストを引き受けました。

まず、第1ゲートと第2ゲートの間出の話です。そこにオークの前哨地という場所があり、そばの岩の間に骸骨が横たわっていました。この骸骨を調べることで「Sullon Centurionを探して」というクエストの開始です。このクエストはSullon Centirionを10体倒すことが目的です。ターゲットは第1ゲートと第2ゲート付近にいたので、すかさず終わらせてしまいました。このSullon Centirionですが、「邪悪なサイズヘッド」というアイテムをドロップしました。このアイテムを調べると「ガット・リッパー」というクエストが始まります。ターゲットMOBがMarred Arborなのですが、どこにいるのかわからないため、いったん保留とすることにしました。

同じく、第1ゲートと第2ゲートの間での話なのですが、クリスタルを探している際に、熊を倒しました。この熊が「黒水晶のティアドロップ」というアイテムをドロップしました。これはクエストのトリガーとなるアイテムのようで、早速調べると「嵐の聖遺物」というクエストが始まりました。う!こ、これってエピッククエストではないですか。。。ということで、断念することにしました。ただ、第一ステップのドルイドリングを見つけて触れるというところまで進めておきました。はい。

第2ゲートを越えてみます。

第2ゲートを越えてすぐ、石碑があるので調べてみたところ「スロンの英雄たち」が始まりました。このクエストもとりあえず保留にしておこうと思っていたのですが、他のクエストを進めてる最中にターゲットの墓石を規定数分見つけてしまい、完了してしまいました。このクエストは後日システムに登録したいと思います。

製材所を少し過ぎたところに道程碑が建立されており、この碑を調べると「ブートストラッターのバッドランド紀行」が始まりました。これも保留しておこうと思ってたのですが、他のクエスト進行中に1ステップだけ残したところまで進んでしまいました。

あとひとつ、「黒炭の谷」で切り株を調べると「炎の怒り」というクエストが始まります。黒炭の谷のトレント?を倒さなければならないのですが、エンカウンターのうえ、レベルもそこそこであったためソロでは無理!とあきらめました。このクエストもそのうち進めたいと思います。

<今日の成果>

ブラウザの利用状況

先日のブログでブラウザのテスト状況について書かせていただきましたが、EQ2DBでは、アクセス統計を取っております。その統計情報からシステムを利用 されている方のブラウザのアクセス状況を把握することができます。以下は利用ブラウザのランキングになります。(2008年2月の統計情報です。月の半ば ではありますが。)
  • 1位:MS Internet Explorer : 66%
  • 2位:Firefox : 21%
  • 3位:Opera : 12%
上記ブラウザで99%を占めています。やはりIEを利用される方は多いのですね。ちなみに、利用されているOSの統計情報も把握することができるのですが、結果的に99%がWindowsでした。

そ のOS統計情報のなかに「Nokia Browser (PDA/Phone browser)」からのアクセスがありました。名前から判断して携帯電話 or PDAということになると思うのですが、EQ2DBは携帯電話/PDAからのアクセスは想定しておりません。にもかかわらず、携帯電話/PDAからのアク セスがあったのは驚きです。1件だけなら気にも留めなかったのですが、少ないながら数十件のアクセスがありました。私自身、モバイル端末から見たことがな いのですが、どのように見えるでしょう。携帯電話/PDAにはやさしくないコンテンツ構成と思うのですが。。。実際に参照されている方からお話を聞いてみ たいところではあります。

それと、OS統計情報の中に「Microsoft Data Access Component Internet Publishing Provider」からのアクセスが1件だけありました。これは何者でしょう?素性をご存知の方からの情報をお待ちしております。

2008年2月11日月曜日

ゼック島にて

今日は、中途半端になっていたゼック島のクエストを終わらせることにしました。進めていたクエストは、「上陸地判明」です。スリートウの水場近くの小屋にいるQuint Cerlius M.E.から依頼されるクエストであり、ボーダーランドからの報告書の後続クエストになります。

隠 れ処を経由し、セイレーンの入り江に向かいます。上陸地点ぽいところといったらすぐ分かりました。浜辺の東側にボートが乗り付けてあるからです。その近く に進むとヒット!その浜辺をうろついているBlackhook Raiderを倒すと襲撃命令書が手に入りました。8つ集めてQuint Cerlius M.E.に報告しクエスト完了です。

Quint Cerlius M.E.からのクエストはこれで終わりのようですが、なにやら他の仕事がある様子。協力者であるグリーンフッドの手伝いをして欲しいらしい。儀式用のアー ティファクトの探索とのこと。年老いたトレントがそのアーティファクトを持っているとのことなので、早速トレントを探しに行くことにしました。

年老いたトレントであるBirchbarkは、隠れ処の奥のほうにいました。早速話しかけると「Beechlillyを探して」というクエストが始まりました。老トレントの友人であるBeechillyの行方を捜して欲しいそうです。スピリット・レイクのそばにいたそうなので、手がかりを求めて向かってみました。

まぁ、 スピリット・レイクには何度も通っているのでトレントがいないことは分かっていました。で、葉っぱを捜すことになるのですが、それらしいものが見当たりま せん。注意深くあたりを散策すると緑色のオブジェクトを発見!採集したところ「ブナの葉」が見つかりました。これを5つ集めて老トレントの元に。しかし、 葉っぱを届けましたが、目的の「ティアナーラの枝」はもらえませんでした。ここから一連のクエストが続く様子です。

続くクエストは「問題の根本」 です。友人である彼女の居場所を見つける力を与えてくれそうなポーションを作るため、タッサーの根を集めて欲しいそうです。タッサーの根はオークの荒野に 転がっているvestigial rootsから入手可能です。タッサーの根を20個集めて老トレントに届けました。これでクエスト完了です。しかし、まだ「ティアナーラの枝」はもらえま せん。しばらく老トレントと付き合う必要がありそうです。

老トレントからの3番目のクエストは、「オークを退治しよう」です。オークの連絡係から、彼女に関する情報を得ようという試みです。ターゲットのモンスターは、魂の谷からブラッドオア・バレーに入る場所の付近にいるVallon Prospectです。こいつらを13体倒します。

続 いて、伝令官を倒す必要があるのですが、こいつの正体がよく分かりません。いろいろ探していたところ、隠れ処から第1ゲートに向かう道の途中でPOPしま した。Orc Dispatch(Lv35)というMOBです。こいつを倒すとヒット!「作業命令書」が手に入りました。早速、老トレントに届けクエスト完了です。老ト レントからのクエストはいったんここで終了し、この続きはまた後日とします。

ここで、サブキャラクタにスイッチし、ダークライトウッドのクエストを進めます。EQ2DBに未登録の「事実は奇なり」というクエストがあるという情報が入ったので、その調査が目的です。

場 所は、ヘイト・エンヴィーのそばのセーブルベイン・ティアーという洞窟内です。この中に花のような植物が咲いており、この植物を調べるとクエストが始まり ました。やはり情報は正しかったようです。別に隠されているわけでもなく堂々と咲いていたのですが、見逃がしてしまっていたのでしょうか。。。

気を取り直してクエストを進めます。このクエストは非常に単純で、ヘイト・エンヴィーのVerex N'Zaに届けた後、さらに村長に届けるだけです。これでクエスト完了。

ところで、このクエストの報酬が「鍍金された鉱石のスリーブ」というものでした。この「鍍金」という文字、読めませんでした。。。早速調べたところ「ときん」と読み、めっきの意ということです。EQ2で漢字の勉強をさせてもらっている今日この頃です。

<今日の成果>

アクセス・ランキング TOP10

現時点でのアクセスの多いオブジェクトのTOP10を公開します。
すべてコモンランドのクエストで占められました。まだまだアクセス数の少ないサイトですが定期的にランキングを発表したいと思います。

[08/02/11追記]7位から9位は同数でしたので、7位と改めました。


対応ブラウザについて

EQ2DBの開発は、Windows+Firefoxでの動作確認が主体となっています。昨今のWebアプリケーションでは少なからず JavaScriptを用いた機能が存在します。昔はJavaScriptの開発は困難を極めました。その原因は、開発ツールが皆無だったためです。しか し、Ajaxという仕掛けが注目されて以降、JavaScriptの開発環境に大きな変化が見られました。それは、JavaScriptをベースとしたフ レームワークや、デバッグを行うためのツールの誕生です。

EQ2DBでもご多分に漏れず、JavaScriptを用いています。ただし、 全快バリバリで使用しているわけではなく、所々で使用しています。一般のユーザさんが気づく部分で挙げると、検索画面のコンボボックスの連携や、 EQ2MAPを参照する際のポップアップ・ダイアログでしょうか。

複雑なコーディングをしているわけではないのですが、うまく動作しないことが多々あり、そのためにデバッグ・ツールを使用して修正を繰り返すことになります。そのデバッグ・ツールが、FirefoxのプラグインであるFirebugなのです。このツールに慣れてしまうとなかなか他のブラウザで動作確認する気になれません。また、一人での開発なため、複数OS+ブラウザの組み合わせでの確認は難しいのが実情です。

このような理由からWindows+Firefoxでの動作確認が主となってしまっています。ただし、完全ではないですが、開発終了後にIE6やOperaでの動作確認も一応行っています。残念ながら、それ以外については未確認です。

そこで、システムを利用される方にお願いなのですが、ちょっと表示がおかしい、あるいは動作不良なんじゃないの?という部分に気づいたら、情報をお寄せください。できる限り対処するようにいたします。

ご協力をよろしくお願いします。

ブッチャーブロック山脈にて

Brellにしか壊せぬ鉄壁を」 というクエストを、1月16日以来放置したままでした。このクエストは、RoKで導入され、ブッチャーブロック港のサーナクを基点とした一連のクエストの ひとつになります。それも、ラス前のクエストのようです。魔力を宿した石を集めるように西アイアントウ砦のドワーフから依頼を受けたのですが、探しても探 しても見つからなかったのです。

そして今日、やっとその石を見つけることができました!チェス盤にいるアンデット(Undead Pawn)がターゲットだったのです。はぅ、やっと完了できる。。。速攻で15体倒して西アイアントウ砦のHoldyn Mackendrickに報告し、クエスト完了です。

続くクエストは、「憂いのサーナク、慮る その2」 でした。これは、この一連のクエストの基点となったサーナクの元に戻るクエストです。早速、ブッチャーブロック港に移動し、Raghunathaに報告し てクエストを完了しました。このクエスト、報酬がなかなかです。チャームスロットのレジェンダリ装備なのです。早速装備し大満足です!

そ ういえば、先のクエストのタイトル「慮る」って皆さん読めました?私は読めませんでした。「おもんばかる」-あれこれ思いをめぐらせるの意らしいですが、 日本語の翻訳スタッフってどんな方たちなんでしょう。なかなか難しい表現があったりしてドキッとすることがあります。みなさんはどうでしょう?

これで、一連のクエストが終わったので、基点のクエストから一気にシステムに登録することにします。また、既に終わらせていてほったらかしだったネクチュロスのクエスト+αも登録してしまいます。

<昨日の成果>

2008年2月10日日曜日

検索プラグインの提供

私は定常的に、ブラウザとしてFirefoxを使用しています。Firefoxには検索プラグインを追加できる機能があり、EQ2DBの検索機能も検索プラグインとして提供できないかと思い立ちました。そこで、検索プラグインについていろいろ調べたところCreating OpenSearch plugins for Firefoxというページを見つけました。

内 容を見てみると、検索プラグインはXMLのみで作成できることが分かります。とても気軽に作成できるんですね。そのサイトを参考に、検索プラグインを作成 し、提供しています。一応、IE7も対応しているようですが、IE7を使用していないため確認していません。ですのでFirefox用としています。もし IE7での動作確認をされた方がいらっしゃいましたら是非ご連絡ください。

それと、謹製検索プラグインのアイコンですが、非常にダサいです。まったくセンスが感じられません。。。Gimpを使用して作成したのですが、この手の作業はまったく苦手です。どなたかアイコンを作ってくださいませんか。ボランティア精神旺盛な方、よろしくお願いします!

EQ2からこんにちは

エバークエスト2をはじめて数年経過したでしょうか。ほぼソロでの活動でしたが、昨年、エバークエスト2データベースと いうシステムを立ち上げました。そのサイトは、エバークエスト2の情報をデータベース化したもので、クエスト、アイテム、モンスター、NPCがキーワード によって検索できます。(システム上、それらをオブジェクトという単位で一元管理しています。このブログでもオブジェクトと表記します。)

ま た、それらのオブジェクトは互いにつながりを持っています。たとえばクエストを例に取り上げてみると、そのクエストの基点となるNPCやアイテム、そのク エストで得られる報酬アイテム、倒さなければならないモンスターなどがハイパーリンクでたどれるようになっています。もちろん逆からたどることも可能で す。

ですから、プレイヤーがゲーム中で見つけたオブジェクトを検索すれば、そのオブジェクトの関係する他のオブジェクトが一発で把握できます。

こ のような機能は、ブログでの記述では大変困難です。なぜなら、すべてのオブジェクトの連携をハイパーリンクで表現しなければならないため、データが増えれ ば増えるほど、そのメンテナンスの労力は膨大なものとなってしまうからです。しかし、そのようなつながりを前提としたシステムを開発することでメンテナン スの省力化を図ることが可能です。当然、データとデータのつながりは登録しなければなりませんが、登録するためのユーザインターフェースを工夫すること で、簡易なメンテナンス性を実現することが可能です。今後、システム作成の経緯についてブログで公開できれば考えています。

以下に、システムについての特徴を簡単にまとめます。
  • Javaで作成されたシステムであり、様々なオープンソース・ソフトウェアを利用して開発されています。
  • サーバの運用は自宅で行っています。いわゆる自宅サーバです。商用を目的としたシステムではないため、収益を上げることを目的としていません。よって、サービス品質もそれなりと思ってください。
  • サーバを構成するPCのスペックもそれなりです。パフォーマンスの期待は難しい代物です。
  • OSはCentOS 5.1を利用しています。そのOSを、VMWare上で動作させているため、さらにパフォーマンスは低下しています。
  • OS以外のソフトウェアもオープンソース・ソフトウェアを利用しています。
何しろ個人的に開発し、運用しているサービスであるため、なかなかお金をかけることができません。しかし、今後、マシンスペックの増強や、システムソフトウェアの大幅なバージョンアップを考えています。それら計画についても徐々にブログで公開したいと思います。

このブログでは、上記したようなシステムの開発&運用にまつわる裏話や、システムのネタであるエバークエスト2ゲーム内の冒険談などを公開していく予定です。今後ともよろしくお願いします。