トップページgamedev
818コメント302KB

Windowsゲームプログラミング 質問スレ

■ このスレッドは過去ログ倉庫に格納されています
0001うゆ ◆vvvK3Fcqdg 2008/11/06(木) 21:28:45ID:lNn2skuQ
※回答する人も、質問する人も必ず読んでください

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
0127名前は開発中のものです。2009/01/12(月) 02:32:32ID:St/Xi0CE
>>126
gnome-gamesってソースパッケージがあるはずだから
yumなりsynapticなりで探せ
その中に含まれてる

どうしてもみつからなかったらもう一度聞いて
0128名前は開発中のものです。2009/01/12(月) 20:19:41ID:Ucs8+CZO
>>125
それを総合してDirectXって言うんだよ。
0129名前は開発中のものです。2009/01/12(月) 20:52:24ID:XiJ3otEj
>>128
お前の言っていることは、
PCがあったら、Linuxが動いていようがFreeBSDが動いていようが、
それを統合してWindowsだと言っているほど間抜けだぞ。
0130名前は開発中のものです。2009/01/12(月) 21:16:19ID:bD3J7wUJ
さすがにネタっぽいな
ファーレンハイトが懐かしいぜ
0131名前は開発中のものです。2009/01/12(月) 21:18:31ID:sqS0O25/
家庭用ゲーム機は全部ファミコンで、携帯音楽プレイヤーは
全部ウォークマンですね。
0132名前は開発中のものです。2009/01/12(月) 21:34:42ID:tFvWI/5z
まぁ、おれの中学時代のあだ名はウォーズマンだけどな。
0133名前は開発中のものです。2009/01/12(月) 21:40:02ID:17ZETQ9S
はて・・・?
PS3の開発環境は既にDirectX対応してなかったけか、PhyreEngineで。
DirectXのAPIも実装済みで、OpenGLとDirectX、どちらでも好きな方を選べるとか。
0134名前は開発中のものです。2009/01/12(月) 22:38:10ID:bD3J7wUJ
組み合わせの選択幅が広過ぎるってんで鳴り物入りで紹介された奴だな
ローレベルライブラリじゃなく、フレームワークにあたるエンジンだ
PC/XBOX版で下層エンジンにDirectXも選べるという構成のようだね
0135名前は開発中のものです。2009/01/12(月) 22:59:42ID:r1loPmTT
GKはどうしてもPS3にDirectXが入っててほしくないようだな
0136名前は開発中のものです。2009/01/13(火) 23:52:00ID:31cKUcOq
フレーワークレベルでDirectXも選べるのと、ハードウェアの公式ライブラリでDirectXが動くのとは相当の違いがw
0137名前は開発中のものです。2009/01/13(火) 23:55:09ID:IjMcH/Ql
そもそもPS3ではDirectXを選択すること自体不可能だから、違い云々以前の問題。
0138名前は開発中のものです。2009/01/13(火) 23:55:48ID:UVAnUSa6
しょうがないから俺も今日からDirectXで動くよ。
ああ、髪が表示されないのは、レンダリングが遅いだけだから。
0139名前は開発中のものです。2009/01/14(水) 00:26:48ID:Xhrp9vz4
東京証券取引所はDirectX
大阪証券取引所はOpenGLで動いているという事実
0140名前は開発中のものです。2009/01/14(水) 09:51:30ID:ffiL9vPn
「WOLF RPGエディター」とは? 
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・製作者はなんと「モノリスフィア」やツクール2000で「シルフェイド幻想譚」などを製作した
 SmokingWOLF氏だよ。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
 その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
 慣れた人や、RPGツクールでは物足りないけどプログラミングはちょっとという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、不満点、バグ報告などなど書き込みお願いします。今もどんどん進化中です。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
 一度サイトにお越しくださいませ。
・このツールで作ったゲームをサイトで紹介してるから、ダウンロードしてどういう
 ゲームが作れるのか見てみてね。

2ちゃん本スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1229261856/l100
0141名前は開発中のものです。2009/01/16(金) 20:27:23ID:2P1JjUIA
半年ROMれ
0142名前は開発中のものです。2009/01/26(月) 11:18:31ID:fNy7USfU
C + WinAPIでのオフスクリーンの使い方がわからんのだが。。。

HDC off,hdc;
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);//hWndは描画先のウィンドウはんどら

 off = CreateCompatibleDC(hdc);
 <offに対してBitBltやらなんたらかんたら>

 BitBlt(hdc, -----, off, 0, 0, SRCCOPY);
EndPaint(hWnd, &ps);

でできると思ったのにうまくいかない。。
どこが悪いか指摘求む|・`)
0143名前は開発中のものです。2009/01/26(月) 11:23:21ID:jYriVdyp
そのoffに対して適切な大きさのbitmapはSelectしてるか?
もししてないならば、1x1ドットのモノクロビットマップになってるんじゃないか。
01441422009/01/26(月) 14:32:33ID:fNy7USfU
>>143
ありがとう。
BitBltとかする前にCreateCompatibleBitmap(hdc, X, Y)したHBITMAPを
offにSelectObjectしたらできた。

HBITMAPは使用後Deleteしないと危ないってことも身をもって理解した。
0145名前は開発中のものです。2009/01/26(月) 15:12:42ID:jYriVdyp
WM_PAINTごとに作りっぱなしにしたのかw
大きさ変わらないなら、ウィンドウができた時に1つ作っておいて使いまわせる。
ウィンドウサイズが変わったら作り直して、ウィンドウ破棄の時に消す、とかね。
01461422009/01/27(火) 11:20:58ID:63/MDkS6
>>145
WM_PAINTは無効にして、好きなときに再描画するようにしてるんだが、、まぁいいか)
再描画する関数が呼ばれるたびに作ってDeleteしなかったな。
タスクマネージャー開くとメモリ使用量のグラフがぐーんとのびてた)
1つを再利用する案、使ってみます(`・ω・´)
0147名前は開発中のものです。2009/01/27(火) 11:46:12ID:g6Z0rQ8m
なんでWM_PAINTだと思ったか。
BeginPaintがあったからだよ〜ん
0148名前は開発中のものです。2009/02/06(金) 09:00:05ID:SU1u5PRJ
えっと
複数のエンジンを搭載した宇宙船をエンジンの出力調整で移動させたいのですが
物理に不自由な人間なもんでまったくどうすればよいのやらこまっております
下の図の矢印のようにエンジンがついてると仮定して
  ←△→
   □
←△□△→
   ↓

左上のエンジンと右下のエンジンの出力を上げると機体が回転するだろうなとはわかりますが
プログラムまでもってけないわけです

一応2Dでの運用を想定しております

複数の速度ベクトルを合成?するのかな
でも回転するとしたらどうすれば…
よくわかりません…orz
0149名前は開発中のものです。2009/02/06(金) 09:32:08ID:IDvsYi6Y
スラスターの再現をすることに何かこだわりがあるなら物理の教科書を読むんだ。

つ Amazon.co.jp: ファインマン物理学 (1): ファインマン: 本
http://www.amazon.co.jp/dp/4000077112
0150名前は開発中のものです。2009/02/06(金) 12:07:05ID:f9/yfsRC
それぞれ回転する中心点の軸をずらして回転行列掛けりゃいいじゃん
0151名前は開発中のものです。2009/02/06(金) 14:12:04ID:2FMS0uiB
こんなの嘘物理でよくね?
中心軸を1点にしておいて、そこを中心に
右上か左下に出力があるときは反時計まわり
左上か右下に出力があるときは時計まわり
移動はすべての出力のベクトルの和
これだけでそれっぽく動きそうな気ガス
0152名前は開発中のものです。2009/02/06(金) 16:59:07ID:R0I8WLM/
中心軸は上の出力で下にずらす
下の出力で上にずらす
両方の出力だと相殺されてずれない
でどう
0153名前は開発中のものです。2009/02/06(金) 19:21:57ID:IDvsYi6Y
お前らそうやってゲームにニセ物理組み込んでるんだな……。俺も俺も
0154名前は開発中のものです。2009/02/06(金) 22:01:45ID:aGsbwcTW
148じゃないけど
静止状態から真空無重力だと148の左上だけ出力した場合回転するんだっけ?w
0155名前は開発中のものです。2009/02/06(金) 22:13:48ID:d5elOzBE
だから、そういう物理を気にしだすと
操作が直感的じゃなくなってプレイヤーのストレスになりかねないから
嘘物理でいいんじゃねって話
0156名前は開発中のものです。2009/02/06(金) 22:52:53ID:aGsbwcTW
>>155
実装はそうだろうけど、知ってた方が、それを基本に考えられるから無駄にはならんと思うがw
148のを自分で組んでみようと思ったら154のが気になって止まったw
で、どうだっけ?w
01571482009/02/06(金) 23:19:27ID:SU1u5PRJ
>>150
ごめんなさい、回転行列がわかりませんorz
>>151>>152
私も同じような考えにたどり着きました

必死に考え直した結果こうなりました
まちがってるかな?
ttp://www.dotup.org/uploda/www.dotup.org21184.png

中心:緑丸
エンジン:青丸
出力方向:紫矢印

エンジンの出力ベクトルを中心点とエンジンを結んだ線とその垂直線を座標としたベクトルに分割し
赤を回転用のベクトル、水色を移動用のベクトルに分ける

あとは回転と移動をそれぞれ計算すればOK?

すいません日本語にも不自由しているようですorz
0158名前は開発中のものです。2009/02/06(金) 23:48:02ID:T8ShVnXb
>>157
それで合ってるよ。もっと正確に言えば、中心点ではなく重心。
あと、そこについてるのがロケットエンジンなら、普通は矢印は逆向きだな。

そこから真面目に回転速度を求めるには、「慣性モーメント」という知識が必要になる。
値は適当にでっちあげでいい。
0159名前は開発中のものです。2009/02/10(火) 15:41:10ID:eV8ZtmO6
.NETかMFCを勉強しようと思うのですが,
ゲーム開発だとどちらが役に立ちますか?
0160名前は開発中のものです。2009/02/10(火) 15:52:39ID:Xj3fFujS
どっちも微妙
言語はC++のみ?
01611592009/02/10(火) 16:05:56ID:eV8ZtmO6
>>160
微妙ですか;
どの言語で学びたいというのは,特に無いですが,
C++がコード書いてる量多いです.
VBは入門書通して読んだので簡単なアプリケーションなら作れる程度で,
C#はJavaに似てるから読めるってくらいで,書いたことはないです.
0162名前は開発中のものです。2009/02/10(火) 16:12:06ID:Xj3fFujS
C++やってるなら、.NETはC#前提で考えたほうがいいかも。
MFCでゲーム部分で役に立つところは少ないと思うよ。素でAPI呼ぶのとかわらない。

どっちもウィンドウ作ったりイベントハンドラ使ったりするところは楽できるけど
そういうのを生かすゲームを作るのかどうかってとこだね。
言語とライブラリやフレームワークで選んで、それが.NETやMFCを使ってたら
それも覚えるって感じでいいんじゃないかな。
01631592009/02/10(火) 18:33:00ID:eV8ZtmO6
了解しました.ゲーム開発で使うといっても,
深い部分の機能まで扱う訳じゃないんですね.

一冊買って読もうと思ってましたが,
Webで調べて動かしてみる程度にしようと思います.
ありがとうございました.
0164名前は開発中のものです。2009/02/10(火) 21:26:47ID:jpQUb+L2
>>163
C++にSDKがシンプルで案外楽なんじゃないかな。
描画や音でハードなことやろうとしたらDirectXやOpenGL/OpenAL使えばいいしね。
0165名前は開発中のものです。2009/02/11(水) 12:06:33ID:4NJho4Vs
>>159
ゲーム本体作るなら、C++ + DirectX
ツール作るなら、.NET(C#)だな
0166名前は開発中のものです。2009/02/12(木) 20:13:23ID:GF7pXsC2
3Dゲームには垂直同期とか異方性フィルタといったフィルタ機能が多く存在しますが、
こういったものの具体的なアルゴリズムが書かれてある書籍を教えて下さい。

よろしくお願い致します。
0167名前は開発中のものです。2009/02/12(木) 21:16:01ID:qYzhx+29
君の「アルゴリズム」の定義は、おそらく一般的なそれとは異なっている。
0168名前は開発中のものです。2009/02/13(金) 03:30:08ID:YfvPS2XS
異方性フィルタとか言い出す前に、
普通に素のモデルを画面に表示できるようになれって話だな。
0169名前は開発中のものです。2009/02/13(金) 10:16:54ID:XaGVfN4Q
>>167
どういうことですか?
0170名前は開発中のものです。2009/02/13(金) 14:18:20ID:n2spZu5F
>>169
垂直同期てなんですか
フィルタなんですか
アルゴリズムなんですか
0171名前は開発中のものです。2009/02/14(土) 17:18:16ID:sx6BcV1l
C++/DirectX でアクションゲームを作ってるのですが、色んなPCで同期をとるために経過時間を計測するのって、
一般的にどの関数使うんでしょうか?
あと、昔、DOSで作ってたころはVシンク割り込みでどうたらこうたら、ってやってたきがするんだけど、
これって今の液晶画面で計測できるもんなんでしょうか?
0172名前は開発中のものです。2009/02/14(土) 17:43:59ID:9hSEub+0
時間の計測は QueryPerformanceCounter とか。
Windowsでは垂直同期の周期は環境によって全然違うので、
基本的には垂直同期に依存しないように作る。
0173名前は開発中のものです。2009/02/15(日) 00:36:23ID:FJmkH997
>>171
精度がミリ秒程度でよければ、timeGetTime。timeBeginPeriodで精度を上げるのを忘れずに。

高精度がいるなら、>>172
0174名前は開発中のものです。2009/02/15(日) 00:41:57ID:brCH5Anb
>>172
>>173

ありがとうございます。
多環境で同期をとるのにどの程度の精度が実際に必要かやってみないとわからないので、
教えていただいた関数をもう少し調べてやってみます。
0175名前は開発中のものです。2009/02/15(日) 19:09:59ID:MYSF9VWq
垂直同期は
D3DRASTER_STATUS rs;
do{
pd3dDevice->GetRasterStatus(0, &rs);
・・・
}while(!rs.InVBlank);
とかやるといいらしい。
ループ内でスリープ入れないとCPU使用率が100%になっちゃうかな?
0176名前は開発中のものです。2009/02/15(日) 21:23:34ID:A1rRuMYU
メモ代わり。
MessageBoxがなぜか表示されない。グーグル先生曰く
WM_PAINTでBeginPaintとEndPaint処理をしてないからだと。
言われたとおりにしたら見事に解決した。
描画処理を別スレッドでやっててもWM_PAINTの処理は必要らしい。
windowsの中の人はよく分からんなぁ。
0177名前は開発中のものです。2009/02/16(月) 00:29:54ID:7z4LXD+E
WM_PAINTはDefWindowProcに流せば、中でBeginPaint/EndPaintを呼んでくれるはずだが。
0178名前は開発中のものです。2009/02/16(月) 08:35:55ID:bKMsn7yg
そこら辺はカスタムウインドウだかしない限りは自動で出来るはずだから、参考書でも眺めたら?と3年ほどプログラミングしてない学生が入ってみる
0179名前は開発中のものです。2009/02/16(月) 11:54:02ID:0xRjldBE
BeginPaint呼ばないと無効領域のクリアができないからだよ
クリアできないといつまでたってもWM_PAINT送り続けられる。
ValidateRectで消してしまうのも手だが。
01801762009/02/16(月) 19:52:31ID:RG1TxuqM
>>179
ものすごく納得した。サンクス
自作のuiライブラリの処理が甘かったなぁ。
0181名前は開発中のものです。2009/02/22(日) 10:56:36ID:JmJl5yfs
オンラインで10×10マスのビンゴゲームをイメージして下さい。
参加者は、月1回オンラインで100個の数字を記入したシートをUPし、
毎日5個の数の発表を待ちます。

こんな感じのプログラムを創って貰うとき、何に注意して、どこに商談すればいいですか?
お願いします。
0182名前は開発中のものです。2009/02/22(日) 13:07:55ID:9a/tyRQO
なんだかすごい釣り針が…
0183名前は開発中のものです。2009/02/22(日) 15:53:56ID:uv0okrQ5
>>181
そのイメージの元となったビンゴゲームの開発元に
「絵をちょこちょこっと変えたバージョンを作って売ってください」って言うのが一番確実で手っ取り早い。
0184名前は開発中のものです。2009/02/22(日) 17:14:10ID:9a/tyRQO
>>183
こんなところで聞くようなイタイ業者にヒントも出すなよ。
色んな意味でろくな事にならないぞ。
0185名前は開発中のものです。2009/02/25(水) 15:43:56ID:W/hwiF8T
仕様書をまとめたほうがいい
技術的には低の低
0186名前は開発中のものです。2009/02/26(木) 04:43:10ID:EST0UxDP
http://search.vector.co.jp/search?query=%83r%83%93%83S
0187名前は開発中のものです。2009/03/25(水) 20:42:40ID:iHO/uHhQ
ウィンドウを表示するプログラムを作っているのですがウィンドウが表示されず、
visual C++の挙動が変になります。(ずっと プログラム名(実行中)と表示され画面の配置も変になる)
どうすればよいのでしょうか?

コードは以下に晒します
#include <windows.h>

#define APP_NAME TEXT("Sample_MainWindow")

/* ウィンドウプロシージャ */
LRESULT CALLBACK WindowProc(
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
){
switch(uMsg){

case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

つづく
0188つづき2009/03/25(水) 20:43:23ID:iHO/uHhQ
int WINAPI WinMain(
HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR lpCmdLine, int nCmdShow
){
HWND hWnd;
WNDCLASS wc;
MSG msg;

wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND + 1;
wc.lpszMenuName = NULL;
wc.lpszClassName = APP_NAME;

hWnd = CreateWindow(
APP_NAME, TEXT("Window Title"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
100, 100, 400, 300,
NULL, NULL, hInstance, NULL);

/* メッセージループ */
while(GetMessage(&msg, NULL, 0, 0) > 0){
DispatchMessage(&msg);
}

return msg.wParam;
}
0189名前は開発中のものです。2009/03/25(水) 20:58:00ID:cPG1Bp4Z
showwindowが抜けてる、かも
0190名前は開発中のものです。2009/03/26(木) 03:35:13ID:Q1jkMb06
WS_VISIBLEがあるからShowWindowは必要ないかな

WNDCLASS構造体に値を設定しただけでRegisterClassで登録してないのが原因だと思う
0191名前は開発中のものです。2009/03/26(木) 10:22:58ID:uoZMP3+M
>>190 の通り。
RegisterClass(&wc);
をCreateWindowの前に。
0192名前は開発中のものです。2009/04/05(日) 21:54:31ID:Ul2Xl6r0
あんまりWindowsと関係無いのですが、C++でのメモリ確保方法について質問です。

ゲームでnewとdelを繰り返し使いまくると、やってられないから、
存在フラグを持って制御するように。
と、どこかで見た覚えがあります。

それならば、もうnewでメモリを動的確保ぜずに、
普通に静的宣言でいいのではないかと思ったのですが、
動的確保のメリットって何なのでしょうか?

私は仕事がハード畑一色の人なので、頭が固いです。
どなたか教えてくださいorz
0193名前は開発中のものです。2009/04/05(日) 22:34:27ID:V3UuquCs
×ハード畑なので、頭が固い
○高卒なので、頭が悪い
0194名前は開発中のものです。2009/04/05(日) 22:38:51ID:bmURRfR1
>>192
例えばメモ帳を作るとき、読み込んだデータの長さは分からない。
こういうとき静的な確保だと、何メガバイト確保すればいいのかわからないし、
もし確保した量よりデータが大きければ扱えないし、小さければ、無駄になる

そこで、new/malocなどで動的に確保してやれば、必要な分だけ確保できる。
0195名前は開発中のものです。2009/04/05(日) 22:48:17ID:8bGUAz8h
>>192
使用メモリーが決まってて、制限以内なら静的確保で問題なし。
普通は全部持つ友もリーがはみ出るから、効率いい方法を探すだけ。
0196名前は開発中のものです。2009/04/06(月) 20:32:34ID:wZso2H2m
>>192
個人的には動的確保のほうが流れが分かりやすいけどね。
>>194のような柔軟性も持たせられるし。柔軟性を持つということは
コーディングでメモリ空間の大きさをやたら意識する必要も無くなる。
メモリ確保の速度の関係で、予め確保しておいたメモリ空間を使う
ってのはちょくちょく聞く話だけど、
そういう特別な事情が無い限り動的な確保が王道じゃないかなぁとは思う。

まぁ趣味でやるなら不正アクセスが無い限り自由にやりやがれって話ですよ。
0197名前は開発中のものです。2009/04/10(金) 05:55:47ID:q4HGwHB4
ゲームプログラミングの経験はあまりないのですが、
3DのMOを開発しようと思っています。

そこで開発環境についてお聞きしたいのですが、
簡単に調べて以下のようなものがあるのが分かりました。
・XNA
・Unrealなどのゲームエンジン

XNAはXbox360対応を無視して単にPC向け開発環境として見た場合、良い選択肢でしょうか?
またそういう用途で広く使われているのでしょうか?
Unrealなどのゲームエンジンは、やはりXNAに比べるとすばやく開発出来るのでしょうか?
どの程度自由度が制限されますか?

分かる方よろしくお願いします。
0198名前は開発中のものです。2009/04/10(金) 06:01:34ID:q4HGwHB4
あと、フリーのゲームエンジンでメジャーなものがあれば教えてください。
0199名前は開発中のものです。2009/04/10(金) 07:56:06ID:xaOVHUcG
RPGツクールでも使っとけ。
求めてるのはそういうお手軽にゲームつくれるツールだろ?
0200名前は開発中のものです。2009/04/10(金) 08:01:59ID:q4HGwHB4
そんなものを求めているとは一言も書いていません。
プログラミングの知識としては、OSアーキテクチャからアプリ・サーバ・WEB開発までいけます。
メジャーな開発環境はなんなのか、どんなものがあるのか
そういったトレンドを知りたいと思っています。
0201名前は開発中のものです。2009/04/10(金) 08:44:23ID:3LDySn8E
生意気だから教えてあげないぷー
0202名前は開発中のものです。2009/04/10(金) 10:02:25ID:o/eQJnMQ
俺ならXNA以外のエンジンを進める。XNAの欠点にXBOX用コントローラーしか
利用できない。XNA用のランタイムがほとんどのPCには入っていないので、
利用者に別途インストールをお願いしなければならない。XBOXゲーム機では
なんら問題ではないが。PCでは使いたくない欠点だ。
0203名前は開発中のものです。2009/04/10(金) 19:34:54ID:ESPzFswh
Ogreでも使ってろよクズが
0204名前は開発中のものです。2009/04/10(金) 19:48:05ID:WdqvyJ6f
>>197
Windowsの3Dゲーム開発で何が主流か?といわれたら、主流はない。
あえていうなら、DirectX。
XNAはありえない。
Ogreとかもないな。

UnrealやHalflifeのMODみたいな感じでゲーム開発使うのは海外では流行っているし、
情報あるから(ただし英語)いいかもしれない。
敷居も低い。
ただ、ゲーム開発の主流ではないと思うが。

0205名前は開発中のものです。2009/04/10(金) 19:48:54ID:WdqvyJ6f
> 敷居も低い。
1から3Dエンジンを作るよりも、って話ね。
0206名前は開発中のものです。2009/04/12(日) 10:37:36ID:O+0G4WiN
別にPC前提ならXNAでもXBOXコントローラー以外も使えるけどな。
C#でやりたいというわけでもないなら、XNAじゃないほうがいいだろうな。
02071972009/04/12(日) 11:22:43ID:2pX9j9Yn
レスありがとうございます。

個人でやるつもりなので
多少パフォーマンス面でデメリットがあったとしても
C#みたいなスピーディに開発出来る言語が良いんですよね。
その点、XNAはログイン処理とかまでフレームワーク化しているようで
おまけに基本的な事をやるにはサーバ要らずと言う点はスタートのし易さと言う意味では強力かなと。

>>203
Python OgreはPythonと言うだけで惹かれますね。

>>204
ランタイムだけでなくフレームワーク、エンジンレベルのものを使おうと考えています。

>>202>>206
貴重な情報ありがとうございます。

とりあえずXNA本を一冊読んで見ます。
0208名前は開発中のものです。2009/04/12(日) 17:48:24ID:uJhs7hdp
まて、XNAはフレームワークだろうけど、エンジンというほどじゃない気がw

OgreってのPython バインデイングもあるのね…。
せっかくだから、Panda 3DってのもPython+3Dエンジンだぜ

C#に拒否反応ないなら、(デプロイにユーザー開発者双方で手間かけてもいいなら)
Pythonとかでもいいよな。
0209名前は開発中のものです。2009/04/12(日) 22:03:27ID:vkgd6Htu
質問です。2Dのゲームの場合絵を描くことについてですが
gifじゃないといけない理由ってありますか?
gifだと256色しかないんで別の拡張子で素材作りたいのですが。
pngとかjpgとかgifとか拡張子ありますがgif以外でもつくれるならば
別の拡張子で綺麗な絵柄で作りたいと思っています。
可能ならばメリットとデメリットってありますか?
0210名前は開発中のものです。2009/04/12(日) 22:28:24ID:LCOFWzsh
プログラム的な話で言えば別に色情報さえ読み取れるなら
どの形式だろうが或いは独自形式であっても問題ない
しかし、なにかのツクール系みたいなツールで作っていて
対応フォーマットがgifにしか対応してないっていうなら従うしかないんじゃない?
むしろgifのほうがライセンスの問題で使うべきではないんだが
DirectXであればbmp、png、jpg、tga、dds、あたりが標準で読める
0211名前は開発中のものです。2009/04/12(日) 22:44:13ID:ZQ7DXobT
DirectX != D3DX
0212名前は開発中のものです。2009/04/12(日) 22:45:13ID:vkgd6Htu
>>210
ありがとうございます、ツクール系ではなく普通に本勝って付録でついてる
サンプルプログラムを改造してゲーム作る予定です。
で、素材の絵を描いていたのですがドット打ちできないんで普通にフォトショップで
描いていたのですが不安になったんで質問させてもらいました。

アクションゲームを作ろうと思うのですがキャラクターのモーションとかも
pngやjpgでいけますか?gifアニメみたいにアニメーションにはできないと
聞いたのですが
0213名前は開発中のものです。2009/04/12(日) 23:35:32ID:LCOFWzsh
>>212
そもそもアニメーション情報を含めることのできる画像フォーマットを使ったとしても
ゲーム上でアニメーションさせるにはそのための機能を自分で実装しなくてはいけません
gifアニメーションで作ったとしても勝手に再生してくれるわけではないのですよ

一般的な方法でいうと
1枚の画像にアニメーションのパターンを全て含めて
画像のどの部分をどのタイミングで表示するのかを
プログラム側から指定してやることでアニメーションをさせます
プリーのツールでそういったアニメーションデータを作成してくれるものもありますが
それはあくまで画像の区切りやタイムテーブルのデータの作成を簡易にしてくれるものであって
それらを読み取ってアニメーションをさせる部分は自分で実装する必要があるのです
0214名前は開発中のものです。2009/04/12(日) 23:43:13ID:vkgd6Htu
>>213
ありがとうございます、それに関してはなんとなくわかります。(アニメーションは自分で実装)
でも描いてるうちに参考の画像見ると全部gifなんでgifじゃないといけない理由が
あるのかなあと気になっていたのです。

自分ドット打ちはできなかったんで・・・
0215名前は開発中のものです。2009/04/13(月) 00:03:20ID:qsxqoxw3
gifでないといけない理由はなにもない
単純にインデックスカラー対応で圧縮されてて
ファイルサイズが小さいからとかそんな理由と思われる
まさか、web上の素材サイトを参考にしてそう言ってるわけじゃないよね?
0216名前は開発中のものです。2009/04/13(月) 00:19:55ID:bYodFX/G
>>215
いや、mugenとかですね。
キャラの動きとかの研究にmugenのキャラを見てましたが全部gifだったんで
0217名前は開発中のものです。2009/04/13(月) 05:22:32ID:DrRdSLAX
時代背景もあるんじゃないのか?
10年くらい前は256以下なら、pngよかgifくらいな時代だったはずだし(まあ、同時にgifライセンスうぜーって時期でもあったが)
俺はよくわからんので。

mugen詳しい人よろ
0218名前は開発中のものです。2009/04/13(月) 07:03:54ID:kKYIuKnL
おれは盲目的にbmpとpng(^-^;
さて

>サンプルプログラムを改造してゲーム作る予定です。
一応PGなら改造って言葉は使わずあくまで「参考にして」ってしとけ
たぶんそんな機会は訪れないと思うが足元すくわれるぞ
0219名前は開発中のものです。2009/04/13(月) 08:23:11ID:GN8f0M0n
どうせ出来ないんだからいいんじゃないの
0220名前は開発中のものです。2009/04/13(月) 15:20:22ID:yYZDsjyV
それを言っちゃあおしめえよ
0221名前は開発中のものです。2009/04/30(木) 14:07:29ID:XSOMXuai
XNAでインベーダーゲームを作ってるんだけど
敵キャラを下にゆっくり移動させるのにはどうしたらいいんだ?
ちなみに右に行って下
左にいってしたってかんじ
0222名前は開発中のものです。2009/04/30(木) 16:14:51ID:Szb967NA
if (mode == 右に動かす)
{
  (敵を右に動かす処理)
  if (一定量右に行ったか) mode = 下に動かす;
}
else if (mode == 下に動かす)
{
  (敵を下に動かす処理)
  if (一定量下に行ったか) mode = 左に動かす;
}
else if (mode == 左に動かす)
{
  (敵を左に動かす処理)
  if (一定量左に行ったか) mode = 下に動かすpart2;
}
else if (mode == 下に動かすpart2)  // ←これは else でもいい
{
  (敵を下に動かす処理)
  if (一定量下に行ったか) mode = 右に動かす;
}

これじゃあかんの?
0223名前は開発中のものです。2009/04/30(木) 17:45:01ID:6x5SV4ES
Dictionaryを使えと何度いえb(ry
0224名前は開発中のものです。2009/05/02(土) 11:18:09ID:1icd8u4m
指定RECTの領域を別RECT(複数)を見てその領域を除いた
複数のRECTに分割したいんだけど複雑すぎてどうすればいいのか

たとえば、指定が{0,0,100,100}で見るのが{21,21,79,79}だけなら
分割後は{0,0,100,20}{0,21,20,79}{80,21,100,79}{0,80,100,100}
の4つになるみたいにしたいんだけど、うーん
0225名前は開発中のものです。2009/05/02(土) 11:44:19ID:3Ey8sJwq
分割するという発想じゃなくて
「指定のRECTを含まないRECTを一つ除外する」という処理を
再帰的に指定のRECTと同じサイズになるまで繰り返せばいいんじゃね?
0226名前は開発中のものです。2009/05/02(土) 12:21:12ID:hJ68J4gV
面白い問題だと思ったが、メンヘラが出てきてしまった。
こういう奴は自分のネタ書き込みが実装できなくても、
他人のアイデアに延々ケチを付け続けるので、書き込むのが既にウザイ
■ このスレッドは過去ログ倉庫に格納されています