1read 100read
2012年08月ゲ製作技術3: PlayStation Mobileプログラミング part 4 (591)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
素人がツクールで神作品目指すスレ27本目 (692)
AI特化のRPGを作って売りたい【避難所】 (952)
人工知能or人工無脳作ろうぜ (840)
ピンポイントで素材とかを注文するスレ (673)
ネトゲの作り方 (303)
RPGツクールの不満なところ (303)
PlayStation Mobileプログラミング part 4
1 :2012/10/12 〜 最終レス :2012/12/08 PlayStation(R) Mobile SDKを使ってゲームやアプリを作るためのスレ SDKは現在オープンβで公開中です。 ■PSM公式サイト http://www.playstation.com/psm/developer/index_j.html ■公式 PSM デベロッパー コミュニティ http://community.eu.playstation.com/t5/PlayStation-Mobile-Developer/ct-p/PSSdevforum ■PSSウィキ http://monobook.org/wiki/PlayStation_Suite_SDK ■前スレ PlayStation Mobileプログラミング part 3 http://toro.2ch.net/test/read.cgi/gamedev/1339990741/ PlayStation Suiteプログラミング part 2 http://toro.2ch.net/test/read.cgi/gamedev/1335755875/ PlayStation Suiteプログラミング part 1 http://toro.2ch.net/test/read.cgi/gamedev/1330137413/
2 : >>1 乙
3 : ラストスパートだ! 頑張るぞ!
4 : 俺の日曜プログラマレベルのクソゲの審査が通るかが問われる
5 : >>1 乙
6 : 昨日に引き続きで申し訳ありませんが別スレッドでのオブジェクト生成が上手くいきません…orz。 var task = Task.Factory.StartNew( () { Console.WriteLine (0); Obj =new Obj(); Console.WriteLine (1); }); これ書いても下のWriteLine動かないし、別スレッドでnewするとそこで途切れるっぽいんですがどういうことでしょうか? 普通にint a=0;から var task = Task.Factory.StartNew( () { Console.WriteLine (a); a=1; Console.WriteLine (a); }); なら全部動くけど var task = Task.Factory.StartNew( () { Obj =new Obj(); Console.WriteLine (a); a=1; Console.WriteLine (a); }); これだと動かなくなっちゃう。
7 : var task = Task.Factory.StartNew( () => { Console.WriteLine (0); var obj =new object(); Console.WriteLine (1); }); while(true){} 下にこういうのを書いてみたら?
8 : PCだと普通に動くが、VITA実機だとダメなんだろうか・・・ Objクラスが悪さしてるとか?
9 : >>7 下のwhileループはどういうことでしょうか? 一応ゲームループ内なので、メインスレッドが先に終了してるということではないとは思います。 >>8 自分はPCでも動きませんでした。 ちなみに作ったObjはNodeを継承したGameEntityを継承したクラスでした。
10 : >>9 var task = Task.Factory.StartNew( () => { Console.WriteLine (0); var obj =new object(); Console.WriteLine (1); }); これは動くの? 動くんだったらObjクラスのコンストラクタが原因でしょう
11 : >>10 その状況では上のWriteLineは動いて下のWriteLineは動きませんでした。 指摘されて自分も自作Objのコンストラクタが原因だと思いましたので 間でListやRandom、Stopwatchとかnewしてみましたがその時は両方のWriteLineが動きました。 このことから自作Objのコンストラクタが原因ぽいです。ご指摘ありがとうございました。
12 : 色々試しましたがTexture2Dのコンストラクタ重たいせいみたいです。 重たいから別スレッドで作成してメインスレッドに支障きたさないようにしたかったのに…。
13 : Vistaなら実行停止でサブスレッドも止まるみたいだけど Win7だと止まらなくてPSMスタジオ再起動するまでビルドでdll上書きするのが出来ない OSの違いなのかなんなのかわからないけど同じプロジェクト2つのPCでデバッグしてるとそうなってる
14 : >>12 試してないけど、ファイル読み込みは非同期を使わないと無理そうやね
15 : ん?でもC#のスレッドってプライオリティが高いのに勝手に変わらないのか? 協調型のスレッド?Task.Factory.StartNewってスレッドとは違うのだろうか。
16 : うーん、Task.Factory.StartNewだと、なんか動作が怪しいな・・・ if( 0 == _state ){ // 非同期読み込みスレッド作成 _loading = Task.Factory.StartNew(()=>{ ImageAsset image = null; // 非同期読み込みで作成 image = new ImageAsset("/Application/test.png",true); // 完了までまつ // image.WaitForLoad()だと処理が終わってしまう?? while( !image.Ready ){ Thread.Yield(); } // ! ここで処理が終わってしまう?? _tex = image.CloneTexture(); // ImageAssetからキャッシュと削除 image.UnloadFromCache (); image.Dispose(); // 以下必要なだけ繰り返す... System.Console.Write("Load Finish!\n"); }); _state = 1; }else if( 1 == _state ){ // WaitForLoadかCloneTextureでIsCompletedがtrueに... if( _loading.IsCompleted ){ // タスク削除しておわり _loading.Dispose(); _loading = null; _state = 2; }else{ System.Console.Write("Now Loading...\n"); } }
17 : あ、分かった。メインスレッド以外でnew Texture2D("/Application/test.png", false); やると例外発生して落ちる。
18 : 例外で落ちてたらすぐ気づくだろ・・・ テスト段階では変なとこで無駄にキャッチしないようにしとけ・・・
19 : 今気づきましたけど実機起動、実機デバッグ起動だとちゃんとTaskでnew Texture2D("/Application/test.png", false); できてるっぽいですね。最初の1回物凄いフレームスキップして二回目以降はちょっとですけど。
20 : いやー、キャッチは1つもしてないんだぜ。 Task.Factory.StartNewは例外が発生しても、Task.IsFaultedがtrueになるだけで 例外エラーダイアログは出してくれないみたいだな・・・
21 : うげ、マジだ。VITA実機だと例外発生しねぇ。
22 : ImageAssetを使って、お手軽に非同期読み込みやるとしたらこんな感じか VITA実機でもカクつくことはなかった if( null == _asset ){ // 読み込み開始 if( null != _tex ){ _tex.Dispose(); _tex = null; } // 非同期読み込みで作成 _asset = new ImageAsset("/Application/test.png",true); System.Console.Write("Load Start\n"); }else if (_asset.Ready ){ // 読込完了 // テクスチャ作成 _tex = _asset.CloneTexture(); // ImageAssetからキャッシュと削除 _asset.UnloadFromCache (); _asset.Dispose(); _asset = null; System.Console.Write("Load Finish\n"); }else{ // 読み込み中 System.Console.Write("Now Loading...\n"); }
23 : テクスチャ以外も非同期読み込みできるようにファイル読み込みを別にしてTexture2D(byte[] fileImage, bool mipmap)の方を 使ったほうが良くないか。と通りすがりが言ってみる。ただ上記のほうがお手軽だね
24 : ファイルを非同期でロード出来るようにしよう(・∀・) ↓ アーカイブしたファイルも対応したいな(・∀・) ↓ 圧縮したファイルもロード可能にしよう(・∀・) ↓ デバッグ中はソケット経由でPCからVITAにファイルをロード出来るようにしよう(・∀・) ↓ ファイルロードライブラリ完成(・∀・)パンパカパーン
25 : そこまでやったらすごいなw
26 : 本気でやるならリソースをほとんどアーカイブにして上記の実装したほうがいいけどなw まぁ本当にそれが必要がどうかという問題だな。長い目で見たらやったほうが勿論いい (XNAでも使えるかな?) てかそうか、ソケット経由という手があったか。それができたら開発が捗るな。さんくす
27 : ImageAssetなんて便利なもんがHighLevelUIにあったのか。
28 : この機能はCRIのファイルマジックPROってのを見ると欲しくなるからね(´・ω・`) http://www.cri-mw.co.jp/product/lineup/filesystem/filemajikpro/index.html
29 : そんな機能は標準で用意してくれよ
30 : Taskよりはデリゲードによる非同期呼び出しの方が軽いみたい。でもどうしても最初の1回目がスキップする。 そしてGameEngine2DのPlayerとかのnewがなんであんなに速いのよって思ってたらGameの BuildTextureTileMaps()で一回読んでディクショナリーに登録してるのなw もう俺も非同期なんて言わずにメインinitで読んじゃうぜ!
31 : ぶっちゃけ最初に読み込んでメモリに乗っかるようならそれでいいと思うんだぜ
32 : GameEngine2Dのサンプルのサポートクラス読み込んでたけどシェーダーとかOpenGL部分がまったく理解できないw サポートクラスの使うとこだけ取り出して使おうかな…
33 : トロフィー整備という事はフレンドの呼び出しも来るか
34 : フレンドを呼び出して説教するアプリの登場が待たれる
35 : PSモバイルってPS3やVitaみたいなトロフィーを付けることって可能なん?
36 : 可能らしいわよ
37 : 2chねるに書き込んだ ブロンズトロフィー獲得
38 : 何やっても初回の描画で軽くスキップする。 GameEngine2DサンプルからActionGameDemoからSupportクラスぱくってきて、texture情報を先読み管理してもダメぽ。 GameEngine2D使うのやめてsamplespriteとかsampledraw改変使ったほうがいいのかな…。
39 : って連投すまないが試しに実機でActionGameDEMOやってみたらサンプルデモですら初回描画重たいやん…。 なんか昔より動作が重たくなった気がする。
40 : 諦めろ
41 : SupportクラスのところってGameEngine2D関係なくないか
42 : まぁSupportで扱ってるのは関係無いのよね。Texture管理のとこ使ってるだけだし。 ただそこで軽くすれば(今まではループ内でTexture2Dをnewしたりw)解決するかなと思ってた自分が馬鹿でした。
43 : ___ /:::::::::::::::::ヽ l/^_,ヽ::::::::::) なんだよこのクソスレ _ ⊂从 ・ω・ )⊃___ │ | ヽ │ ( ⌒⌒⌒ヽ つ_つ⌒ ) .⊥ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄⊥
44 : nexus7買ってアンドロイド用の開発環境構築してるんだが糞杉だな(´・ω・`) PSMが楽すぎたってのもあるんだが・・・
45 : Androidはエミュレーターがね… 実機ないとやってられん。
46 : PSMのエミュは軽快だけど実機と挙動が違いすぎて 売り物にするには結局、実機がないとお話にならんな もともと実機がなくても開発できるっていう触れ込みだったから ホンチャンで改善されてるといいが
47 : エミュレータ≠シミュレータ
48 : 別に上の文章でも言いたいことは伝わると思うが… エミュじゃなくてシミュレータならなおさら実機がないと駄目でしょう
49 : 確かにパソコンだと軽快に動作するのにVITAだと重たいもんな。 もうちょっとPSMにパワー使わせてほしいな。
50 : 実機って、PSM動くスマフォ持ってないからVITAでしか検証できんわ・・・
51 : 最終的に実機確認は必須なのはまぁ買う方からしたら実機確認してないなんて怖すぎるしな Android端末の差異をなるたけ吸収してくれればいいかな。多すぎる
52 : >>48 androidのエミュレータは遅いって話に乗せてしまったんだからその違いは明確に意識すべき。 あと実機と開発環境で全く挙動が違うのはiOSでもAndroidでも同様だし、 ユーザー側のコードで完結していない部分の実動作の差異はむしろぼやいても仕方ないと思う 昔のwindows mobileは差異に苦しまなかったけど、何が違ったのやら
53 : ショボいわ〜
54 : エミュレータとシミュレータはどう違うのよ 一般にどっちのほうが再現度が高いということも言えないんじゃないの
55 : >>54 ・エミュレータ ハードの仕組みまで再現した仮想マシン 入力と出力、動作まで完全再現 バイナリ互換 ・シミュレータ 対象をモデル化してその上で試験を行う仕組み それっぽく動くように作られているだけなので異なるハードでは動作も異なる バイナリに互換性無し
56 : アンドロイドもPSMもバイナリ互換のエミュレータじゃないの どっちも仮想マシン上のバイナリだけど
57 : Androidはエミュレータ、PSMやiPhoneはシミュレータだな。
58 : つまりアンドロイドはARMをエミュレートしてるのか ずいぶん大変なことをしてるんだな ARMってそれぞれアーキテクチャ違うんだろうから再現って相当眉唾だが・・・
59 : エミュレータはシミュレータの一種で、 よりハードウェアレベルに近い層をシミュレーションしてるものを指す 境界は曖昧だけど、一般的には、CPU・メモリ・周辺機器などの全部または一部を ソフトウェア実装して、OSやアプリに実機用のものを直接動かしてるようなものを 「エミュレータ」という 実例だと >>57 の言う通りで Windows Phone もエミュレータが配られてる バイナリ互換とは直接は関係しなくて、 たとえばアンドロイドは、arm版/mips版/mips版 それぞれエミュレータがあって、 OSのバイナリは当然個別でバイナリ互換は無い。アプリは基本はJavaなので 共通的に動作するけど、ネイティブ機能を使うとそれぞれ専用バイナリを含めないと動かない >>58 あくまで特定世代の特定チップ相当の arm 用のエミュレータがあるだけだよ 差異の吸収は実機用のOS層で行うもので、それは各ベンダーの仕事なわけで 実際、arm のエミュレートは重くて大変で、 仮想機能が使える x86 版の Android エミュのほうが圧倒的に軽かったりする
60 : >>59 ちょー勉強になった Atomのスマホとかファックだろwとか思ってたけど x86だからそりゃ速いわけだ
61 : 速いってのはエミュレーターがって話ね ベンチマークではTEGRA3とかより速いぜ! とかIntel先生は言ってるけど そんなのよりクアッドコアですと言った方がマーケティング的にはインパクトあるよなぁ
62 : CPUのエミュレータはぶっちゃけ根気があればだれでも作れるものだったりする。 問題はそのCPUにつながってる各種デバイスも作らなければならず、 それらは結構独自仕様やら仕様が公開されてないとかあるんでとってもくろうする。 極めつけはGPU関連のエミュレート。これがむっちゃ難しい。
63 : >>56 monoはvirtual machineだけどvirtual hardwareを持っていないから 全く同列に語れないの
64 : PlayStation Mobile isn't perfect, but it's a good start, devs say http://www.gamasutra.com/view/news/179672/PlayStation_Mobile_isnt_perfect_but_its_a_good_start_devs_say.php#.UIHv5mf6kyg
65 : Vita実機で無操作でしばらく時間置いてからネット接続するとフリーズしたりC2したりするのは やっぱり省電力機構とかでネット接続を休んでるとこから復帰できてないとかのPSM側の不具合だと思うんすよ 思うんすよ
66 : 操作しっぱなしなら快調に動くんだがなあ 俺の2chブラウザ
67 : デバッガで起動してなくても? RestoredEventHandlerで登録する必要あるんかな。
68 : HttpSampleでもオートスリープ復帰後に、connectすると固まるな。 スリープ復帰後にPSストアつないでネット接続機能起こしてからだと止まらないが。 フォーラムで報告や。
69 : もう正式版までBAはないのかね
70 : どこに書けばいいのか全くわからない 英語ができない 終わった
71 : >>68 いやーやっぱ再現できないわ でもいじってたら発見があった int x = 0, y = 0, z = 0; new Thread(()=>{ while(true){ x++; }}).Start(); new Thread(()=>{ while(true){ y++; }}).Start(); new Thread(()=>{ while(true){ z++; }}).Start(); これ実機で実行したら完全操作不能 強制電源オフしかなくなった
72 : int x = 0, y = 0, z = 0; Task.Factory.StartNew(()=>{ while(true){ x++; }}); Task.Factory.StartNew(()=>{ while(true){ y++; }}); Task.Factory.StartNew(()=>{ while(true){ z++; }}); Taskの場合実機だと3つで操作不能 うちのデュアルコアのPCだと2つで操作不能だなあ マルチタスキングがプリエンプティブじゃないんだろうか
73 : Taskなら操作不能でもスリープは出来るからOSのコアまでは使ってない、というようなことだろうか 多分その辺の並列動作に問題がありそうだなあ
74 : sleepいれないとプリエンプティブでも駄目なんじゃ?
75 : やっぱり全く再現できないから無操作でしばらく時間を置くっていうのは直接の条件じゃないのかもしれない 3G回線使ってたときはほとんど100%フリーズしてたんだけど あんまりフリーズするからSIMカード抜いて動かしてたら SIMカードどっか行っちゃったからSIMありだと再現できるのかもしれない
76 : ああわかったわ httpsample改造しても再現できなかったけど 俺のアプリの時だけはスリープ復帰後いつまで待ってもネット接続が復活しないんだ だからネット接続でフリーズする
77 : フォーラムって日本語で書いていいんだっけ?
78 : 大丈夫大丈夫
79 : じゃあいくか…
80 : ttp://photozou.jp/photo/show/2819159/153010030 ( ´∀`)ノ
81 : やっぱアプリ自体は関係ないのかもしれない 電波が強い(Wifi 電波3)→スリープ復帰後ネット接続復活 電波が弱い(Wifi 2-1ぐらいの表示)→スリープ復帰後もネット接続は自動では復活しない アプリでネット接続を試みた時に復活しようとするが、電波が弱いとフリーズ? フリーズしない場合、ネット接続が出来ないとこちらはタイムアウトしようとするが、タイムアウトできないことがある ThreadPool.RegisterWaitForSingleObjectが正常に機能していないようだ しかし実機でデバッグするのは難しい…
82 : 電波が弱い時のフリーズは頻度は低いがHttpSampleでも起こる つまり悪いのは電波か まあ電波が悪いとフリーズするライブラリのほうがおかしいけど・・・
83 : ああ フリーズ後もメインループは回ってるんだな 操作を受け付けなくなるだけで 問題はUISystemの中身かな これはUISystemやめるしかなさそうだな
84 : このフリーズ再現できる? http://ideone.com/jIOyBz これをHighLevel.UIの参照を加えてビルドして Vita実機でスタンドアロンで実行する もしPCとVitaを繋いでいたらケーブルは抜いておく 起動したら電源ボタンを押して画面を消す しばらくするとPSボタンが点滅してスタンバイに入る 点滅が消えたら時計を見ながら16秒待つ PSボタンを押してめくってスタンバイから復帰し、Startを押す 成功の場合→Readyのまま固まる。ボタンを押すと反応するが何回も押しているとやがて反応しなくなりフリーズ 失敗の時は画面を消して同じ事を繰り返す うちの環境だとだいたい1/3、悪くても1/10ぐらいで成功してる SIMなし3G版 電波1〜2ぐらい
85 : 一回でなった。ボタンは光ったままで、psボタンでliveareaには戻れる。 3GでSIMあり。
86 : UISystemのソース眺めてもThread使ってるのはImageAssetだけだな タッチがおかしくて入力されっぱなしになるなんて事はあるのだろうか
87 : あと関係あるとしたらUIFont.csの lock (syncCache) でデッドロックするぐらいか?
88 : すまん同じ手順でhttpsampleでもなるわ 確率は低くなる気がするけど UISystem関係ないのかも
89 : HttpWebRequestもスレッド使ってるし、スレッドのスケジューリング関係がバグってるのか。
90 : 昨日はhttpsampleでも出来た気がしたんだが今日はできないな・・・勘違いかな なかなか結果が表示されないだけだからフリーズしたのかもよく分からんのだよなhttpsampleのままだと ボタンをポチポチしてるとフリーズしやすいような気がするからボタンポチポチがトリガーでやっぱりUIの問題かもしれない 電波が弱いほうがやっぱりフリーズしやすいっぽいな 電波復活が早ければフリーズが避けられるのかもしれない
91 : 電波が関係あるとするとバックグラウンドでネットワーク処理してるとこにスレッド処理入ったらまずいとかか? 何にせよ特定しづらいな
92 : 別のプラットホームだと、スレッド使ってるときに、共通のリソースの触り方によってデットロックするから気をつけろ的な話を聞くな。 多分似たようなところだと思う。
93 : Log("start"); int a = 1, b = 2, c = 3, d = 4; new Thread(() =>{ while(true){a++;} }).Start(); new Thread(() =>{ while(true){b++;} }).Start(); new Thread(() =>{ while(true){ c++;} }).Start(); //new Thread(() =>{ while(true){d++;} }).Start(); while(true) { Log(String.Format("a {0} b {1} c {2} d {3}", a, b, c, d)); Thread.Sleep(3000); } 実機だとこれは動かない(whileの中のLogは実行されてない)けど Log("start"); int a = 1, b = 2, c = 3, d = 4; new Thread(() =>{ while(true){a++;} }).Start(); new Thread(() =>{ while(true){b++;} }).Start(); new Thread(() =>{ while(true){Thread.Sleep(1); c++;} }).Start(); //new Thread(() =>{ while(true){d++;} }).Start(); while(true) { Log(String.Format("a {0} b {1} c {2} d {3}", a, b, c, d)); Thread.Sleep(3000); } これは動くんだな 3スレッドがビジーになると死ぬって覚えとけばいいのかな
94 : psmstudioってオープンベータ終わったら使えなくなるかな? vitaはチェック入ってるけど、 こっちはよく分からない
95 : SCEがどういうつもりで展開しているかによるね。 PlayStationクオリティなゲームを作ってくれる人だけ来てくれればいいやと思っていれば、まず金を支払わないと何もできないようにしてきたとしてもおかしくはない。 オープンなものをベースにしただけで、うちはオープンにやる気はありませんよ、的な。 多分だけど、興味を持った開発者とSCEの間には、大きな認識の差があるように思える。
96 : https://ja-support.psm.playstation.net/app/answers/detail/a_id/7/session/L3RpbWUvMTM1MTM0NDIyNi9zaWQvbjhFcHhNOWw%3D 実機で動かすのに制限掛かるだけでPC上で出来る事は変わらないんじゃないかな
97 : oh PSsuite時代に作ってみて久しぶりにやろうとしたら最新だとビルドが通らない… 結構直さないとだめなのかな? usingファイルをサンプルに合わせてプレイステーションにしてもだめだった
98 : 金払わなくても正式版のSDKの中身はみれるのか まあgoogleとかappleとかと同じか
99 : てか金払うつもりがない(=開発する気がない)奴っているのか?
100read 1read
1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
ゲーム甲子園 (439)
Blenderで3Dゲーム作ろうぜ (542)
正直、コミックメーカーって、どうよ? (723)
ロックマン8をFC風にリメイク Part9 (947)
モチベーション維持の方法を話あおう (208)
C# C# C♯ でゲームを作ろう Part2 (349)
--log9.info------------------
【Men's】メンミクを語るスレ part6【mixjp】 (404)
ひきこもりのゲイ part6 〜Re・生保男漁り釜編〜 (771)
【東海】ゲイのマッサージ【オイル・整体】 (731)
【踊り禁止・風営法】2丁目クラブ 消滅か? (270)
gogoケンタの罪をあばく! (495)
【ゲイ】ノンケに片想い【男限定】part5 (704)
ビアン同士で恋愛相談スレpart11 (992)
【AD】レズビアンストーカーアキコの日記【HD】 (214)
★★★ 俺たち こうして 付き合いました ★★★ (327)
大学生のビアンスレ 3 (970)
PIXIVのゲイイラスト part18 (814)
【UGCP】ゲイゲーム総合 Part6【四畳半】 (935)
*海鮮達が*ブーケット16*ギョギョりだす* (849)
ビアンだけどなんか質問ある? (865)
福岡デブ専事情 (597)
東京(首都圏)住みが羨ましいわ (308)
--log55.com------------------
金のネックレスをしていた選手
2000本安打と同じ難易度の投手記録を考える
高校野球史上最高の投手は?
理屈上起こりうるハプニングを妄想するスレ Part.2
他のポジションも守れるのに主にファーストを守っていた選手
優勝するチームにありがちなこと
男・村田の想い出
1番しょぼい200勝達成者を決めるスレ
20140901212037 ■ USA