[過去ログ] 弾をバキュンバキュン撃ち合うネットゲームを作りたい 3fps (886レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
141: 名前は開発中のものです。 [sage] 2006/05/21(日) 14:13:49 ID:LtDK3Ca0(3/8) AAS
/////////////////////////////////////////////////////////////////////////////
//FPS.h
/////////////////////////////////////////////////////////////////////////////

#ifndef_FPS_
#define_FPS_

/////////////////////////////////////////////////////////////////////////////
//マクロタイプ宣言
#definenullNULL
typedef unsigned longUlong;
typedef unsigned shortUshort;
typedef unsigned charUchar;
typedef wchar_tWchar;

#defineMAX_PLAYER96//最大プレイヤー人数
#defineMAX_PLAYERNAME8//最大プレイヤー名
#defineMAX_CHARACTOR1//最大キャラクター数
#defineMAX_MESSAGE55//最大メッセージ文字数
#defineTIMEOUT10.0//タイムアウトまでの時間
#defineMAX_BUFSIZE1024* 8//最大パケットサイズ

//以下、各プレイヤー通信制御フラグ(サーバーでのみ使用)
#definePACKETFLG_RECVEND0x00000001//受信済みフラグ
#definePACKETFLG_SENDEND0x00000002//送信済みフラグ
#definePACKETFLG_FULL0xFFFFFFFF
142: 名前は開発中のものです。 [sage] 2006/05/21(日) 14:15:36 ID:LtDK3Ca0(4/8) AAS
//以下、プレイヤーステータス
#definePLAYERSTT_CONNECT0x00000001//接続フラグ
#definePLAYERSTT_FULL0xFFFFFFFF

//以下、キャラクターステータス
#defineCHARSTT_BEING0x80000000//存在フラグ
#defineCHARSTT_LIVE0x40000000//生存フラグ(描画フラグ)
#defineCHARSTT_MASKROT0x3FF00000//回転マスク
#defineCHARSTT_SHIFTROT18
#defineCHARSTT_LEFT0x00010000//左
#defineCHARSTT_RIGHT0x00020000//右
#defineCHARSTT_MASKMOVEX0x00030000
#defineCHARSTT_UP0x00040000//上
#defineCHARSTT_DOWN0x00080000//下
#defineCHARSTT_MASKMOVEY0x000C0000
#defineCHARSTT_ACT1ST0x00001000//第1アクションフラグ
#defineCHARSTT_ACT2ND0x00002000//第2アクションフラグ
#defineCHARSTT_ACT3RD0x00004000//第3アクションフラグ
#defineCHARSTT_ACT4TH0x00008000//第4アクションフラグ
#defineCHARSTT_FULL0xFFFFF000
#defineCHARSTT_MASKJOB0x00000F00//職業フラグ
#defineCHARSTT_SHIFTJOB8
#defineCHARSTT_FULL0x00000FFF
143: 名前は開発中のものです。 [sage] 2006/05/21(日) 14:16:34 ID:LtDK3Ca0(5/8) AAS
typedef struct{//キャラクターデータ
UlonguloStt;//キャラクターステータス
floatflX, flY;//現在のキャラ座標
}ST_CHARACTOR;

typedef struct{//プレイヤーデータ
UlonguloStt;//プレイヤーステータス
WcharpchName[MAX_PLAYERNAME];//プレイヤー名
ST_CHARACTORpstChara[MAX_CHARACTOR];//キャラクター情報
}ST_PLAYER;

//以下、>>140
140(1): 名前は開発中のものです。 [sage] 2006/05/21(日) 12:55:39 ID:NyIE3cQf(2/3) AAS
それもそうだな。
よし俺とお前で全く新しい革新的なFPSをつくろうじゃないか!

#include <windows.h>
#include "FPS.h"
int __stdcall
WinMain(HINSTANCE ins, HINSTANCE prv, LPSTR cmd, int shw)
{
FPS fps(ins, prv, cmd, shw);
  return(fps.play());
}

俺はソースは書いたから、お前はヘッダーの方を頼む。
class FPS{
private:
intplay();

public:
FPS(HINSTANCE, HINSTANCE, LPSTR, int);
~FPS();
};

#endif//_FPS_
144: 名前は開発中のものです。 [sage] 2006/05/21(日) 14:18:13 ID:LtDK3Ca0(6/8) AAS
じゃぁFPS内よろしく。
FPS.h変えちゃって良いから。
期待してるよ。
145: 名前は開発中のものです。 [] 2006/05/21(日) 15:08:19 ID:scDDWgBC(1/2) AAS
ワロタ
146
(1): 名前は開発中のものです。 [sage] 2006/05/21(日) 16:15:15 ID:NyIE3cQf(3/3) AAS
関数の実体はヘッダーファイルに書くに決まってるだろ!
全ソースは俺が書き終わったわけだから、
あと書けるのはヘッダーファイルしかない。

まぁ良い、足りないところはscDDWgBCにお願いするとしよう。
笑いがタダなのはマクドだけだからな。

そこで気になったんだが、
#defineCHARSTT_SHIFTROT18
が20じゃないかと思うのだが。

あとST_CHARACTORでZ座標が無いのは
地面の高度が常に0という仕様だとしても、
ピッチが管理できないのはちょっとイヤ〜ンだな。
回転マスクに含まれるのかな。。良く判らん。

ST_PLAYERに言えることだが typedef struct { } AAA;
でなくても struct AAA { }; で良い。文法的には問題無いが、
俺的にはNGだ。実際どうするかはscDDWgBC決めることだがナ。

まぁまかせた。
147: 名前は開発中のものです。 [sage] 2006/05/21(日) 16:47:40 ID:LtDK3Ca0(7/8) AAS
すまん。
俺が全部悪い。
148: 名前は開発中のものです。 [sage] 2006/05/21(日) 19:23:48 ID:LSC87mcQ(1) AAS
良スレだああああああああああ!!!!!!!うひょおおおおおおおおおおおお
149: 名前は開発中のものです。 [] 2006/05/21(日) 20:06:52 ID:scDDWgBC(2/2) AAS
通信はFPSのメインルーチンとは別スッドレにしないとダメだな。
150: 名前は開発中のものです。 [sage] 2006/05/21(日) 22:01:27 ID:qEKCr/Du(1/2) AAS
初心者的質問で悪いんですが、
FPSって明示的に発生させるスレッドって、
何と何と何が…必要ですか?
151
(3): 名前は開発中のものです。 [sage] 2006/05/21(日) 22:58:57 ID:5V6q7cex(1) AAS
1:ゲームオブジェクト駆動スレッド(含描画)
2:通信制御スレッド(制御だけ処理は1に移譲)
3:ウィンドウメッセージ処理スレッド(普通コレがアプリケーションプロセス)

あとは必須じゃないけど普通やる

4:サウンドストリームスレッド
5:ファイル読み書きスレッド

そして最近流行の

6:物理演算スレッド
152: 名前は開発中のものです。 [sage] 2006/05/21(日) 23:06:56 ID:qEKCr/Du(2/2) AAS
おぉ、明快な説明ありがとうございます。
ただ1と6の違いがよく判らないのですが。
(「物理演算スレッド」でググッてもうまく検索できなかったorz)
重い物理演算だけスレッドで実行するという解釈で
よいでしょうか?
153
(1): 名前は開発中のものです。 [sage] 2006/05/21(日) 23:11:29 ID:LtDK3Ca0(8/8) AAS
メッシュ作る時や、通信の時は、システム掴む回避策として別スレッド作るけど、
それ以外ってパフォーマンス的に見てどうなんだろうね!?
俺は使ってない。

>151
パフォーマンス上がる?
154: 名前は開発中のものです。 [sage] 2006/05/22(月) 04:01:30 ID:SvoexFZM(1/2) AAS
物理演算別スレにするのは初動計算するときだけ。
爆発とかで大量のオブジェが一気に動き出すと
スレッド分けてないと一瞬ゲームが止まる。
まあそのぶん爆発の影響が数フレ遅れるから見た目は変ちゃ変だけど
計算が終わったオブジェからどんどん動かしたりしてごまかす。
155: 名前は開発中のものです。 [sage] 2006/05/22(月) 10:58:49 ID:7oi29hZC(1/2) AAS
某メジャーなFPSで、爆発で一瞬とまるやつあるな。
不用意にスレッド分けると、
クリティカルな処理への対策が面倒くさい。
156
(1): 153 [sage] 2006/05/22(月) 11:22:21 ID:vmxWHffY(1) AAS
システム掴んじゃうのはしかたないよね。
UI管理しているスレッドが止まるのであればマルチスレッド回避だろうな。

>>151が列挙した3,4,5に関しては疑問だよ。
マルチコアの場合はパフォーマンス上がるかもしれない。(詳しくは知らんけど)
しかし、それ以外は作業量に見合ったものは返ってこないと思う。

むしろ管理しづらくなったりするデメリットの方が目立つ気が。
どうよ?
157: 名前は開発中のものです。 [sage] 2006/05/22(月) 11:29:02 ID:7oi29hZC(2/2) AAS
クリティカルな処理でバグがでるのがオチだろう。
158: 名前は開発中のものです。 [] 2006/05/22(月) 15:24:36 ID:OKURF6Ug(1) AAS
1最近いないじゃん
159: 151 [sage] 2006/05/22(月) 20:03:36 ID:SvoexFZM(2/2) AAS
>>156
4、5はまあFiberみたいのでやるのもありだね。
でもサウンドは再生メッセージ発行したらあとは
オマカセだからそれほど面倒じゃないんだけどなぁ。

ただ、3はフルスクリーン限定のアプリならいいかもだけど
ウィンドウモード対応しようとすると必須じゃね?
タイトルバーつままれるとMessagePump回らなくなるのはどう対処してるの?
確かにパフォーマンスのためのスレッドじゃなくてとほほだけどさ。
160: 名前は開発中のものです。 [sage] 2006/05/23(火) 22:56:04 ID:yycSemds(1) AAS
交差点で事故ったバイクの人が1だったのかもしれない。
161: 名前は開発中のものです。 [sage] 2006/05/23(火) 22:59:02 ID:wZQkbHCs(1) AAS
まだこのスレで1に拘ってるのって、1人?
162: 名前は開発中のものです。 [age] 2006/05/24(水) 08:22:45 ID:WEpxQxem(1) AAS
3人
163
(1): 名前は開発中のものです。 [sage] 2006/05/24(水) 12:52:13 ID:1FKBTXqY(1) AAS
>>146
オチは?
面白くないんだけど。
164: 名前は開発中のものです。 [sage] 2006/05/24(水) 20:07:29 ID:rcV0lGpE(1) AAS
>>163のオチに期待。
165: 名前は開発中のものです。 [sage] 2006/05/27(土) 15:46:51 ID:WTleOPpM(1/2) AAS
外部リンク[php]:f31.aaa.livedoor.jp
1-
あと 721 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.017s