IIDX全曲表の作り方


IIDX全曲表なるものをずっと管理しているわけなんですが、そろそろ本気で手直ししたいところなので、現状と更新についてblogの新しいネタになればいいかなー、という具合でなんか書いてみます。

歴史。最初は全曲表はIIDX用語集において、曲の解説もやりたいよね、という話をPGKの人としていて、そのなかで曲名と各データが一覧で見れる物凄くでかい曲表をPGKが作ってきたことから始まる。(正直、よくこんなの作ろうと思ったなぁと感心したものです。)

自分はその曲表にbpm変化の表をつけたかったので、その辺を調査して付け足して公開したのが初代全曲表。公開したのは10thstyleの頃だったかと思います。

超巨大曲表はまさに圧巻という感じだったんですが、やはり巨大であるがために使いにくいなぁと思うところもあり、指摘もあり、プログラムをちょっとばかりかじっていた自分が見やすくするためにいろいろ改造していって、まあ現状の奴があるわけです。

最初はJavaScriptオンリーで作っていたんですが、当時のブラウザでは重すぎたり、クロスブラウザ対応に四苦八苦することになってしまったので、たまたま大学でさわっていたPHP+PostgreSQLにて作り直しすることにしました。これがver.3.1?だったかな。

詳細表示を使ってる人がどれほどいるのかわかりませんが、これを実装するのにちょっと頭をひねりました。曲の詳細を表示したいけど別のページには飛ばしたくない。でも全データを読み込ませると重い・・・という感じでした。

たまたまAjaxが当時流行り始めるあたりで、「これ使えばいけるじゃん!」ということで使ってみたりしたのです。当時はライブラリも充実してなかったですが、今ではもうAjaxなんてあたりまえな話ですね。

現状の詳細データは難易度変更がさっぱり更新されておらず、微妙な立ち位置なわけですが、これについてはまあどうにかなるように設計し直したいと思います。

で、本題。現状の全曲表。

全曲表はPHP4とPostgreSQL7.4で動くように作ってます。借りてるXREAのサーバの仕様。XREAはMySQLも動くんですが、使ったことがあったのでPostgreSQLにしました。

PHPはこんな感じ。

  • iidxamd.php(PC用メイン)
  • iidxamdlib.php(DBパスワード他)
  • iidxamd_i.php(携帯用メイン)
  • iidxamd_detail.php(PCの詳細表示用)

中身を見ていくと、ずいぶん昔に作ったものなので、今見ると大変残念な仕様が多分に含まれておりまして、なかなか面白いことになっています。曲表を普通に表示するのと、検索結果を表示するのとで、ほとんど同じHTMLを分けて書いてたりw まあ当時は表示さえ出来ればよかったのです。

テンプレートなどという考えは全く頭になく、MVCなんてあったもんじゃありません。HTMLとPHPが完全に混在していて、直すのすら一苦労という感じになってます。マジックナンバーも当然の如く使用されています。パッと見よく分からないです。悪いプログラムとはすなわちこういうものだなぁと感心する次第です。

まあ、そうは言っても昔に作った物なんてそんなもんでしょうね。多分今作ったものでも分かる人が見れば鼻で笑うようなもんでしょう。それでも少なくともいい勉強にはなりました。

とりあえず作り直すのに問題になりそうなDBのテーブルの奇妙さについて次回があれば書いていきたいと思います。


「IIDX全曲表の作り方」への2件のフィードバック

  1. 作り直しを検討ということで一つ要望を。
    今CS曲はCSカテゴリに入っていると思うんですが、RA全曲とかにしたときにCS曲だけまとまってるのを、ACと同じ移植のシリーズに入れてもらえないでしょうか?
    結構前に移植された曲だとACだとどこにあったっけ?っていうことが何度かw

  2. ACのフォルダに合わせる、ということですよね?了解です。
    その方が使いやすいと思うので対応します!

コメントを残す

メールアドレスが公開されることはありません。