Google

2012年7月31日火曜日

Unityでコインゲー開発話:負荷実験

前回の話の続き。
今回はインスタンス管理システム作成までの話です。

普通、大抵のゲームは出現するオブジェクトが決まっており、仕様上で個数等がきっちり決まり、メモリマップまで作成可能になります。

弾丸等使い捨て的なものも例外ではありません。
Unityに最初から付いてくるAngryBotsというデモのプロジェクトを見てみましょう。
ヒエラルキーで見ると、プレイヤーが撃つ弾のオブジェクトは上限が決まっており、使い回しをしているのがわかります。


マウスで弾を撃ちつつ、ヒエラルキーを見てみましょう。
InstanceBulletプレハブが最初から6個あって、
有効無効切り替えしてるのがわかります。
しかし、メダルは弾より管理が困難です。
じゃあ管理しなかったらどれぐらいいけるのか?って事になり、まずは実機でテストしてみよう、という方向になりました。
その際に作ったのが以下のようなシロモノです。

■コイン負荷テストデモ版概要
・ステージ上にボックスコライダーを1個作成
・シリンダーをベースにしたコインを作成し、リジッドボディを付ける
・厳密ではないが、現在の生成枚数カウントをOnGUIで常に表示
・後はUpdateでひたすらコインをInstantiateしひたすら落下させる

さすがにデモの現物は出せないですけど、Unity知ってる人なら分かるでしょう。
注意点としてはUpdateで毎回生成すると、オブジェクト同士がコリジョンでぶつかってしまい、あらぬ方向に飛び散ることでした。
これを解決する策として、Vector3の生成ポイントをバラケ気味に複数準備し、生成箇所を順番にローテーションという簡単な方法で事足りました。


やった事のコア部分は上記のような感じです。(C#)
Vecotor3等がpublicになっているのはインスペクタに変数を表示して簡単に修正するためで、決して隠蔽を知らないわけではありませんw。
宣言時に[]にしておくと、配列の数と中身をインスペクタ上で管理できるので割りきって使うこともできます。

これを当時のiPhone3GS/4に入れ、何度も負荷実験しました。
しかしこの時にもう一つ、大事なことがあったのです。

「コインの落下速度をどうするか」

Unityの利点として重力シミュレーション機能があります。
負荷にも直結するこの話は、上記のデモとも無関係ではなかったのです。

長いのでこのへんにして続きます。

2012年7月30日月曜日

Unityでコインゲー開発話:冒頭

Unityの記事再開といいながら何も書いてないので少々。

タイトルの詳細は言えませんが、実はUnityで幾つかスマホゲーム作ってまして。
コイン落としゲームも何個かつくってます。
他所様ではメダルゲームを20分で作るという記事がありましたが、実際に作るとなるとかなり大変です。
じゃあ実際にどうやったのか?という経験話を少しずつ紹介します。

今回はまず検討する話から。

まずプロジェクトの最初にやったのは、Unity3.xがメダルゲームというジャンルにどこまで対応できるのか?という点でした。
20分でできる記事は無限にジャラジャラやってますが、スマホではCPUもメモリも限界があります。
なにより私が仕事してた時、Unityには以下の問題がありました。

 「シーン切替までdeleteオブジェクトがメモリリークしっぱなし」

シーンといのはFlashのシーンとよく似た仕組みです。
後々VerUp等でこの問題は解決されるのですが、当時は絶望的でした。
ここがクリアできないとどうなるか。

 「遊んでるうちに重くなって最後は固まる」

という、リジェクトされかねないリスクが合ったわけです。
シーンを切り替えるったって、タイトルとメイン画面、後はやってもオプションぐらいが関の山じゃないでしょうか。

事を進めるために私がまず決意し、実験したこと。それは、、、

 「インスタンスを自前管理する仕組みを作る」

という事でした。
Unity3がまだ早い時期だったので面倒だったのを覚えています。

この続きはまた次回。

2012年7月29日日曜日

マリオ2がフリーズ

息子が新しいゲームを購入。
前々から欲しがってた「Newスーパーマリオブラザーズ2」。


さすがにLLは重いし高いしで買ってませんが。
ところがかって早々にトラブルに遭遇。

3DSは裏でOSのメインプロセスが生きてて、ゲーム中に本体の明るさ設定とかも変えられるようになってるんですが、これが問題でした。
裏に戻って変更してゲームに戻った瞬間、フリーズ!!!

なにやっても元に戻ってくれません。
まあ、こういうときは電源やリセットなどの本体に関するスイッチを長押しってのがこの世界のルールなんですが、息子は知らなかったようで。

無事にリセットが掛かりましたが、巻き戻ったと文句を言っておりました。

7/31追記:
ステージ選択状態でコイン枚数が増えている際、増え終わる前に入ってしまうとコインが増えない時があると息子が文句を言ってました。
もしかして今作ってバグが多いんじゃ、、、。

2012年7月28日土曜日

秋葉の隠れ家バー

秋葉のPlayerで友人と飲み会。
ここはヨドバシのすぐ近くで、軽く飲むときにはいつもここ。 

この写真は広い物。外見はこんな感じ。
システムが面白くて、海外の見たこともないようなお酒を自分で選んでカウンターで単品支払いして後は好きな席で飲むだけ。

レモンピールと黒ビール。右のつまみはジャーキー。
ピンクグレープフルーツのビール
珍しいパトラッシュのビール。
これはシードル
1本800円〜と高額ですが、話のネタにはぴったり。
ライブやったり、外国の人がいっぱいいたりします。
秋葉に来た際はぜひどうぞ。

2012年7月27日金曜日

Adobe包囲網強化のお知らせ

以前当ブログで書いたこの記事。

http://pukapuka-ahirusan.blogspot.jp/2010/10/adobe.html

古いアドビの体験版を落とせるという内容でした。
アドビ製品って、お客さんとのバージョンが合わないと大変だったりするので、この手の情報は結構重宝していたのですが、ブログのコメントから「もうアクセスできない」との連絡をもらいました。

まあ、2年近く経ってますし、なんかしら変わるとは思いますが、あちこち探しても古いAdobe体験版ってなくなってきてるようです。
昔は認証が厳しいようでそうでもなかったAdobeも、ここにきてかなり厳しくしてるってことでしょうかね。

が、かなり古いのは無理としても、最近のバージョンでしたらこんなまとめを見つけました。

http://prodesigntools.com/download-adobe-cs4-and-cs3-free-trials-here.html

まだまだ現役と思われるCS3/CS4の体験版ダウンロード一覧です。
このページも2010年に書かれた後、最近更新してるようですね。
試してみて落とせるのが確認できたので、必要な方はお試しください。

2012年7月26日木曜日

Unity記事再開

大きな仕事のくくりが付いたのでUnity記事を再開します。

と、思ったら丁度Unity4へのアップデートキャンペーンがやってるようです。

日本語公式サイト:
http://japan.unity3d.com/

Unity4を事前に注文すると3.5も使えるとか、事前アップグレードだと
安い等の特典が付いてきます。
これは7月末までのようですので、欲しい方はお急ぎ下さい。

でも値段はこんな感じ。色々付けると高いですよね。
私はまだ即買いせず様子見です。
お客さんの環境のプロジェクトファイルと互換性を保持しないといけません。
今回は特にメジャーバージョンアップなので、プロジェクトを古い方に戻すのは
不可能じゃないかと思っています。
(実際3.xのマイナーバージョン間でもさんざん問題がでていました)

後はMountain Lionとの互換性ですかね、、、、。
(これも互換性が怖くてまだ買えてません)