PS Suite SDK(OBT)導入〜PS Vita実機動作確認まで

発売日に購入したけど3Gの初期不良でPSクリニック行きにしていろいろげんなりして……、
戻ってきてから起動することもなかったVitaがようやくアップをはじめました。
リトバスは買ってあるよ!

必要なハードウェア

PlayStation VITA
 3G版つかってます。もうそろそろ半年たつから通信できなくなるけど。
・VITA専用メモリー
 16GB使ってます。
・WindowsPC
 Mac版がないので仕方なく。C2Q世代のハード+Windows7で試しました。
 OpenGL2.0以上のグラフィックスカードとのことなのでほとんどの方はOKでしょう。
・VITAとPCをつなぐUSBケーブル
 VITAについてるやつ。
以上。

シミュレーターだけならWindowsマシンがあればいけます。

必要なソフトウェア

・PC側
Developer Program for PlayStation®Suite (Open Beta)
http://www.playstation.com/pss/developer/index_j.html

へ行ってSDKを落とす。
インストラーに従って、OKを何回かおす。
特に躓くことはないです。
Xperiaは持ってないのでわかりませんがVitaのドライバなども自動でいいようにしてくれます。

SDKのなかにPlayStation Suite Studio(PssStudio)という統合開発環境もついてるのでVisualStudioなくてもいけます。
Monodevelop的なものがついてるので、エディタもなくてもいけるけどお好みにあわせて。

VisualStudioをいれてると連携するための何かがあるかもしれない(未確認)

・Vita側
PlayStation®Suite Development Assistant
上記URLをVitaから開くと、PlayStationStoreに飛ばされてインストールできるようになる。

こちらのアプリが、デプロイ先になるようだ。
まだPCとつなげないで起動すると空のリストのランチャーみたいなのが起動する。
デプロイするとこちらのアプリ内にアプリが追加される仕様らしい。

また、ネットワークでの認証をしているみたいなのでWifi環境下でないと開発できない
一度認証すると24時間ほど再認証はしないとのことです。

このあたりの詳しい情報はSDKのなかのマニュアルに日本語でも書いてある。
普通にインストールすると
C:/Users/Public/Documents/Pss/doc/ja/index.html
にあるのでここから情報をたどっていくとよい。
ネット上にもあると便利なのだが(Macで見たい
(XPだとDocuments and settings\All Usersとかそういう場所だと思います。

PS Suite SDK→関連ページ→PlayStation®Vitaで実行するための設定
で動作確認方法がわかります。

とりあえずどんなの作れるの?を確認するサンプル

フォルダ名をみればだいたいなんのサンプルかわかるけど、
C:/Users/Public/Documents/Pss/doc/ja/sample_list_ja.html
に行けばリストがあります。

DemoパッケージやGameEngine2Dあたりがわかりやすくサンプルゲームとなっています。
Demoパッケージ内のゲームは3Dゲーム中心のデモです。
ソースコードまで読んでみるのはちょっとヘビーそうな内容です。
2D限定であればGameEngine2DのDemoを見てみるのが良さそうです。
タッチを利用したパズルゲームと、物理ボタンを利用したサイドスクロールアクションがあります。


ファイル→開くから.slnを開いてF5を押せばビルド&実行です。

デフォルトではPC上のシミュレータになっているので

・ウィンドウの上のほうのPlayStation Suite SimulatorとなっているリストボックスからPS Vita(番号)となっているのを選ぶ。
・Vita側でDevelopment Assistantを起動する
・F5
でアプリをインストール&実行となるようです。

すっごい簡単。

しかし、このアプリ落としてランチャーに戻る方法がわかりません。
Homeに戻って終了?わかったら追記する。

しかしこの2Dのアクションゲーム、サンプルゲームなのに処理落ちしていて少し心配。
(敵の死亡エフェクトで大量のパーティクル出しているときにVita実機で処理落ち)

GameEngine2D

GameEngine2D
•Basic functionality needed to create simple 2D games
•Sprite system, scene graph, scheduler, actions
API is conceptually similar to Cocos2D (http://www.cocos2d-iphone.org/)
•Source code is provided

http://www.playstation.com/pss/developer/2012GDC-PSSuiteOverview.pdf

GameEngine2Dは2Dゲームに必要な基本機能を備えたエンジンとなっているそうです。
cocos2dによく似た設計となっているそうですので、cocos2dの経験がある方はとっつきやすいかもしれません。
すごいざっくりとDirector > Scene > Layer > Sprite というような構造だったと思います。
うろ覚えですみません。

3Dのほうも動かしてみた

シューティングゲームと、アクションRPG風のサンプルを動かしてみた。
5個ぐらいあったので全部はまだ見てないっす。
動作速度等は特に問題なく、30fps(60ではないのね。

表示はどれもシンプルなもので、3Dに関しては整備された描画エンジンまでは用意してないみたい。
Unityほど簡単に、というわけにはいかない。

あくまで開発環境であって、UnityやUnrealのような高度なエディターとセットになっているわけではないです。
プログラム書かずにモデルが表示できる、ということもないです。

突然VitaがPCから認識されなくなった!

とかなんとか色々サンプル動かしたりを最初はスムーズにいけてたのに
突然認識しなくなった
・USBポート差し替え
・PC再起動
・Vita再起動
ぐぬぬ

1時間ほど悩んでたらVita側のコネクタ差込口が逆でした。
抜き差ししたときに逆にさしちゃったみたい
しかし逆でも刺さっちゃうのは、問題ないのではないかと。
と、かなりくだらない箇所で悩んだりもしました。

サンプル動かした雑感

とりあえずサンプルをざっと動かしたくらいですが
PSPのHomebrewができたときのわくわく感を思い出しました。
思い出しただけでiPhoneAndroidで誰でもアプリが作れてしまう昨今なのでインパクトは大きくはありませんが、個人が発売して半年も経たない最新ゲーム機で開発できるのはなかなかに魅力的だと思います(XNAもありましたが……。

スマホにない魅力という点ではやはり物理ボタンですね。
アクションゲームなどは2Dのも3Dのも仮想ボタンのiPhoneより圧倒的に操作性がイケてます。

中学生くらいの頃にこんなおもちゃほしかったなー。
PIECE Official WebPage http://aquaplus.jp/piece/spec.html
開発して遊べる携帯ゲーム機といえばAQUAPLUSのこんなのもあったね。

FlashCS5のPackager for iPhoneを使ってみる

あっさり出来たので特に記すこともないけども、FlashCS5の体験版でAdobeの宣言どおり機能自体は削除されてなかったのでやってみました。

Flash CS5の新規作成にて

iPhone OS用のテンプレートがあったのでそれを使用。
初期設定では320x480の24fpsでした。
この先はいつものFlash制作と変わらないようです。
とりあえずスクリプトは書かずに静的テキストなんぞをおいておきました。

Flash CS5の設定

Windows/MacOSどちらでも開発可能のようです。

File→iPhone OS Setting

Deploymentタブ
iPhone digital signature
Certificate
MacのKeychainから書き出した.p12ファイルとその開錠に使うPassword
(最初にiPhone Developer登録のときに作ったPrivate Key。
複数台のMacで開発時にも使うあの証明書)

Provisioning profile
通常のiPhoneアプリ開発時にも使うアレをPortalから用意しておきます
〜.mobileprovision
App ID
*じゃなければなんでもOKぽいです

Publishボタンでswfやipaが書き出される。
通常のswfのPublishと違って大分時間がかかります。3分間くらい待ちます。

ipaファイルを実機へ転送して確認する

ipaファイルをそのままiTunesで同期できるらしいですが、
手順が若干面倒なので簡略化する便利なソフトがありました
PickupAppFromIpaPayload - CS5のiPhoneアプリ開発で実機確認を便利に Kawanet Blog II/ウェブリブログ
ipaからappファイルを抜いてXcodeのオーガナイザから転送できるようにするようです。

Devicesの使用デバイスに、Publish時に指定したProvisioning Profileがインストールされていることを確認してApplicationsに.appをD&D(or+ボタンでBrowseする)

WindowsではなくMacXcodeを使う場合です。
Windowsの場合、iTunesからいけるかもしれませんが最初に.mobileprovisionをインストールするのにXcodeが必要かもしれません。)

実際のところどうなのか

ipaの書き出しに時間がかかるので実機検証するのが少し面倒です。
PC上ではサクサク動いても転送したら処理落ちしてるなんてことはよくありそうです。
(逆にiPhoneSDK付属のシミュレータのようにMac上では遅いけどもiPhone上では速くなる、みたいなことはあまりなさそうです)
iPhone上でどんなコードを書いたら重くなるのか、どんな機能を使えば軽量化できるのかネット上にノウハウが蓄積すればActionScriptによるiPhoneアプリ開発は現実的に思えましたが。ぐぐってもニュース記事はいっぱいヒットするのに実際やってみた人(やってみたい人)がまだあまりいない上にApple的に審査通さないし、Adobeは機能のサポートを継続しないといってるので、どうしたものかなと

UbuntuでPT2録画鯖構築メモ

忘れないうちにメモを。と思いながら忘れていたので中途半端な状態でBlogへ。

環境

サーバー:NEC Express5800/110Ge
OS: Ubuntu 9.10 Server 32bits
ICカードリーダー:SCR3310-NTTCom
それとPT2

Linux(Ubuntu)でPT2 - kissrobberの日記
PT2(1)ハード導入〜録画テストまで - がんばります
このあたりのBlogが詳しくドライバのビルド〜導入から、最終的にrecpt1を動かして録画するまでの手順として詳しい。
実際の作業ログが失われたので、思い出したりコピペしながらメモる。

ここのTipでもよいけど、arib25が含まれていないなど変更点が多いので
c44e16dbb0e2の番号がついてるリビジョンを持ってくる。

recpt1のtipにはarib25が含まれていない - とあるSEの忘却目録

・hgコマンドを利用している場合は「hg up -C -r 73」とリビジョンを指定
・hgコマンドが使えない場合は「http://hg.honeyplanet.jp/pt1/rev/c44e16dbb0e2」からダウンロード

というわけでpt1-c44e16dbb0e2.tar.bzが手に入ったところから

ドライバのビルドとインストール

$ sudo apt-get -y install build-essential linux-headers-`uname -r`
$ make -C /lib/modules/`uname -r`/build M=`pwd` V=1
$ sudo make -C /lib/modules/`uname -r`/build M=`pwd` V=1 modules_install
$ sudo depmod -a
$ sudo make install
$ sudo cp etc/99-pt1.rules /etc/udev/rules.d/

ここでReboot。

$ dmesg | grep pt1
$ ls -la /dev/pt1*

pt1video0 〜pt1video3の4つのチューナーを認識していればOK。

カードリーダーのインストール

$ sudo apt-get -y install libccid pcsc-tools
$ pcsc_scan

SCR3310なんとかと表示される

$ sudo apt-get install pkg-config
$ cd arib25/src
$ make

たくさん怒られる

$sudo apt-get install libpcsclite

エラーログ見るとこれが足りなかったらしい

$ sudo apt-get install pkg-config
$ cd arib25/src
$ make
$ sudo make install
$ cd 
$ cd recpt1
$ make
$ sudo cp ./recpt1 /usr/local/bin

録画コマンド

$ recpt1 --b25 --strip 27 30 test.ts
27(東京ではNHK総合)を30秒録画。
あまりに短い秒数(5秒や10秒)だとMPCHCで再生できないファイルになった。
VLC再生可能。

udp送信

$ recpt1 --b25 --strip --udp --addr 送信先IPアドレス --port 1234 27 600
20Mbps程度の帯域が安定して送信可能なら別マシンにストリームを送ることもできる。
無線LANなどで帯域が安定しない場合ブロックノイズが発生するなど。

epgdumpやepgrecの導入はまた後で書く機会があったらいいな。
PT2(2)録画サーバ - がんばります
一応ここに書いてあるので参考に。

Mediatombの導入も…。

iPhone Developer Programの登録でIdentifierが確認がいないとか言われたとき

以前はTeamアカウントからMemberにInvateしてもらったけど、今回はIndividualで新規登録するところから。

基本的に英語だけどポチポチ指示に従う。
が、途中で99$(10800円)払うところでAppleStoreに飛ばされて、ここだけ日本のApple
ここで先程入力した英語住所がコピーされているけど、都道府県だけセレクトボックスなのでTokyoじゃなくて東京都にしないとダメでした。

とりあえずそんな英語だか日本語だか良く分からない状態で注文して、数時間後Activationのメールが届きます。
クリックするとエラー。

We are unable to activate your iPhone Developer Program membership.

contact usからサポートのフォームに飛ぶのでヘタな英語で、なんとかしてくださいと頼む。
一応Profileの住所が案の定東京都だけ???になってたので文字化けだけ修正しておいた。

すぐにアメリカのサポートからアジアのサポート経由で日本人の担当者から、手動で認証するので注文番号と請求先書いて返信してくださいと返ってくる。言われたとおりにAppleStoreの購入履歴から情報をコピペして返信。1時間経たないうちに認証完了したと返信(Profileの修正したっていう英語と日本語の両方メールきた)。以前送られたActivationのメールの中にあるリンクをおすと今度はエラーでなくWellcome。

と、一応メモっとく。

以後iPhone Developer Program Portalに入ってからの手順は7月頃ビルドしたときと大して変わってない模様、
今回はTeamでなくIndiviualなのでAdminの自分だけでMemberの追加等はできませんでした。
XcodeからビルドしてiPhone実機へ転送し実行するまでの手順 - タナカイチロウの日記

Snow LeopardにUpgradeしたらやはりRailsが動かない件

64bit化に伴いMacPortsRubygemsが死んじゃうよって話は
Snow Leopardにアップデートした後に気をつけること 主にMacPortsとrubygemsについて - mizchi log
このあたりで語られていましたが

とりあえずRailsを動かしたいです。

http://journal.mycom.co.jp/news/2009/09/01/033/index.html
Upgrading to Snow Leopard | Riding Rails
基本的には上の通りにMacPortsを再構築して、PassengerはとりあえずMongrelで動かすから無視して
MySQLは公式からx86_64を入れ直しなどなど。

一点だけ上記の通りに行かなかったのがMySQLドライバで以下のようなエラーが出る。
gem uninstall mysqlの後に

$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
	ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
	--with-mysql-config
	--without-mysql-config
	--with-mysql-dir
	--without-mysql-dir
	--with-mysql-include
	--without-mysql-include=${mysql-dir}/include
	--with-mysql-lib
	--without-mysql-lib=${mysql-dir}/lib
	--with-mysqlclientlib
	--without-mysqlclientlib
	--with-mlib
	--without-mlib
	--with-mysqlclientlib
	--without-mysqlclientlib
	--with-zlib
	--without-zlib
	--with-mysqlclientlib
	--without-mysqlclientlib
	--with-socketlib
	--without-socketlib
	--with-mysqlclientlib
	--without-mysqlclientlib
	--with-nsllib
	--without-nsllib
	--with-mysqlclientlib
	--without-mysqlclientlib
	--with-mygcclib
	--without-mygcclib
	--with-mysqlclientlib
	--without-mysqlclientlib


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

(これ以前も同じエラーでた。--with-mysql-configが間違ってなければ通るはずなんだけども……

と思いつつgemがおかしいんじゃ?と勝手な憶測のもと

$sudo gem update --system

とやっても既にLeopardの時にいれたgem 1.3.5と最新なせいか何も変更してくれない。

もう一つの方法らしいrubygems-updateの方を試してみると

$ sudo gem install rubygems-update
Password:
Successfully installed rubygems-update-1.3.5
1 gem installed
Installing ri documentation for rubygems-update-1.3.5...
Installing RDoc documentation for rubygems-update-1.3.5...
Could not find main page README
Could not find main page README
Could not find main page README
Could not find main page README

$ sudo update_rubygems
Installing RubyGems 1.3.5
RubyGems 1.3.5 installed

=== 1.3.5 / 2009-07-21

Bug fixes:

* Fix use of prerelease gems.
* Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458.

Deprecation Notices:

* Bulk index update is no longer supported (the code currently remains, but not
  the tests)
* Gem::manage_gems was removed in 1.3.3.
* Time::today was removed in 1.3.3.


------------------------------------------------------------------------------

RubyGems installed the following executables:
	/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem

再度mysqlのgemにチャレンジ

$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions.  This could take a while...
Successfully installed mysql-2.8.1
1 gem installed

No definitionがたくさん出るけどとりあえずRailsが動くまではできた。
なんだかよくわかりませんが。

結論:クリーンインストールしたほうがいい?

三鷹ICT事業者協会・三鷹プログラマーズカフェ合同発表会&納涼会に行ってきた

三鷹ICT事業者協会・三鷹プログラマーズカフェ合同発表会 : ATND

うーん、この日のためにiPhoneアプリを勉強してきたのですが、結局発表できるほどの成果物を上げる事が出来ず……。
実物なしでもLTのためのスライドだけでも用意できたらよかったなぁとちょい反省です。
まだ発表する側になるのは不安なのですが、そろそろ勉強させてもらってばかりでは申し訳ないので僕も発表していきたい。
Give&Takeで。

LTも言語問わず様々な方面の発表が聞けてとても良かったです。
AndroidiPhoneもGoogleAppEngineもPHPもぐりもんもなんでもありって感じでとてもおもしろい。(気になるトピックは直接本人に深く聞く事もできますし。
親子プログラマは衝撃的だったなぁ。素晴らしいGeek家族です。
まちづくり三鷹さんの三鷹オープンソースプラットフォーム計画も素晴らしい。
いまのpgcafeの雰囲気すごく好きなので、今後も良い方向にpgcafeが進んでいくと嬉しいし、
お世話になってばかりなので僕もお手伝いできることがあれば協力していきたいです。

納涼会のほうでは特に事業者の方のお話も聞けてとても勉強になりました。
pgcafeとは違って、普段あまり接する機会のないスーツな経営者層の方々なのでとても貴重な機会です。

GAEの話はちらちらと出るけどもAmazon EC2の話題があんまり出ないので、話してみたいな……とはいえ僕自身がEC2/S3の勉強不足なんですけども。

とか興味が広がりすぎるのも弊害ありかな!
とりたててRuby(Rails)とiPhoneアプリはしばらくメインで勉強していきたい。

参加者の方々大変ありがとうございました。

Mitaka.rb第四回に参加してきた

Mitaka.rb第四回 納涼Special : ATND
吉祥寺「epices」にて。
スペシャル版なのでrubykaigiの参加費を超える7000円という金額ながら、今回もとても美味しいフレンチでした。榊さん誕生日おめでとうございます。
もう三鷹美食クラブだとかBisyoku.rbに変えた方がいいんじゃとか話してしまうくらいおいしい料理を囲みながらRubyRubyに関係ない雑談をする会。
というか学生の僕にはもったいない料理です。おいしいだけじゃなくて、ちゃんとLTも。

万葉の大場さん夫妻のLTは実践投入できそうなプラグインの紹介なのですが、LTが時間オーバーしてしまったのが残念
暮らしの業(2009-08-25)
というわけでBlogに記事かかれてたのでここを見よう。

iPhoneRubyが大好きなぼくはmootohさんのるりまをiPhoneで読む「るりまふぉん」は興味が引かれる。
main
githubで公開中なのでソース読んでみたい。

こしばさんのrubykaigi受付裏方LTもおもしろかった。技術系のノウハウが生かされるイベント運営スタッフというテーマ。

などなど、関係者および参加者の皆様ありがとうございました。思い出しながらのメモ書き程度ですみません。