プログラミングスキルをロマサガにおける武器レベルとして考えてみました

横沢です、本日もよろしくお願い致します。

皆さん、ロマサガ好きですか?正式名称はロマンシング サ・ガと言いまして、はるか昔スーパーファミコンとうハードで発売された名作ゲームです。ゲームについて詳しくはwikiを御覧ください。

ロマサガとは?

さて、このロマサガというゲームですがRPGロールプレイングゲーム)というジャンルです、同じジャンルだとドラクエドラゴンクエスト)とかFF(ファイナルファンタジー)というゲームがとても有名ですね。このロマサガ知名度こそ上記2つには劣るかもしれませんが、かなり独特なゲームシステムを持っており一部のゲーマーからは異様な愛情を受けています。その独特なゲームシステムの中でも本日は「武器レベル」を取り上げたいと思います。

RPGにおけるレベルとは?

一般的なRPGにおいては、武器ではなくキャラクターに対してレベルが付いてるのが普通です。このレベルを上げる事によってキャラクターが強くなっていきます、レベルが上がると力が増えたり新しい技を覚えたりしますね。レベルを上げる方法ですが、敵と戦い、勝利し、経験値というポイントを溜めていくことで上がります。

ロマサガでは武器レベル

しかしロマサガにおいてはキャラクターにレベルという概念が無いので、敵に勝利すると武器レベルが上がっていきます。この武器レベルが上がることでその武器を扱う力が増えていくということですね。逆にいうと、武器レベルが上がってない武器を扱うと弱いということです。具体的な話をしてみましょう、例えばドラクエでレベル50の戦士が剣や斧や槍を扱った場合、どの武器でもそこそこの威力が出せます。しかしロマサガでは剣レベル50、斧レベル1、槍レベル1の場合、剣を使えば強力ですがそれ以外の武器でまともに戦うのは困難です。

ロマサガにおける武器適正

一つ一つレベルを上げるのは大変な気がします、しかしここがロマサガの面白いところで、キャラクターには適正というものがあります。例えば剣の適正が高いキャラクターであれば大剣や小剣といった似たタイプの武器を扱うと早くレベルが上がります。これによって一つの武器に限定されず、場合に応じて複数の武器を使えるように成長できるわけですね。もちろん、一つの武器を使い続けて最強クラスまで成長する事もできます。それは本人の方向性次第です。

プログラミングスキル=武器レベル?

これってプログラミングスキルにちょっと似てると、思いませんか?ロマサガの武器レベルもドラクエのキャラクターのレベルと同様に、最初のウチはぽんぽん上がっていきますがそのうち伸び悩みます。伸び悩んだ後は、簡単な敵と戦っても殆どレベルが上がらず、より強い敵を倒すことで少しだけ上がります。プログラミング言語も書きだした当初はどんどん知識を吸収できますが、ちょこちょこと知識の踊り場が来ますよね。まさに武器レベルはプログラミングスキルと同様の感触がありませんか?

私の武器レベルは?

私のプログラミングスキルについてですが、私はPHPとかRubyとかPerlといったスクリプト言語と、objective-cとかJava(AndroidSDKを少しだけ)といったネイティブアプリ向けの言語を主に扱っています。フロントエンド寄り(最近はそんな感じもしないけど)なjavascriptは一応やりますが苦手意識があり、Pythonscalaといったここ最近?流行りはじめた感のする2つのスクリプト言語は全くわかりません。ひょっとすると王道スクリプト系とネイティブ系の言語に適正があるのかもしれません。そんな私自身に対して独断と偏見でレベル付けするとこんな感じでしょうか。

よこざわ

剣(PHP) レベル14 大剣(Ruby) レベル10 小剣(Perl) レベル9 斧(objective-c) レベル11 棍棒(Java AndroidSDK) レベル7 弓(Python) レベル0 槍(scala) レベル0 体術(javascript) レベル5

ロマサガやったことのある人なら伝わると思いますが、これでラストダンジョンに潜ると大変な事になります

一発逆転閃きレベル

ちなみにロマサガには「武器レベル」とは別に「閃きレベル」というレベルもあります。ロマサガにおいて技は「覚える」のではなく戦いの最中に「閃く」のですが、これは武器レベルには関係が無く敵の強さ+運に依存してます、武器レベルが高くても閃いたり閃かなかったりします。つまり武器レベル1であっても超強力な敵(=難易度の高い案件)と戦うと強力な技を閃きやすくなります。もちろん武器レベル1だと満足にダメージを与えられない(=進捗アレになる)ので倒せない(=炎上する)と思いますが。。

レベル上げいろいろ

しかし自分の武器レベルが1だとしても、高い武器レベルの仲間と一緒に強い敵と戦うことはできます。その戦いの中で武器レベルを上げたり強力な技を覚えてその後の冒険に役立てるという事はゲームではよくありますよね。プログラミングにおいても、武器レベル40超えのスーパーなプログラマーに仲間に入ってもらい、 一人では到底戦えない敵と戦った結果、思いもよらない技を身につけてその後の案件に活かすという事はあると思います。

どうでしょう、なんかロマサガのレベルシステムって良く出来てると思いませんか?w

本エントリ寄稿にあたって

実はこの半年近く前に、とある凄腕Rubyistとこんな会話をした経験から本エントリの着想を得ました。Rubyist「あなたのRailsレベルは10くらいだね」 よこざわ「そのレベルというのはMAXどのくらいですか・・?」 Rubyistドラクエのレベルだと思ってくれればいいよ」 その時のレベルに関する会話はこれだけで終わってしまったのですが、今考えるとこの比喩って言い得て妙だなと感じ、ずっと覚えていました。それで今回他の言語のレベルはどうなんだろう?ということでロマサガに喩えてみました。

ちなみにドラクエのレベルMAXは99ですが、ロマサガの武器レベルはMAX50です。

それではそろそろ真面目に仕事へ戻りたいと思います、いつかは「乱れ雪月花」と「高速ナブラ」を出せるくらいにはなりたいものです。

ちなみにイタンジでは「乱数調整を駆使して大剣レベル上げています!」という方や、 「武器レベルはイマイチですが術レベルは高いのでクイックタイム使えます」という異端児な開発者を募集しています!