トップページgamedev
662コメント368KB

親父PGがゲームを作り始めるスレッド

■ このスレッドは過去ログ倉庫に格納されています
0001親父PG04/03/30 02:40ID:phIrC7nN

C++やC、アセンブラは昔こなしたし、プログラムの事なら自信はあるけど
ゲームは作った事が無い方。現場からも引退したし(w。
ここは一つ趣味でDirectXでも勉強して、ゲームでも作ってみようかなぁと思った、
オジサンPGのスレッドです。

一緒にマターリライブラリから作りませんか?
0002親父PG04/03/30 02:48ID:phIrC7nN
DirectX SDK
http://www.microsoft.com/japan/msdn/directx/downloads.asp
C++
http://www.microsoft.com/japan/msdn/visualc/

0003名前は開発中のものです。04/03/30 02:54ID:aArzpmzM
はい、華麗に3ゲトーと
0004親父PG04/03/30 03:15ID:phIrC7nN
とりあえずC++だけでいいなら19800円(ゲーム作るだけなら他はいらない)
Visual C++ .NET Standard 2003 通常パッケージ 19,800円
アカデミック パッケージ 7,800円

最初の半年の目標

SDKをざっと読む
開発環境を整える
デモをコンパイラする
スケルトンの作成

ここからは目的に応じて多少変化すると思いますが....

タイマー、スケジュール、ポーリング部分をどのように設計するか検討する

上を設計した上で、最小単位のオブジェクトクラス(最初のメンバはLife)を設計

オブジェクトの番号を管理するクラス設計
グラフィック関連
文字関連
テクスチャ関連
マウス・キーボード関連
ビューポート関連
メッシュ関連
ライト関連
STL(動的配列関連)※クラス設計に大きく関係する DirectXとは直接関係ないけどね。 

とりあえずこの辺までは共通事項かなぁ。追加があればご指摘ください
0005名前は開発中のものです。04/03/30 03:43ID:Pg71ArAR
ゲームを作るのか、ライブラリを作るだけなのか。

C++とかでブイブイやってたんなら、オープンソースのDirectXライブラリ持ってきて
まず何かゲームを作りつつライブラリを解析したほうが良いと思う。
パソコンを勉強するおじ様方に多いけど、本だけ読んでもあんまり身につかないからねぇ。
実際に動かして、動きを見ながらソースをトレースして理解したほうが本読むより早い。

ていうかC++なら0円でIDEも揃うけど。DEV-C++とかEclipseとか。
VC系が必要になるのはポトペタでデザイン作るときだしね。
0006親父PG04/03/30 04:08ID:phIrC7nN
>>5
早速レスありがとう
>パソコンを勉強するおじ様方に多いけど、本だけ読んでもあんまり身につかないからねぇ。
既にそのレベルは超えてもらわないと話が進まない^^;
スケルトンぐらい(質問はしてもいいけど)自作作成できないとおそらく
オープンソースライブラリなんて使いこなすのは無理でしょう。

>オープンソースのDirectXライブラリ持ってきて
>まず何かゲームを作りつつライブラリを解析したほうが良いと思う。

これは一旦自分で(調べて作って)解析した後でないと、かえって理解が遅くなると思います。
まぁあくまで持論ではあるのですけどね。
DirectXの動きを理解してからライブラリからコツコツと、それも楽しみの一つですから...

[最低でも問題のSDKのHELPは調べる]
親父PGに限った事ではないと思いますが^^;
0007名前は開発中のものです。 04/03/30 08:25ID:nseNUF3n
ヘタレだけど面白そうだから参加していいかな。
大分前、SDKのみの自前描画で簡単な3Dモデルを表示してみた。
ちょい前、DirectXを覚えようと、とりあえず突貫工事で
Xファイルを表示してキーボードで移動させてみた。
いろんな所からサンプル拾ってほとんどコピペしただけ。
次はスキンメッシュのサンプルをどっかからパクって組み込もうと考えたが
わけ分かんなくて挫折。
最近、TCPとWinsockでS/C型の簡単な一対一チャットを作ったが、
一対多のやり方がワカンネェので挫折。
先週、暇だったからテトリス作ってみた。初めてのゲーム。

ライブラリ?クラス?なにそれ。
分割コンパイルすらままならない、道しるべが欲しいそんなダメオジサン。
0008名前は開発中のものです。04/03/30 09:44ID:B2V5bL2q

それより親父さんよ

この板にはたくさんの厨がいる

そいつらは開発ってのを分かっていない

ここは一つ、お前さんが連中を管理してゲームを完成させるスレとかにしてみたらどう?
0009名前は開発中のものです。04/03/30 09:46ID:1T5XDq7M
みんなリストラされたのか?

0010親父PG04/03/30 11:25ID:nbxm21Tx
>>7
歓迎いたしますよ! 何か出来たことを報告してくれると、盛り上がって良いと思います
>>8
>この板にはたくさんの厨がいる そいつらは開発ってのを分かっていない

私の個人的な意見を言わせていただければ、もしPGの事が解って無くても
また、開発の事がわかってなくても、なんというか、「組立てるセンス」あれば
ある程度の事はできると思う。それは他の事でも物事を組み立てて考える力さえあれば、PG習得もその応用にすぎないからなのです。

PGには3つの壁があり、
プログラム理論ロジック習得の壁 if for
言語そのものに対する知識の壁 C++ int
環境に関する知識の壁 Windows DirectX
があると私は思っています。これらを分けてひとつひとつ知識のリンクを、つないで行けば自ずと光が見えてきます。

>ここは一つ、お前さんが連中を管理して...

そんな大それた事はできませぬ^^
参加したいのであれば年齢は問いませんが、姿勢は問いますよ。

>>9
>みんなリストラされたのか?

あはは、冗談きついなぁ。

取り合えずSDKのサンプル「三角形を回す奴」をコンパイルして実行する事
これが出来ないと先へ進めません。
回る三角形ができたら、これを四角形にする(頂点数の変更) 
FVFフォーマットを変えて実験してみる。

テクスチャを張り込むにしても4画ポリゴンは基本となるので、
まずはここまでを目標にしましょう!!
0011名前は開発中のものです。04/03/30 12:12ID:EfGGMHLP
>プログラム理論ロジック習得の壁 if for
>言語そのものに対する知識の壁 C++ int
>環境に関する知識の壁 Windows DirectX
計算機の動作原理の理解に対する壁が抜けてるな。
0012名前は開発中のものです。04/03/30 12:26ID:QXrCIhNo
>>11
CPUアーキテクチャなんかは知らなくても
とりあえず何かは作れるんじゃないか?
もちろん、知っておいたほうが質の良いコードが書けるだろうけどね。
0013親父PG04/03/30 12:47ID:nbxm21Tx
>>7
偉そうな事を言える立場ではないですが、書き込みの内容を拝見するに 基本的なプログラムの技術をお持ちだと思いますので、ますはSDKサンプルの
ライブラリを見てDIRECTXの初期化とWINSOWSループあたりを見てみると良いのではないでしょうか?
WINDOWSのサンプルは描画速度はマシン速度(環境)に依存しています。
このままでは定期的な処理ができないので、PeekMessage周りを調べて定期的タイマーで特定の処理を呼び出すようなものを作ってみてはどうでしょうか?

while( WM_QUIT != msg.message )
{
if( m_bActive && m_pd3dDevice != NULL ){
 if ( tTake==FALSE ){
  QueryPerformanceCounter( ( LARGE_INTEGER * )&sTIME );//時間計測開始
  FSP60call();//同期して動かすものはここで
 }
 FSP60nonSYNCcall();//何か出来ることあればやってしまおう
}
 th_GetandPeekMessage( NULL );//Peek Message func
 if( bGotMsg!=TRUE ){
  if( m_bDeviceLost ){
   // Yield some CPU time to other processes
   Sleep( 100 ); // 100 milliseconds
}
if( m_bActive && m_pd3dDevice != NULL ){
 if( FAILED( Render3DEnvironment() ) )SendMessage( m_hWnd, WM_CLOSE, 0, 0 );
 QueryPerformanceCounter( ( LARGE_INTEGER * )&eTIME );// 計測終了
 DWORD wTIME;
 wTIME=( DWORD )16666;
 if ( ( eTIME.LowPart - sTIME.LowPart )>wTIME ){
  tTake=FALSE;
 }else {tTake=TRUE;}//endof if
}
}
私が自作した部分ですが、サンプルのソースに試行錯誤を繰り返しこのような形になりました。
■ このスレッドは過去ログ倉庫に格納されています