まるぼ実験場

まる募開発日記のつもりでしたがただの趣味技術ブログになりました。

ウィルコムPHS用のゲームを自作した記録(1)

※かなり昔に書いたブログ内容の移転です。正直今見返すのもアレなレベルなのですが、自らの記録のために書いておこうと思います。

学生時代に作った、Javaもゲームの作り方もよく分かっていなかった時期のプログラムですが、よくここまで調査して作ったなぁ……と思ったので。自分以外に今更ガラケー向きアプリを作成する奇特な人間のために(?)残しておきます。

ゲーム制作自体の解説より、どのようにして実機で動かしたかといったHowto的な側面をまとめることを主旨としたいと考えています。史料となる…かどうかは分かりませんが、制作の過程をまとめておきたいと感じ、執筆しました。

というか、もう新規契約が終了してしまったどころかサービス終了したプラットフォームのゲームを遊んでもらうことが絶望的であると悟ったので、ソースコードや色々を公開してしまおうと思ってこんなことを始めました。遅かったのは分かっているんです、でも何かの役に立てば幸いです。

制作成果物のダウンロード

京セラ製PHS、402KCでのみ実機動作確認。(製作途中一度だけWX05Kでも動かした)

402KC実機上ではSEが再生されないのは仕様となります。

SDカードのPRIVATE\DATAフォルダにjadを置くとデータフォルダに認識されるので、インストールを実行します。

jad(OneDriveなので表示に時間がかかるようです)

開発前の準備

まずは開発環境を整えました。

特有のものとしては、j2me Wireless Toolkit

Sun Java Wireless Toolkit 2.5.2 for CLDC Download

エミュレータが同梱されており、テストやソースコードからのビルドを行えるツール。現在ダウンロードにはOracleアカウントでのログインが必要。

 

このツールをインストールする前に、先にJava Development Kit(JDK)をインストールしておく必要があります。

Java SE - Downloads | Oracle Technology Network | Oracle

バージョンは当時の環境のことを思い出しながらあえて6にしました。

詰まった点として、JDKは32ビット版でないとJ2MEのインストール時に認識されません。64ビット版を既にインストールしている場合でも32ビット版が必要でした。

開発の参考にした資料(ほとんどWebのもの)

連載インデックス「携帯アプリを作って学ぶJava文法の基礎」 - @IT

初心者向け。一つのアプリを作っていく構成であるのでわかりやすい。

DoCoMo(Doja)とそれ以外のキャリアのMIDPの違いも解説されている。

 

www.ymobile.jp

各機種の仕様が載っている

 

www.ymobile.jp

サンプルコードなどがあるので参考になります。

ここの「サンプルコード」からダウンロードできるzip形式ファイルの中からゲーム制作で特に参考になったもの。

AudioPlaySample・・・音楽再生

FontSample・・・文字表示

GraphicsSample・・・Canvasの使用。塗りつぶしや図形描画

ImageSample・・・画像表示

KeyEventSample・・・キーイベント(数字キー記号キーの使用)

KeyEventSample2・・・キーイベント(方向キー決定キーの使用)

SpriteSample・・・Spriteの使用

www.ymobile.jp

詳細な機種スペックを参照

 

概要 (Unofficial 'CLDC 1.0 + MIDP 1.0' API Reference.)

Unofficial “CLDC 1.1 + MID Profile 2.0” API Reference. | KEI SAKAKI's PAGE.

MIDPの日本語リファレンス

 

モバイルの素-MIDP オープンアプリプレイヤー対応

 auオープンアプリプレイヤーでのアプリ作成

 

あとは自分の好きなテキスト編集ソフトを用意しておく。私はサクラエディタを使用しました。

今回は、ウィルコムY!mobilePHS、402KCで動作させることを目標としています。

www.ymobile.jp

最後の京セラ製PHSであり、PHS向けJavaアプリを動作させることのできる最後の端末。

OSは昔から変更なかったと思うので確かTRON。ちなみに今Y!mobileから出てるシャープ製のガラケー型端末はUIそっくり中身Androidの別物です。従来のJavaアプリは動きません。

 

さて、PHSにて採用されているJavaMIDPと呼ばれているもの。

ガラケーではSoftBankauオープンアプリEZアプリ(J))、EMOBILEで採用されていました(DoCoMoは言語はJavaの独自のもの)なので、各社独自の追加機能はあれどY!mobile(ウィルコム)はSoftBankauのアプリの作り方そのままでいけるようです。

PHSと携帯電話の違いについてはこの記事では割愛させていただきます。Javaアプリに関していえば性能や独自機能以外違いはないと思います。

また、細かな制限があるようです。

参考文献:http://www.atmarkit.co.jp/ait/articles/0809/17/news135_3.html

 現在、勝手アプリを制作したい場合ウィルコムau向け(契約している端末のみ?)ということになります

 

では、ターゲットの端末の性能を確認していきます

www.ymobile.jp

このページより、

>搭載するJavaVMは、MIDP 2.0/CLDC 1.1に準拠したもので、JSR-75のFile Connectionにも対応しております。
>また、一部の機種は位置情報、カメラのAPIマスコットカプセルV3.0にも対応しております。
>対応する画面解像度はQVGAで、描画可能領域(Canvas)は240x276です。

この辺はほぼ全機種共通と考えて良さそうです。

 

このページにあるJava機種情報と対応API一覧表は要チェック。

機種情報:https://www.ymobile.jp/service/contents_service/common/pdf/javatm_lineup.pdf

対応API一覧表:https://www.ymobile.jp/service/contents_service/common/pdf/javatm_api.pdf

WX12Kまでしか書かれてない…まぁ、ほぼ上位互換的に性能が上がってるはずなのでWX12Kで動けば動くでしょう(

 

機種情報の方のWX12Kの情報も参照しておきます。

www.ymobile.jp

 https://www.ymobile.jp/service/contents_service/common/pdf/function.pdf

f:id:kikyou_kiki:20180504165010p:plain

ほとんど同じですがサウンド関係についてはこちらに詳しく書かれているのでチェックしておきます。

スペシャルサンクス

f:id:kikyou_kiki:20180518003048p:plain
ばななん。さんに特殊タイトル画面イラストを描いていただきました。
ゲームに使用するイラストを他人に依頼することは初めての経験でしたので、大変勉強になりました。

依頼の仕方などで相手と文字でやりとりするにあたって、相手にどのような文章にして自分の要件を伝えることができるか、などを考えるきっかけになりました。

saraemi.com

キャラクターの設定資料などを用意していなかった中、(あの後ろ姿三枚のタイトル差分くらい)、今まで後ろ姿を向いていたキャラクターがこちらを向いて笑顔を見せるという場面を表現していただきました。

このブログを作った理由の一つに、この素晴らしいイラストがプレイヤーの限られるアプリ限定になってしまうのが勿体なかったというがあります。

ばななん。様へ制作に快く協力していただいたことを、この場にて感謝申し上げます。

使用した素材など

音楽:童謡「てるてる坊主」(MIDI)

音楽研究所 様

効果音:ゲーム用効果音「reflect」(wav)

TAM Music Factory 様

ゲームのBGM、SEに使用しました。

童謡てるてる坊主の童謡風、ハープアレンジをステージBGMとゲームオーバーBGMに使用。

かすり時のSEにはreflectを使用しています。

*1:アプリゲット等。今でいうAppStoreやGooglePlayのようなところ