トップページgamedev
991コメント366KB

【初心者】スレを立てる前にココで質問を【Part26】

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2013/11/25(月) 21:50:34.58ID:6u/BeNgC
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
http://wiki.game-develop.com/

ゲーム製作技術板公式アップローダ
http://gmdev.xrea.jp/

gamdev.orgが落ちるたびにあげてみるスレ
http://hibari.2ch.net/test/read.cgi/gamedev/1107022166
0969名前は開発中のものです。2014/12/26(金) 06:47:13.73ID:6BxdgUJF
日本人でそんな面倒な事する奴居るんかな?
自分の利益になるならともかく
0970名前は開発中のものです。2014/12/26(金) 09:32:27.89ID:R8lkUcyh
>>968
旧シャア板での話題だったなら裁判起こす物好きも居ただろうが、
こんな隔離板じゃあ難しいだろうね。人も少ないし。
09712014/12/26(金) 15:06:10.05ID:/TLYM1H6
    /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
    l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// ヽ::::::::::::::l
    l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/:::「'ヽ::::::::::://   ヽ:::::::::::|
    |::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノl:::ノ l:::::::/      ヽ::::::::|
   ノ:::::::::::::::::::::::::::::::::::::::::::::::::::::/ ゙゙  ノ:::/ ,,;;;;;;,,    ,,,,ヽ:::::l
   ):::::::::::::::::::::::::::::::::::::::::::::::/    ノ/ __,'''i: ('''__):::l  
  )::::::::::::::::::::::::::::::::::::::::::::::::::/         ̄ ̄ン:. :「 ̄`ヾ   
 1:::::::::::::::::::::::「 `┤l:::::::::::::::::l          ̄   ,  ヽ ̄ l   
  `l:::::::::::::::::::::ヽ  :l li:::::::::::::/        ヽ  /´   `l  |
  ヽ::::::::::::::::::::::\_」 lヽ::::/         .l  !:-●,__ ノ  /      
  ノ:::::::::::::::::::::::::::ノ | l `゙゙           i ,,;;;;;;;;;;;;;;;;;;;;,  /ヽ       
,/ ヽ::::::::::::::::::::::(  l l::::::::..         /.:''/´ ̄_ソ  /  `ヽ
     ヽ:::::::::::::::ヽ | l:::::::::::...      /::// ̄ ̄_ソ  /    \   ヴッ!!
        ヽ:::::::\| l::::::::::::::::...    / :::.ゝ` ̄ ̄/ /       ヽ
           ヽ:::l l:::::::::::::::::::..      ̄ ̄;;'' /         ヽ
              l l;;;;;;:::::::::::::::.....;;;;............;;;;;;''ノ            l
              l l '''''''''''''''''''''''''''''''''''''' ̄l |             |

http://www.youtube.com/watch?v=z2qK2lhk9O0
0972名前は開発中のものです。2014/12/26(金) 23:25:45.10ID:Vqk3Epuq
>ヘルメスのギリシャ読みがエルメス
なんでやねん
0973名前は開発中のものです。2014/12/27(土) 01:52:27.77ID:iJnVmHVH
>>972
ヘルメスはギリシャ神話の英語読み
基本的に日本ではギリシャ神話は英語読みで語られる
0974名前は開発中のものです。2014/12/27(土) 18:25:36.39ID:7CW96ovq
バイナリデータを読み込んだ後、即席暗号化とかで全ての桁をプログラムの中でインクリメントしたら桁あふれとかどうなるんでしょうか?
インクリメント前に「あ、これfだから0にしよ」みたいな処理が必要ですか?
0975名前は開発中のものです。2014/12/27(土) 18:50:22.44ID:D3uBHuzF
ビットシフトすればそんな心配いらなくない?
0976名前は開発中のものです。2014/12/27(土) 20:22:45.26ID:H3wa0BCQ
>>974
言語処理系の仕様や扱う変数型で決まる。
言語によっては 0 に戻り、 言語によっては -32768 のような数値になったり、
スクリプト言語だと変わらなかったり、シーケンシャルなファイルだと隣のバイトが変化したりする。

扱える最大値であることを判定して条件分岐するのが正しい。

そしてバイト列の暗号化なら XOR という演算子の特性や利用例を知ると、その手間が不要なお手軽な処理ができて驚き、エンジニアとして一歩賢くなる
0977名前は開発中のものです。2014/12/28(日) 01:57:43.72ID:d7bq0AcF
>>944です。反応遅くなりました。
レスくれた皆さんありがとうございました。

>>945
ビホルダー問題初めて知りました、ありがとうございます。
0978名前は開発中のものです。2014/12/29(月) 01:16:30.82ID:iVw2RJih
 試作品の実行ファイルをアップして意見を聴きたいのですが、どこのスレが良いんでしょう?
 普段状況報告スレとかにも出入りしているのですが、本来そこの目的は違うから、
適合するスレで聴きたいのですが。
0979名前は開発中のものです。2014/12/29(月) 01:19:31.04ID:0UxFRGu4
普通に数値として扱う、signedなら、オーバーフロー

一方、ビット演算・バイナリ用で、
数値として扱わない、unsignedなら、
オーバーフローしないで、0に戻るかな?

とにかく、unsignedは特殊用途に限定すべきだね
0980名前は開発中のものです。2014/12/29(月) 05:55:33.53ID:jEPDdAvV
>>978
リアクション全く無しになってもアレやし最初はこのスレに投下してレビュー聞いた上で
適切なスレへの誘導を改めて確認してその上で移動するのもアリかもね。単発ならなおさら
09819782014/12/29(月) 10:13:54.81ID:iVw2RJih
>>980
 なるほど。 ではここで。

 横シューティングを作っています。
 作り直す事が決定しているデータを色々と使っています。
 80年代後半の全盛期の雰囲気を目指していますが、なにせ初めての企画なので
盛り込み過ぎない様にと抑え気味に企画しています。

ttp://gmdev.xrea.jp/st/up/1068.zip

 ジョイスティック対応ですが、キーボードからカーソル&ZXキーで動きます。

 分かっていて解決していない不具合として、
・途中いきなりエラー終了する。
・オプション攻撃が上に出てしまう。
・連射抑制が効かなくなり猛攻撃してしまう。
があります。

 目標としてはサンダークロス1やメタルブラック、サンダーフォース4なのですが、
ドット絵的に足元にも及ばないのでゲームバランスで勝負! ・・・足元に頭擦り付け
られる程に及べればイイなあ(^^;

 何か、思い付く事を仰ってくれると幸いです。
0982名前は開発中のものです。2014/12/29(月) 13:02:31.64ID:jEPDdAvV
テスト調査版ダウンロードしてプレイしてみました。
まだノウハウが少ない状態のプログラマが作るべきお手本のような作り方をされていていますね

質問に対して個々にフォローします

・途中いきなりエラー終了する。
  システム(OS)巻き来なければ、エラーを try〜catch してその状態の変数などの情報を書き出して解析する。
  のがよいのですが、今のスキルでは少々難しいかもしれません。(フォローは後述)

・オプション攻撃が上に出てしまう。
  デバッガを使う (特定のキーを押したら、あるいは状態になったら強制的にブレークを発生させるようにするとよい)
  「オプション攻撃が上に出てしまった」はプログラムで特定の変数があってはならない値になっていると推測されます。
  その変数にあってはならない値が入るとブレークさせる、ブレークポイントを置いてみてください。
  デバッガの使い方がわからなければ、ぐぐって調べるなり、さわりを質問で聞くなりするとよいです

・連射抑制が効かなくなり猛攻撃してしまう。
  入力信号がバッファに溜まるようなものではなく、DirectInput でその瞬間に押されているキーで入力判定する
  入力信号を即値で扱っているなら、その判定から連射ルーチンにバグがあるのだと思います。

(続く)
0983名前は開発中のものです。2014/12/29(月) 13:04:14.17ID:jEPDdAvV
(続き)

アドバイス

・テスト版用のデバッグ用情報を画面に表示させよう
  どのボタンが押されているか、何をどう判定しているか が画面に表示されているとテストしている人が色々気付きます
  今回であれば「オプション攻撃が上に出てしまった」時に関連する変数の値があれば、ノウハウ持ってる人であればやらかしがちなバグを推測できます
・ログ出力しよう
  記録されるサイズが数百MBになろうと、メモリ上に記録し、エラー時に全出力して意図しない挙動がないか調査するとよい
  エラーが起きた場合、強制終了でないなら、ファイルに書き出すことができるはずです
  ログデータを読み込みながら1フレームずつ再現できるプログラム(リプレイですね)を作ってみるのもよいかもしれません
・デバッガを使いましょう
  効率的なプログラマほどデバッガとのにらめっこしてる時間の割合が大きいです
  今回聞こうとしている質問のほとんどは、デバッガがあればプログラマがすぐに原因を切り分けして修正できると思います
・質問はどこにするのが良い?
  現状ではこのスレでよいと思います

引き続き頑張ってください。
0984名前は開発中のものです。2014/12/29(月) 13:39:09.05ID:AVeVeWqk
スタンドアロンなゲームで途中でいきなりエラー終了するのは大抵ぬるぽだから、
IDEのコンソールか何かにログを出力し続けるようにして原因を追ってみたほうがいいかも
void func(){
LogOutput("func start");
//処理
LogOutput("func end");
}
こんな風に作ってゲームが強制終了したらコンソールログをみて、endが書かれていなければそのスコープに何かあるってことで、
ブレークポイント知らない頃とか、ブレークポイント効かない時とか、ステップ実行がだるい時だけ知りたい時とかでやってたから誰でも出来ると思う

というか初心者でいいの?「そんなの言われなくてもわかっとるわ!」とか言われそう
0985名前は開発中のものです。2014/12/29(月) 22:08:03.92ID:kfN2JDbZ
>>974
ビット情報が保存される演算(可逆な演算)ならXORとかローテートがラクかと

XORはC/C++に演算子あるけどローテートはないからPCの場合だとインライン
アセンブリでROR/ROLがラク

細かい話はバーナム暗号とかで検索すればいいかと
0986名前は開発中のものです。2014/12/30(火) 19:30:03.22ID:u6Vvtr+3
いや聞きたいのは既知の不具合についてじゃなくて
ゲーム内容とかバランスについての感想じゃね〜の
0987名前は開発中のものです。2014/12/30(火) 19:34:52.72ID:e9PdA2Bu
次スレ立ててくる
0988名前は開発中のものです。2014/12/30(火) 19:39:38.44ID:e9PdA2Bu
立ててきたけど、カキコ即立てって連投扱いなんやね
クッキー消したよ……ったく

【初心者】スレを立てる前にココで質問を【Part27】 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1419935788/
0989名前は開発中のものです。2014/12/30(火) 20:39:56.43ID:u6Vvtr+3
ゲ製板スレ立て事件 〜消されたクッキー〜
09909782014/12/31(水) 18:56:32.45ID:apd2LiSb
 お返事遅れました。有明の方に出向いていたら疲れてしまいました(もう歳だ)。

>>982
 返答有難うございます。
・ノウハウが少ないのがバレたのは、データの与え方でしょうか。
 DxLibを使っているので、自分としてはそうなってしまうと言うか・・・もっと効率上げる方法が
あるのでしょうか?
・これは、VisualStudio2013のCで書いています。C++、理解出来ていないんです(涙)。
 何か問題が起きたら、場所を類推してブレークポイント立ててステップ実行で変数確認
しつつ・・・と言う感じです。
 必要とあれば、調査用に関数も書きますが。

 エラー終了以外の既知の問題は、最初期に書いた自機周りの関数だと思っていて、それに
依存する形でオプション挙動も決まっているので、整理して書き直すつもりでいます。
 ちなみにスコア表示の下にライフやショットモード、進行カウンタを表示していますが、勿論
仮表示です。その延長で内部情報をもう少し表示させても良いのですが、リアルタイムで
更新されると読みきれないのですよね(^^;自分でやっといて。
 リプレイは搭載予定していなかったのですが、言われてみればデバッグに有用ですね。
 真面目に検討させて頂きます。
 ご助言ありがとうございました。

>>984
 返答有難うございます。
 最近、呼出履歴を確認する事を身に付けたので、怪しい部分への履歴を追いやすくなったり
したのですが、初心者扱いで十分だと思います。8ビットの頃から親しんでいるので、十分
オッサンですけれどね。

>>986
 お心遣い有り難うございます。
 そこが目立って他に見るべき点がなかったのは、まだまだ道半ばだなあ、と反省する次第
です。
0991名前は開発中のものです。2014/12/31(水) 20:42:08.70ID:JO0lY9np
>>990
> その延長で内部情報をもう少し表示させても良いのですが、リアルタイムで更新されると読みきれないのですよね

Windowsのアプリ動作動画キャプチャソフト(アマレコなど)などを使うと・・・

良いお年を!
レス数が950を超えています。1000を超えると書き込みができなくなります。