[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/22 09:48 / Filesize : 257 KB / Number-of Response : 1036
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++ゲーム製作総合スレッド Part5



1 名前:名前は開発中のものです。 mailto:sage [2014/01/16(木) 00:00:31.27 ID:w6WW3hAo.net]
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その17
toro.2ch.net/test/read.cgi/gamedev/1383795645/

前スレ
C/C++ゲーム製作総合スレッド Part1
toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
toro.2ch.net/test/read.cgi/gamedev/1376262450/

583 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 10:04:41.29 ID:jXAfeA6F.net]
昨日ちょうどそのセガ本の話が有名な同人プログラマのネット配信で出てたわ
「その本はプログラマになる前じゃなくてなった後に読む本だ」って言ってた

584 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 10:18:56.59 ID:cWxmDdU5.net]
その本って学生レベルでも中の下くらいだろ

585 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 12:50:45.98 ID:bu2wQqL4.net]
>>561
というか、そもそもデバッガでソース追えないという話に帰結しそうなのだが。
関数の中とかに「飛ぶ」訳ですし。

今後の事もあるから、「飛ぶ」事に慣れるのが肝要だと思いますけどね。

586 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 15:11:16.15 ID:uQbX0MMa.net]
セガ本で難しかったらgemsとか見たらもう発狂だな

587 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 15:22:16.96 ID:5DdHErYn.net]
14歳からはじめるC言語わくわくゲームプログラミング教室
著者:大槻有一郎
www.rutles.net/products/detail.php?product_id=392
かなりの素人向け、図書館にあるかもしれない。

内容はこれ、www.rutles.net/download/217/

588 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 16:40:46.26 ID:jXAfeA6F.net]
ゲームプログラマの新人でも面接時の作品提出では皆C+DirectX直打ちの人ばかりだようんたらかんたらという
流れの中で言ってたから、難しいというか本に頼らずともネットで情報集めてとにかく作れって感じだった。

その人自体もオブジェクト指向とか意味わからんでゲーム作ってるとか言ってるけど、
同人だけじゃなくコンシューマ機

589 名前:のゲームプログラムを1人で担ってるような人だし、
要は本見て文法覚えるより、汚くていいからとりあえず作品完成させろってことかと。
[]
[ここ壊れてます]

590 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 17:46:46.24 ID:WhIg+aCP.net]
>>571
とりあえず完成させろってのはその通りだな
ここでウンチク垂れ流してても自分の作品は完成させたことないってやつは多そう



そう、私の事ですorz

591 名前:名前は開発中のものです。 mailto:sage [2014/04/25(金) 18:37:51.58 ID:kjeLMb9X.net]
directx直打ちじゃないけど大手新卒通ったわ



592 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 01:38:49.39 ID:jf1SN+DQ.net]
ゲームコーディングコンプリートって本にはGameLogicってクラスでゲームの状態を切り換えている
ソースコードはネット上にあがってるぞ

593 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 13:10:08.96 ID:2tKTewnx.net]
ぱっと見た感じ、キューかなんかで格納してる?

594 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 19:33:37.45 ID:x5oOyDOe.net]
スパロボみたいなゲームだと
・フィールドシーン
・戦闘シーン
・アドベンチャーシーン
・シナリオ準備シーン
みたいな感じに大別されるよね

シーンはキー入力の挙動も変わるから
それも内包しないといけないよね

595 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 19:37:39.56 ID:IEmpvB3E.net]
メニューとかの後の分岐はどうやってるの?

596 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 19:58:38.34 ID:3cite/BR.net]
i.imgur.com/C0gfdIL.jpg
これがPC98ロードランナーのチャートで、
イニシャライズ以下がゲームループになってる。

597 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 20:05:42.07 ID:2tKTewnx.net]
デモ読み込みはゲームループ外で、実際のデモ画面はループ内なんだな、面白い。
俺が思ってるデモ画面と別のものかもしれんけど。

>>576
当たり前っちゃ当たり前だけど、
フレームワークなりハードウェアなりから、キー情報を取り出したり使いやすいよう加工するのは共通部分で、
右キーで1マス動かすとか、そういう部分は各シーンのロジックで処理するのが良いんじゃない?

>>577
メニューって、「じゅもん」→「メラ」→「スライムA」 みたいな
シーン中に行われる多層型のメニューのこと?

598 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 21:29:25.57 ID:5LBrFF8V.net]
ポップアップメニュー出しながらもカメラや移動とか一部の操作はできるようにするとかだと
優先度とかそのキーで処理済みかの情報が欲しいから
シーンや入力が欲しいオブジェクトが欲しいキーを入力マネージャに登録しておいて
優先度の高い特殊なキーの組み合わせだけ先に処理して
あとは上位に位置するオブジェクトからキーを拾って処理して未処理は下に投げるとか
WindowsのWM_CHARを参考にしたキー処理終わってから各Updateみたいな事になってるけど
重複する事もあるキー入力の切り分けをシンプルに実装する方法ないかな

599 名前:名前は開発中のものです。 mailto:sage [2014/04/26(土) 22:11:57.41 ID:x5oOyDOe.net]
キー処理用スレッドを作ってGetAsyncKeyStateを回すとか

600 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 03:54:19.08 ID:WYXfeo+B.net]
よく分からん質問だけどUIコンポーネントの階層でやれば?

class Parent : UI {
UI* child;

void update(Event* e){
// 特殊キー
bool isCopy = Key::isHold(Key::LCtrl) && Key::isHold(Key::C);

// 子コンポーネント先
child->update(e);

// 子コンポーネントでキー入力が確定した
if(e->isKeyEvent == false) return;

// このコンポーネントのキー入力
bool isThis = Key::is ... ;
}
};

class Child : UI {};

601 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 10:28:25.38 ID:C+qpjQzl.net]
>>580
ポップアップメニューはモーダルなインタフェースだから
ある1つのオブジェクト(または選択されたオブジェクト群)を集中して操作しているのに
関係がないオブジェクトを操作ができるのはおかしくない?



602 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 10:46:42.01 ID:w1gNzEbH.net]
恐らくだけど、ここでのポップアップメニューは一般的なGUI部品のソレではなくて、
fpsでよく利用されてるポップアップする選択形式のウィンドウの事でね。
wasdで移動しながらメニュー表示キーを押す事でソレが表示され、マウスカーソルでメニュー選択できる、みたいな。

とりあえず>>582で問題ないと思うけどね。

603 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 18:14:34.21 ID:Pq1XXwa+.net]
>582のままだと何個か同時押ししてる時に子供がキー処理しちゃったら
親は欲しくて子供では未使用のキー情報取りたくとも来なくない?

604 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 18:30:43.78 ID:ZxV1P0nx.net]
どういう状況?

605 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 18:38:37.60 ID:Pq1XXwa+.net]
メニューが子供でWASDで移動してるとして押しっぱなしで
メニューの選択を動かす矢印やショートカット等の何らかのキー押したら
移動のキー処理が省かれ、結果移動が止まる

606 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 19:14:17.90 ID:ZxV1P0nx.net]
ああ、なるほど。

あんまりPCでゲームやらないので分からんのだけど、市販ゲームだとキーアサインはどうなってるのかな。
メニューを開いてない状態で使えるキー(デフォルトだとWASDとか?)は、メニュー画面で何の処理にも使われないような感じ?

607 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 19:44:36.31 ID:DG4EJccZ.net]
使うキー全てを押されているか1つ1つチェックしていけばいい

608 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 19:59:45.12 ID:8WD0svuP.net]
市販ゲームを買って調べろよ
知らないとこにゲームを作るなんてアホなの

LINEをやったこと無いのにLINEスタンプを作って儲けようとするアホと一緒

609 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 20:22:36.88 ID:ZxV1P0nx.net]
>>590
全く意味は分からんが、何か気に触ったようなのでスマン

610 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 21:47:11.67 ID:zcnpepzc.net]
RPGなどの、キーを1回押したら次のマスまで移動するようなゲームの衝突判定は
自キャラの位置と壁の位置を二次元配列で管理できるので作れるのですが、

アクションゲームのように、キーを1回押したら数ピクセルしか進まないような
ゲームの場合、マップチップエディタでマップを作った場合、衝突判定はどうするのでしょうか?

611 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 22:33:28.11 ID:vcLDHUdb.net]
衝突判定は、全部が計算で出る。 二次元配列で管理と同じ。



612 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 23:24:50.87 ID:ZxV1P0nx.net]
>>593
ソース見てみないと分からんけど、今まで1対1で対応するような当たり判定しかやってなかったので
そのままでは応用が効かないって話じゃない?


>>592
こういう場合に昼用となるのは、ある範囲とある範囲同士が、
座標上で重なっているかどうかをチェックする、という処理が必要となる。

少し前にも似たような話題があったが、
まず1次元上で、線分Aと線分Bが重なっているかどうかを判定する処理を考えてみよう。

      +---- A ----+
  0----------------------------------------X
             +-------- B --------+

答えを言ってしまうが、Aの右端がBの左端より右側」にあり、Bの左端がAの右端より左側にあるとき
線分AとBは重なってると言えるのが分かる。

これで少なくともX軸から見た時に重なって見えるかどうかを判定することが出来る。
じゃあこれをもう一度、Y軸に対してやれば、結果として重なってるかどうか分かると思わないかい?

一応、この判定には欠点があったりするけど、そのへんは詳しい諸兄に任せる

613 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 23:39:37.39 ID:+r7oKZO8.net]
592の質問ってそういうレベルの話なのか。
もっと複雑な話かと思った。

マップチップでブロック単位(要するに矩形判定のみ)しかしないんだったら
593の言うとおり2次元配列管理でいいんじゃないかな。



614 名前:タ標をマップチップのサイズ(ピクセル)で割れば配列の座標は出る。(小数点以下切り捨て)
たとえばマップチップのサイズが 16*16 でマップデータが二次元配列に格納されてるとしたら
(100,150) の部分は二次元配列でいう (6,9) の部分という事になる。
あとはRPGなどと同じように衝突判定すればいい。
[]
[ここ壊れてます]

615 名前:名前は開発中のものです。 mailto:sage [2014/04/27(日) 23:47:48.15 ID:zcnpepzc.net]
>>593-595
ありがとうございます!

>座標をマップチップのサイズ(ピクセル)で割れば配列の座標は出る
この考えが欠けてました。言われれば当たり前のことなのに1人で悩んでると全然思い浮かばない(´・ω・`)

616 名前:594 mailto:sage [2014/04/28(月) 01:02:00.85 ID:BBr+Jrn/.net]
>>595
あー、そっちか
お恥ずかしい

617 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 09:50:59.01 ID:GzOhtwBz.net]
それだけだと自キャラがどのチップ上にいるかしかわからんから
壁と自キャラが重ならないようにするにはちょっと工夫いるんじゃない?
例えば自キャラの上下左右全部で衝突判定するとか

618 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 14:28:53.40 ID:uu2sZY8y.net]
そんな必要ないよ。
自分の位置より進行方向1ブロック分をチェックして障害物なら動かなくすればいいだけ。

619 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 14:31:26.43 ID:uu2sZY8y.net]
ああ、いや違った。
上と左に関しては進行方向1ピクセル分だった。

620 名前:名前は開発中のものです。 mailto:sage [2014/04/28(月) 19:55:37.77 ID:BBr+Jrn/.net]
>>599-600
アクションゲームでそういう処理をするゲームは少なそうだが

621 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 00:40:51.84 ID:EMV53Qmd.net]
>>530-536
大昔にタスクシステムスレだったかSTGスレだったかにこんな感じのソース
(微妙に違うかもだが)を貼ったが、別にゴチャゴチャ言われなかったけどな
因みに同人STG
int APIENTRY _tWinMain(HINSTANCE,HINSTANCE,LPTSTR,int)
{
  try{
    boost::shared_ptr<GAMEENV> gameenv(new GAMEENV);   //D3D,SOUND,INPUT,USERDATA,etc
    boost::scoped_ptr<SCENE> logo(new LOGO(gameenv));    //ロゴ画面
    boost::scoped_ptr<SCENE> demo(new DEMO(gameenv));   //デモ画面
    boost::scoped_ptr<SCENE> title(new TITLE(gameenv));    //タイトル画面
    boost::scoped_ptr<SCENE> config(new CONFIG(gameenv));  //コンフィグ画面
    boost::scoped_ptr<SCENE> stage1(new STAGE1(gameenv)); //ステージ1
  (…中略…)
    boost::scoped_ptr<SCENE> stage8(new STAGE8(gameenv)); //ステージ8
    boost::scoped_ptr<SCENE> ending(new ENDING(gameenv));  //エンディング
    logo->Run();                               //ロゴ画面再生



622 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 00:42:06.52 ID:EMV53Qmd.net]
    while(1){
      demo->Run();                            //デモ画面再生
      switch(title->Run()){                        //タイトル画面再生
      case TITLEOPTIONTYPE_CONFIG:               //オプション画面再生
        config->Run();break;
      case TITLEOPTIONTYPE_GAMESTART               //ゲームスタート
        do{
          if(stage1->Run() == STAGESELECTTYPE_GAMEOVER)break;
          (…中略…)
          if(stage8->Run() == STAGESELECTTYPE_GAMEOVER)break;
          ending->Run();                       //エンディング画面再生
        }while(0);break;
      }
    }
  }catch(...){return EXIT_FAILURE;}
  return EXIT_SUCCESS;
}

623 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:03:59.54 ID:T7NavjR1.net]
こりゃStateパターンを使えていない時点でゴミっすわ。
バカが書いたコードだと一目で分かる。

面接でこれ持ってきた奴がいたら不採用…と言いたいけど
この程度のバカが偏差値65クラスなわけで
次頭があれば徹底的に叩きなおすことを前提で採用、ってなるレベル。

624 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:31:18.44 ID:l2CWKjf4.net]
それでも俺は、自らコードを曝け出した事に対して尊敬するね。

批判だけなら誰でも出来る

625 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:46:17.29 ID:EMV53Qmd.net]
>>604
pc11.2ch.net/test/read.cgi/gamedev/1227748699/181-

当時は高専の学生でしたので

626 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 01:49:34.15 ID:T7NavjR1.net]
>>608
あー、それわかる!
高専生感がぷんぷん臭う。

俺の職場は理系院生が採用の中心だから
君のコード見ると偏差値70以下!って判定を下しちゃうんだよね…。

627 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 02:13:49.38 ID:EMV53Qmd.net]
どうか心安らかな日々を

628 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 02:16:22.74 ID:ZoGLF8y+.net]
んー別にいいんじゃね?
大してシーンも多くないゲームなら充分充分
パターンとかはもっと規模が大きくなって
制御構文使ってたら死ぬ時に使う物だと思うのだが

ということで誰かstateとstrategyの違いを教えてくださいな
ググってもイマイチ腹に落ちなくてなあ…

629 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 03:18:14.89 ID:51TE7qv/.net]
高専生感というとても具体的な指標
これが偏差値70以上の力だと言うのか・・・

630 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 08:43:51.10 ID:7WDDZUtT.net]
これdemo->Run()の中に別のゲームループがあるって事になるんだろ。
つまり>>528って事だろ。

ところでupdate()とdraw()に分けないのかな。
コンテンツロスト時の再描画とか、各シーンで個別に実装とかだるいっしょ。

631 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 10:25:45.81 ID:EMV53Qmd.net]
>>611
当時のソースは実家のPCに眠ってるのでうろ覚えなんですが、D3D9などの
デバイスロスト時の対応などはGAMEENVクラスに押し付けてました

描画と、ゲーム内時間発展のサイクルは独立。フレームスキップしてました。
描画は60⇔30⇔15[fps]の半固定。

時間発展の刻み幅は1/60[sec]固定。シミュレーション部分の計算自体は
とても軽かったので。あとはリプレイデータの都合。デバッグ時の巻き戻し
や早送り(任意時点へ移動)してたので



632 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 10:41:35.55 ID:EMV53Qmd.net]
>>611
>これdemo->Run()の中に別のゲームループがあるって事になるんだろ。
>つまり>>528って事だろ。

それぞれにゲーム内の時間発展を計算するサイクルがありましたね。
そういう意味ならそうなんだと思います。ゲーム固有の定石とやらは
よく知りません

633 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 11:00:02.81 ID:R32lOXpJ.net]
配信でコーディングしてる現役ゲームプログラマさんの仰っていた序列表貼っておきますね

神様 綺麗なコードで完成させられる人
人間 汚いコードで完成させられる人
=================( 越えられない壁 )====================
家畜 汚いコードで完成させられない人
ハエ 綺麗なコードで完成させられない人

ハエに出来るのは人間の邪魔だけと言っていて、なるほどなとリスナー達感心しきりでした。
ID:T7NavjR1見ててこの事思い出しましたね

634 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 11:23:57.20 ID:k/FZV1V1.net]
自分は
std::unique_ptr<Scene> scene = new なんかのシーン();
while(1){
scene->update();
scene->draw();
if( scene->isEnd() ) {
scene = std::move(scene->getNext());
}
}
ってやってそれぞれのシーンが次の遷移先返すようにしました
switchを意地でも使いたくてこんな形になった

実際switchの方がよく使われるものなの?サンプル探してもswitch使っているのしか見当たらないから困ってる

635 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 11:24:47.17 ID:t5QADVCc.net]
>>614
やるじゃんw

636 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 12:27:00.81 ID:CXcBKCf+.net]
>>615
多分だけど、

 if(関数に分けずそのまま羅列) → if(関数分け) → switch → stateパターン

……みたいに進化していくんだと思う。
単に自分がそういう順番でステップアップしたってだけなんだけどさ。

仮に自分が教えるなら、stateパターンによるシーン遷移は後回しにするかな

637 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 12:35:06.95 ID:CXcBKCf+.net]
ああそうだ思い出した。
シーン遷移をStateパターンで行う方法についてなんだけど、「シーン遷移しないとき」って、どうしてる?

(1) nullを返す
(2) thisを返す
(3) シーン遷移関数を用意しておき、それが呼ばれなかったとき
(4) その他

自分は(2)で、nullを返すときはゲーム終了ってことにしてる。
一般的なStateパターンなら(1)かなあ。

638 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 12:40:34.16 ID:5MYZPLM5.net]
>>612-613
なるほどthx. sceneの引数でgameenv貰ってるね。

シーン遷移の実装はシーン側は知る必要ないから、
その時の気分とかシーンの数とかで好きにやりゃいいと思うけどね。

Task的に入り組んだ作りしてないのなら、どれでもすぐ遷移図を思い描けるっしょ。

639 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:14:29.11 ID:R32lOXpJ.net]
>>616
曰く、
「クラス設計書貰うけど見ない。クラス流用して他のゲーム作ったことがないから意味がない」
「デザインパターン?何それ?」
「参考書は読んだことがないからオススメ本とか分かんない。ネットと、エラーが出たらググレカスで覚えた」


PSでほとんど1人でプログラム任される人の弁です

640 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:19:59.07 ID:NQBFYHJc.net]
>>620
すげぇ
俺そんなこと言ったことないけど、完全に俺だわ
ただ、作ってたのはPSじゃねぇけど

641 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:20:18.05 ID:KJKa8R89.net]
>>620
その人、協調性が無いから、単独でしか使い道が無い。



642 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:27:51.48 ID:NQBFYHJc.net]
人事を何とかしないとうちの会社はやばい
ゲー専卒で多少のコミュニケーションはできれば入れてる感じがする
8人中2人もう辞めてるし、てかそれ以前にDXライブラリをインクルードディレクトリへの追加方法わからねぇわ、プログラムが組めねぇわで最悪だわ
1人だけまともというかたぶん俺より組める奴居るけど
うちは研修する余裕なんてねぇってわかってんだろうが、去年入ったやつなんてもう最後の1人を何とか留まらせてるんだから、俺らに人事噛ませろよ

643 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:27:58.51 ID:lMFqMvqX.net]
PSでググレカスてどんな時代?
一昔前の1500円のミニゲーム移植とかの人てことなんだろうか

644 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:31:27.80 ID:GSilIO8H.net]
>>622
ちょっとワラタ

645 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:31:55.46 ID:CPnqQaxX.net]
従来の手続き型で何本もゲーム作ってきた俺だが
いっちょオブジェクト指向でも勉強するか、とやり始めた結果
もうずっと制作が滞ったままになっている。
なんでこんなにめんどくさいんだ……。

646 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:33:29.90 ID:t5QADVCc.net]
サッカー上手い人がサッカーの技術書読んでうまくなるわけもないし、そういう感覚なんかな。
本読まずにPG覚えるとか想像もつかねえw

647 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 16:59:24.66 ID:CPnqQaxX.net]
本は解るようになってから読むと解るけど、解らないうちに読んでも解らないからなw

そもそも本を書くような人は「本を読んだら解る人」だろうから、
本を読んでも解らない人でも解るような本を書けないだろうな。

648 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:12:12.68 ID:dd41HZLf.net]
ビギナーコラムでオブジェクト指向の哲学とか語られてもな
とりあえず作ってみよう系のほうが理解しやすい
ここを弄ったらこう変わるみたいな

649 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:21:14.92 ID:5MYZPLM5.net]
c++だけがoopじゃないっすから…

650 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:40:38.04 ID:lMFqMvqX.net]
>>628
だいぶ使いこなせるようになっても読めない初心者向けの本とかあるから性質が悪い
ゲーム用だけじゃないが初心者の頃はコードがのっててサンプルが作りたい物に近いから買ってみるけど…
Cマガも半分ぐらいしか理解できなかったがいま読み返すと消えてる技術も多くて笑える []
[ここ壊れてます]



652 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 17:48:57.10 ID:bM1HEdOI.net]
ゲーム系の学生なんだけど、ゲーム会社ってどのくらいのレベルのオブジェクト指向まで要求されるの?
あと、AIとかそういうアルゴリズムも重視される?

653 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:14:47.39 ID:NQBFYHJc.net]
>>632
ぶっちゃけ会社によって様々だからうちの会社で書くけど
新卒には特別な期待はしない
とりあえず、プログラムを作れれば良いや、ゲームまで作れたら儲け物って感じだな
後はただ、人間として基本的なことはできてればそれだけで良い
俺は現場だからこういうのを求めてるけど、人事は即戦力のゲームプログラマーとしてプログラムを作れないやつを入れてくるから何を見てるか同じ会社なのにわからん
とりあえず残業させてないのに毎年1ヶ月以内に1人、3ヶ月以内に半分になる新卒はゲーム作る気がないよね

654 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:23:27.78 ID:EMV53Qmd.net]
マ板でやれ。な

655 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:25:53.36 ID:R32lOXpJ.net]
>>621
スーパープログラマさんかな?w
他の配信者も有名な人だよって言ってたし、多分在京で働いてる業界人なら知ってる人ですよ。

ちなみに、よくプログラマになるにはどうしたらいい?という初見リスナーのレスあるけど
「C++とDirectX(ライブラリ自作)で『完成した』作品を持ってこい」と言ってますね。
本人もデザインパターンを配信中にググって知ったみたいだし
オブジェクト指向とか関係ないんじゃないかと。とにかく完成品をよこせと。

656 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:34:29.77 ID:lKQHJo0L.net]
Q 漫画家になるにはどうしたらいいですが?
A 漫画を描けば漫画家です
 プロになりたければ作った作品を持ち込んでください

Q ゲームプログラマになるにはどうしたらいいですか?
A ゲームを作ればゲームプログラマです
 プロになりたければ作品を持ち込んでください

657 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 18:38:17.18 ID:NQBFYHJc.net]
>>636
これ
でも、自分じゃなくて友人が作ったやつを持ち込むクソも居る

658 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 19:08:58.63 ID:WRxgjGJf.net]
スレ違いの話題振る質問者は不採用です

659 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 19:14:20.55 ID:t5QADVCc.net]
くだらないループ話を延々続けてる馬鹿に飽きていたからいい暇つぶしになったw

660 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:34:32.58 ID:EMV53Qmd.net]
>>609
>制御構文使ってたら死ぬ時に使う物
>>615
>実際switchの方がよく使われるものなの?
>>619
>シーン遷移の実装はシーン側は知る必要ないから、
>その時の気分とかシーンの数とかで好きにやりゃいいと思うけどね。

>Task的に入り組んだ作りしてないのなら、どれでもすぐ遷移図を思い描けるっしょ。

同意です。実装の選択肢は色々あり、個々の状況に応じて選べば良い事かと。
>>602-603の例で言えば、振る舞い的に拡張する予定がなく、実際しなかった
部分なので別に問題なかったですね

元々HSP上がりの人間(周りも同様)だったので手続き型の記述のほうが平易
というのもありました



>>617

State Pattern
switch-case構文

661 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:35:52.86 ID:EMV53Qmd.net]
>>640訂正
末尾の三行は消し忘れです。>>617さんごめんなさい



662 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:52:06.90 ID:CXcBKCf+.net]
>>635
何年か前に、画像表示、パッド入力、音声出力くらいまでは何とか作ったけど
途中で面倒くさくなって、結局DXライブラリに戻ってしまったという残念な経験しかないやw

663 名前:名前は開発中のものです。 mailto:sage [2014/04/29(火) 20:55:41.83 ID:EMV53Qmd.net]
>>619
会社帰りにたまにボー●ーブ●イクでチャリンチャリンしてたんですが
転勤先にそれ置いてるゲーセンが

664 名前:なくて悲しみのあまり余暇にパチモン
作りで自分を慰めてるんですが、火器とかAIの部分はStateというかStrategy
というかそんな感じのコードはありますね。条件分岐でダラダラ書いてたら
流石に眩暈がしてきたので
[]
[ここ壊れてます]

665 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 00:47:22.57 ID:bEifU6C0.net]
何を言いたいのかサッパリ分からん

666 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 01:21:27.75 ID:3yGpFv6B.net]
>>643
パーツとか持ち替えの武器とか大量にあると面倒くさいことになるよね
あの手のアセンゲーっぽいのは俺も好きだが作りたいとは思わないな

667 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 09:11:19.42 ID:JP5IUHRh.net]
つまらない流れなので誰かネタ振りお願いします><

668 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 10:28:13.43 ID:vrCaDxEc.net]
初心者な質問ですみません。
クラスからクラスを呼ぶときってどういう書き方が普通なんですかね?

class A {
public :
static A* me ;
int a ;
A() ;
}
A* A::me ;

A::A() {
me = this ;
}

ってやって A::me->a とかやってるけど、なんかスマートじゃなくて……。

669 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 11:46:43.01 ID:eqz1Of7R.net]
なにがしたいのかさっぱりわからんけど、それmeにインスタンス入れてるだけであんまり意味なくない?
クラスからメソッド直接使いたいとかなら、メソッドをstaticで定義してクラス名::メソッド名()だけど

670 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 12:04:25.51 ID:gNDB74Yv.net]
グローバル変数みたいなことがしたいのかな
アクセス可能なオブジェクトを限定するのがオブジェクト指向の組み方だから
アクセスする必要があるクラスにポインタなり参照なり持たせたほうが良いんじゃない

671 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 12:58:15.72 ID:2hopiA0K.net]
日本語不自由で変な質問するやつはほっといたほうがいいよ



672 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 13:13:03.63 ID:8+rqYap5.net]
staticメンバの初期化の仕方の話でねーのん。
最近c++触ってないから間違ってたらすまんけど。

// A.h
class A {
public:
  static int a;
}

// A.cpp
int A::a = 10; // 初期化

// main.cpp
void main() {
  A::a;    // 利用
}

673 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 13:38:55.27 ID:MPxnDurN.net]
3Dゲームで経路探索をやってみようと思うんだけど、3Dの位置情報ってどうやって調べればいいの?

674 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:23:59.95 ID:bEifU6C0.net]
具体的には?

基本的に平面で移動するゲームなら2Dと大して変わらんしだろうし
キューブ状の座標(2Dで言うところのマス目)を移動するだけなら、移動方向に上下という選択肢が増えただけと考えられるし
ビルの中を探索するようなゲームなら、階段やエレベータでエリアを区切ればいい気がする。

675 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:32:28.53 ID:Uak2ZaC3.net]
何が聞きたいのかさっぱりわからんけど、普通に変数参照すればいいんじゃない?
複雑な地形での経路探索がわからんって話なら、地形の要点にポイント作ってダイクストラ法でいいんじゃないの

676 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:35:02.75 ID:Uak2ZaC3.net]
ごめんダイクストラ法じゃなくてA*か

677 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 14:50:11.17 ID:49atqyLw.net]
経路探索
samples.jbpub.com/9781556220784/Buckland_AIExecutables.zip

Chapter 5 にあるように 経路探索する。
Chapter 8\Raven_CoarseGraph のようにグラフとして探索する。

678 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 16:08:24.08 ID:L0vWdcDz.net]
>>655
A*はダイクストラの拡張版で、基本アルゴリズムは重複する部分が大きいから、
大筋外してはいないよ
ゲーム用途の経路探索性能は、A*の方がより最適化されるみたいだけど

679 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 16:47:29.58 ID:IG+u4GlD.net]
>>647
ideone.com/gt21RS
そのコードが何か不明だがこういう振る舞いをするという事がわかってれば好きにしろ

680 名前:名前は開発中のものです。 mailto:sage [2014/04/30(水) 22:30:05.62 ID:vrCaDxEc.net]
647です。皆さん色々すみません。
やりたかったのは、例えばコンフィグデータを一括管理するクラスを作って
他のクラスでそれを使う、ような事です。
例として挙げたソースは簡単に書いただけで直接書き換えたいというわけではありませんでした。

関係ない愚痴ですが、こうやれば動くからこれでいいのかな、と作り進めてても
やっぱりおかしいよな、とまた一から作り直す、を繰り返してて制作が全く進みません……。

681 名前:名前は開発中のものです。 [2014/05/01(木) 03:51:25.76 ID:jedbV3SH.net]
anago.2ch.net/test/read.cgi/ghard/1387003319/235
  ↑ ↑   ↑ ↑   ↑ ↑



682 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 05:10:34.61 ID:z13QLsnT.net]
唯一のインスタンスを保証するシングルトンではなく、
インスタンスは複数作れるけど、実体は同じものを作っている……っていうアルゴリズムあったよね。

>659の場合だと、その方法使えそうな気がするものの……名前が分からんので教えられん

683 名前:名前は開発中のものです。 mailto:sage [2014/05/01(木) 08:21:56.84 ID:3d6d8Z4v.net]
>>659
そんなのグローバル変数でいいだろ
つまんないとこで止まってないで先進めよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<257KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef