2012年10月14日日曜日

電子書籍#2

Google-Booksで、著作権フリーの文学作品が無料で沢山アップされている(いわゆる、青空文庫というやつです)ので、試しに「人間失格」を読んでみました。

なかなか、読み易かったです。
文学作品を読むには、かなり良いかもしれません。

しかし、よく落ちますが・・・
とりあえず、都度レポート送信をしておきました。
レポートなんですが、開発者のコンソールで見ると、同件は纏まって表示される(別件は別々に表示される)ので、落ちた都度、送信しておいた方が作り手としてはありがたいです。
もちろん、落ちないような状態にしてからリリースするのがベストですが。。。

次のようなケースでよく落ちるっぽい気がします。
・通信をしているときに操作(戻るボタンを押すなど)をした時
・本を開いている上体でスリープモードにし、復帰した時
再現率は100%ではないですが。

とりあえず、バグの話しは抜きに、機能としては中々気に入りました。
文学作品や小説などの類の本であれば、紙の本よりも便利。

ちなみに、iPhone用のiBooksと違い、日本語の本が充実している(iBooksは現状、英語限定)ことに加え、英語の本を読むにしても翻訳機能も整っているから、読書機能としてはAndroidが圧勝だと思います。という訳で、読書が好きな人で、Android or iPhoneどっちにしようか迷っている人であれば、Androidだと思います。気をつけなければいけないのは、ディスプレイに有機ELを使っている端末は選ばないようにすべきということぐらい(有機ELは画面焼けが起こるので読書に向きません)。日本語よりも英語を読むのが楽な方ならiPhoneでも良いと思います。Kindle-Fireという読書専用機もありますが、それについては使ったことが分かりません。ただ、ハードを沢山持ち歩くのは面倒なので、携帯に付随している方が良いかもしれません。

2012年10月12日金曜日

VGS has uploaded on Vector

VGSがVectorにアップロードされたようです。
http://www.vector.co.jp/soft/winnt/prog/se499640.html

これで、Version 1.01へVUPする作業に着手できます。
VectorにVersion 1.01がアップされるのは来週後半ぐらいになると思います。

2012年10月10日水曜日

3点マルチタッチをポーズにした理由

私が開発したVGSとAndroid版NOKOGI-Riderは、画面を3点マルチタッチするとポーズにする仕様にしましたが、これって実はiPhone移植用の機能です。iPhoneには、ホームボタンとボリュームしか外部ボタンが無いので。(Android版は「戻るボタン」でもポーズできる)

なので、Androidで使うことは殆ど無いだろう・・・と、思っていましたが、私自身がNOKOGI-Riderをプレイしていて「戻るボタン」よりも「3点マルチタッチ」の方をよく使っていることに最近気づきました。

作ってた当時は、
「iPhoneは何でホームボタンしか無いんだよ!」
などと憤慨していましたが。

それでも、何とかiPhoneでもシッカリ動けるスペックにしようと考えました。
考えに考えて思いついた苦肉の策が、この「3点マルチタッチ=ポーズ」という方式です。

エンターテインメントの分野に限ってみれば、
「ホームボタンだけあれば事足りる」
というApple談の理屈が正しかったのだろうと思います。

実は、iPhone移植をする気は無かったけど、(少なくとも3GSの頃までの)Appleは最高のエンターテイナーだったので、その頃の彼らの設計思想はそれなりに価値があると思っていたから、実際に移植するかどうかは別問題として、「iPhoneでもマトモに動けるスペック」を目標に設計してました。

結果的に成功だったと思います。

でも、実用アプリではやはり「戻るボタン」が無いと使いにくいと思いますが。
この点は、Apple=エンターテインメント機(専用)なので、仕方がありません。
恐らく、1ボタンマウスみたいなモノであろうと思います。

あと、実際に移植するかどうかは別次元の問題です。
少なくとも、今の私の考えでは、VGSNOKOGI-RiderをiPhoneへ移植する気はありません。
最悪必要に迫られてやるとしても、NOKOGI-Rider限定だと思います。
Androidのアプリ開発者人口を増やすことが、今のところVGSの存在意義なので。私は、Androidのアプリ開発者人口が増やすことで、マーケットの整備を加速させたいと思っています。(作る人が沢山増えれば、整備が進むんじゃないかと)

余談ですが、3GSの頃のiPhoneは本当に欲しかった。
その頃にauで3GSが出ていれば、多分買ったと思います。
# ソフトバンクにMNPしてまでも欲しいとは思わなかったけど。

VGS1.01

早速、VGSをバージョンアップ。
http://hp.vector.co.jp/authors/VA040196/vgs/index.htm

ですが、バイナリのアップはVectorで1.00がアップされてからにします。
Vectorでアップロード申請した場合、途中キャンセルができないので、1.00がアップされるのを待ち、それを確認したらドキュメントの入手方法にリンク先を追加し、それから1.01へ差し替えるという手順でバージョンアップする方向です。

しかし、Chromeだといちいちフレーム再読み込みしないと、内容が更新されないので面倒ですね。。。

2012年10月8日月曜日

VGEオープン化プロジェクト(完了)

ドキュメント込みで完成しました。

ドキュメント:
http://hp.vector.co.jp/authors/VA040196/vgs/index.htm

イメージ:
http://www.vector.co.jp/soft/winnt/prog/se499640.html

[追記] 9-Oct
印刷用にPDFにしてみたら、43ページもありました・・・さて、英語化はどうしたものか。
文字数カウントしたところ、約45,000文字。
Google提携の翻訳屋に依頼すると、1文字あたり2.6円~らしいので、117,000円~か。
サンプルプログラムや画面出力部分など自分でやれば良い部分(というか殆ど英語の部分)を削った所、約23,000文字(約60,000円~)。
なかなか微妙な額です・・・英語化はとりあえず保留で。

[追記] 10-Oct
あー・・・拡張データスロットみたいなのが必要かな?
任意バイナリデータをROMに取り込め、アプリから取得できる感じの。
必要っぽい気がします。
直ぐに欲しい人が居れば、メールで急かしてみてください。

2012年10月7日日曜日

VGEオープン化プロジェクト (5)

ドキュメンテーション作業中。
とりあえず、1章(概要)を書きました。
1章は唯一の駄文スペースなので、かなり遊びました。

以下、抜粋して掲載。(けっこう長いです)
※かなり短時間で書いたので、誤字・脱字が多いかも
 誤字・脱字はいつものことですが・・・

1-1 VGSとは

  VGS(Video Game System)とは、C言語を用いてWindows/Android共通の実装でゲームを作成できる仮想プラットフォームです。ゲーム開発者は、VGSを用いることでゲーム本質部分の開発に勢力を注ぎ込むことができます。似たような思想で作られた「プラットフォーム共通化ツール」の類は他にも腐るほどありますが、VGSの最も特徴的な点は、2Dゲームの開発に特化していることと、仮想ハードウェアの仕様が非常にチープであることです。
  ゲームハードウェアは、時代とともに「限界を無くす」方向へ進化してきました。しかし、その進化の結果、グラフィックのリアルさなどのゲーム本質とはあまり関係ない部分に対して開発リソースを注ぎ込む無駄が生じるようになりました。現在、1本のゲーム製作に掛かる費用は、嘗てのハリウッド映画に匹敵する莫大なものらしいです。その結果、とてもリアルでヌルヌル動く映画顔負けのゲームがリリースされている訳ですが、それらの「ゲームそのものの面白さ」に関しては、適切な費用対効果を得られているとは言い難いです。如何に動きがリアルであっても、ゲーム性が殆ど無く、つまらないものしか無いという印象です。ゲームを面白くするのに必要な投資の選択と集中を誤っていることがその原因であると、私は考えています。事実、注ぎ込んだ経営リソースはファミコン版マリオよりも桁違いに多い筈なのに、マリオの方が桁違いに面白かったと思うので。
  ゲームの本質部分を面白くするには、ゲーム本質部分の開発にリソース(資金や人材)を注ぎ込むべきです。ゲームハードウェアは、ある段階で進化を止め、ソフトの開発にのみリソースを集中するのが適切な選択だった筈です。しかし、全ての生物は遺伝的に、進化を止めることに対して背徳的な観念を持っているため、進化を止めることはできません。
  進化論の観点で見れば、ゲームに対して面白さを追求する行為そのものが淘汰されるべき存在なのかもしれません。
  しかし、私は今の「リアルでつまらないゲーム」より、嘗ての「面白かったゲーム」の方が好きです。もちろん、「ゲームが面白いか否か」の判断には多くの定性的な要素が関係するので、私の「嘗てのゲームの方が面白かった」という感覚は、ノスタルジーが創り出した幻想なのかもしれません。幾らでも反証の余地はあると思います。しかしながら、この議論について定まった解は得られていません。恐らくそれは「神のみぞ知る」領域の問題かもしれません。なので、これについて哲学しても禅問答にしかならないので、時間の無駄だと思います。最も賢い選択は、自分が正しいと思うことを信じることです。
  仮に私の考えが正しければ、このままでは面白いゲームは絶滅することになります。そこで、私は面白いゲームが絶滅を阻止するため、ゲーム開発者がゲーム本質部分の面白さを追求したモノ作りができるプラットフォームとして、この必要最低限のハードウェア機能のみを実装したシンプルな仮想ゲーム機「VGS」を開発しました。
  VGSで作られたゲームの具体例として、SUZUKI PLANが開発した「NOKOGI Rider」を遊んでみてください。
Windows版 NOKOGI Rider
Android版 NOKOGI Rdier
※製品版を買って頂けると嬉しいですが、無料の体験版(Lite版)でも、VGSの雰囲気を十分に掴める筈
  NOKOGI Rider(あと、Invader Block 2)は、VGSを用いて作られています。 NOKOGI Riderの場合、プログラム作成開始から完成まで半年弱の期間で作りました。 もちろん、開発に携わったプログラマは私ひとりだけです。 ついでに、NOKOGI Riderの開発が専業ではなく、普通の会社勤めのサラリーマン家業をこなしながらです。 普通の人間がこれだけのものを僅か半年弱でひとりで作るのは不可能です。 恐らく、専業で開発したとしても相当無理がある筈です。 別に私が特別能力が高い訳でもないと思います。
  VGSを採用したからこそ、それを実現できました。

1-2 使用許諾

  VGSを利用される前に、以下についてご了承ください。
  • VGSの著作権はSUZUKI PLANが有します。
  • VGSは、再配布可能とします。
  • VGSで作られたゲームを再配布する場合、必ずそのゲームに付随するユーザ公開ドキュメントに「本プログラムは、SUZUKI PLAN-Video Game Systemを用いて作られています。」と明記してください。
  • VGSを用いて開発されたプログラム及びデータは、その作成者が著作権を有し、 その作成者の責任で自由に配布又は販売できます。 それに際し、VGSに付属するモジュールの一部(ランタイム)を構成物の一部として同梱できるものとします。
  • VGSの不具合が見つかり、SUZUKI PLANに修正を依頼する場合、不具合の現象が発生する必要最小限のソースコードで実装したプログラム(再現プログラム)を提示しなければならないものとします。 再現プログラムの提示が無い不具合の報告は「VGS側の問題ではないもの」と見做します。 また、仮に再現プログラムの提示があっても、SUZUKI PLANは確実にその修正に応じなくても良く、修正の実施に関する判断はSUZUKI PLANの決定に従わなければならないものとします。
  • SUZUKI PLANは、VGS又はVGSを用いて開発されたプログラムの使用により生じた損失全般(VGSの不具合に起因する場合を含む)につき、一切の保障義務を負わないものとします。
  • (補足)
      明確な許諾条文とすることは避けますが、VGSを用いてゲームを作成する場合、極力商売をするようにしてください。 体験版などをフリーで配るのは良いですが、フリーで配るのはあくまでも体験版などの試供品に留め、開発者が利益を得る手段を確保することを推奨します。 なお、アフィリエイトはあまりオススメしません。なるべく有償で販売し、その対価で利益を得るように努めてください。 ただ、商売をするとなると色々と大変なところもあるので、使用許諾としての明文化は避けました。 ちなみに商売をする場合、特に気をつけないといけないのは、知的財産権(主に著作権)と税関系(源泉徴収や消費間接税)の事です。 知的財産権については、絵、音、プログラム(VGS部分を除く)の全てを自作すれば気にする必要がないので、それを推奨します。

    1-3 基本スペック

      VGSは「仮想ゲーム機」です。つまり、概念はハードウェアですが、実体はハードウェアではありません。 要するにエミュレータです。しかし、模倣対象が物理的に存在しない点が普通のエミュレータと異なります。 この方式を採ることで、VGSというゲーム機が死ななくなるメリットがあります。 例えば、現行のハードウェアが廃れても、VGSを新しいハードウェアで動けるように移植することで、 ゾンビのように生き残り続けることができます。
    (ハードウェアスペック)
    項目仕様
    画面サイズ240x320(縦画面のQVGA)固定
    同時発色数最大256色
    ビデオメモリスプライト(1面) + BG(1面)
    スプライト・GSLOT(後述)から任意サイズの矩形データを転送できる
    ・パレット番号0番を透明色とする
    ・特定パレットでの単色表示(マスク表示)が可能
    ・1/2サイズでの縮小表示が可能
    ・縮小+マスク表示が可能
    ・拡大機能なし
    ・回転機能なし
    ・半透明表示機能なし
    BG・GSLOT(後述)から任意サイズの矩形データを転送できる
    ・8方向スクロールが可能
    入力装置シングルタッチのタッチパネル + ポーズボタン
    入力装置
    (Windows)
    ・左クリックをタッチとする
    ・右クリック又はESCキーをポーズとする
    入力装置
    (Android)
    ・シングルタッチをタッチとする
    ・3点マルチタッチ又は戻るボタンをポーズとする
    ・ホームボタンが押された場合、ポーズしてからホーム画面に戻る
    音声22050Hz / 16bit / モノラル
    EFF音源PCM音源
    BGM音源波形メモリ音源(後述)
    ROM領域以下の3種類×各256個のSLOT領域で構成される
    ・最大256x256のグラフィックを最大256個(GSLOT)
    ・PCM効果音を最大256個(ESLOT)
    ・BGMを最大256個(BSLOT)
    ※1つのゲームで使用できるROMファイルは1つのみ(複数ROM不可)
    3Dグラフィック対応しない(※対応していないではなく)
    ネットワーク通信対応しない(※対応していないではなく)
    CPUエミュレーションしない
    ※動作環境のNativeコードで動作

    (波形メモリ音源 + 音源ドライバ)
    項目仕様
    基本仕様22050Hz / 16bit / モノラル
    分解精度22050fps
    チャネル数
    (同時発音数)
    6チャネル
    音色数以下の4種類。
    ・三角波
    ・ノコギリ波
    ・矩形波
    ・ノイズ
    音色の設定チャネル毎に自由に設定や切り替えが可能
    エンベロープチャネル毎に開始・停止について設定可能
    ボリュームマスターボリュームとチャネル毎のボリュームを設定可能
    ピッチベンド自動キーダウンが可能(自動キーアップは不可能)
    その他・ポーズ可能
    ・フェードアウト可能

    VGEオープン化プロジェクト (4)

    Android版も無事完成。
    ちょっとブレました。
    写真で撮って気づきましたが、小指と薬指のツメが長いので切った方が良さ気です。
    画面の内容は、昨日載せたWindows版から若干変更しました。
    (Hello,World!の表示座標を出しただけですが)

    あとはドキュメンテーション。
    明日中には書ける・・・かは定かではないです。
    まっさらな状態ではなく、ある程度書き進めている状態。
    とりあえず、モノが完成したから、誤ってウソ情報を載せてしまうことは無いと思うので、区切りが良いところまで書けたら随時WEBにアップしていく予定です。(そして、職場や喫茶店からアクセスできるようにして随時チェックできるようにする予定)

    せっかく、Google系サービスにドップリと浸かっているので、Googleドキュメントを使って書こうかと思いましたが、思ったよりも使い難いので、HTML(手書き)で書いています。
    昔書いた、S/FTP-Serverのマニュアルみたいな感じ。

    合理的ではないものを作りたい

    ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...