トップページgamedev
1001コメント378KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。2009/09/29(火) 07:08:29ID:OO8C9kYO
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/

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

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

ゲーム製作技術板予備(機能停止中?)
http://yy13.kakiko.com/gamdev/

アップローダー予備
http://gamdev.hp.infoseek.co.jp/

gamdev.orgが落ちるたびにあげてみるスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1107022166/
0966名前は開発中のものです。2010/03/29(月) 17:24:43ID:8VqpNpSG
>>965
レスどもです。
作ったのは そのアクションパズルのほうだったんですが、
ググって出てきたものを見てみると・・・これは相当深い世界ですね。

実はネット対戦の実現が厳しかったのでCOM対戦に逃げたんですが、
自分が思ってたより ずっと苦労しそうです。
しかし、おかげさまで光明が見えてきました(うっすらと)
0967名前は開発中のものです。2010/03/29(月) 18:24:16ID:tAa/9ZD/
どう考えても、ネット対戦(=vs人間)の方が楽なんだがw
とくにアクションパズルはw
COMの思考バリエーションも必要になるしねぇ。

一人用はできてるんだよね?
それとも相手が居ないとできないの?
0968名前は開発中のものです。2010/03/29(月) 18:40:12ID:8VqpNpSG
ええと・・・ オフラインなら2人用ができます。

ネット対戦が厳しい、と書いたのは、色々なフリーソフトを見ると現実的に
「人が集まらない、やってもらえない」という根本的な悩みを抱えている作者さんが
多い、ところいうのが大きいですね。
自分のパズルに、継続的に人を惹きつける魅力がそこまであるかな、と

もちろん、CSであればサーバーの管理が・・・とか、アクション性があるだけに
ラグの無いような組み方は・・・などプログラミング技術的な心配もあるんですけど
0969名前は開発中のものです。2010/03/29(月) 18:46:30ID:8VqpNpSG
あ、対戦ものなので相手が居ないとできないです。
0970名前は開発中のものです。2010/03/29(月) 19:27:24ID:tAa/9ZD/
基本は出来てて、あとはCOMの思考ルーチンだけなのね。

じゃぁ、人間の思考をCOMにさせればいいやっていう、
基本的な事はわかった上で、どうするかを考えているのか。

ぷよぷよのような落ち物パズルを想定して話すが、一番簡単な方法は、
「あらかじめCOMの操作の配列を作っておく」方法
ようするに、インチキ。

ランダムに落ちてくるはずのぷよをコンピュータは全部知っていて、
あたかも操作しているように見せる。色変えたり、パターンを増やせばほとんどわからんはずw
この方法だと、おじゃまプヨで終わりだけどな。
手がくずれたら、あとはひたすら消すルーチンにするとか。
お邪魔が来る前に3連鎖程度を連発するとか。

具体的な話になってくると、システムがわからないとねぇ。
パクられても嫌だろうから、あとは自分で頑張るしかないねw

逆にルーチン部分を他人が作れるように
インターフェースを整備して公開するのも面白いかも。
他人のルーチンが読めれば勉強にもなるだろうし。

俺とかむしろこっちの方がもえるかもシレンw
0971名前は開発中のものです。2010/03/29(月) 20:03:41ID:8VqpNpSG
インチキ法、ググってみると業務用でも採用されてたみたいですね、セガのテトリスとか。
自分の力量的にも分相応ではあるんですが・・・うーん最終手段かも

ぶっちゃけてしまうと、ルーチン部分は他の人に頼めればそれに越したことはない、
むしろそこ燃えて欲しいという考えではあるんですけど、いかんせん
言語がHSPなもんで誰も寄ってきてくれそうにないというのが。


取り敢えずは頂いた情報を材料にやってみます。
0972名前は開発中のものです。2010/03/29(月) 20:39:34ID:tAa/9ZD/
HSPか・・・・せめてpythonで・・・・w
外部用のインターフェース切るの難しいね。
とくに、こちらの指令する作法を守らせるのが難しい。

とにかく頑張れ!
0973名前は開発中のものです。2010/03/29(月) 21:16:10ID:+6S6hu0H
pythonって名前は聞くけど書いたことないなあ…
中括弧ないんだっけ?よく書けるなそんなんで
0974名前は開発中のものです。2010/03/29(月) 21:33:04ID:Z8PB/8Xa
完全に切り離して、ってのはダメなん?
パズルなら入力は移動と回転、落下とかくらいでしょ。
出力結果をそれらに絞るような外部思考ルーチンを組めばあるいは、、、
と、思考ルーチン組んだことないやつがたわごと言ってみる
0975名前は開発中のものです。2010/03/29(月) 21:41:14ID:Z8PB/8Xa
ゴメン、酔っぱらってた
orz
0976名前は開発中のものです。2010/03/30(火) 11:29:34ID:fhJynSYJ
>>973
一番勢いがある(あった?)言語だと思うんだが。日本ではいまいちだが。
GoogleAppEngineでも最初にサポートされた言語だし。

中括弧に相当するインデントによる制約があるし、機能として不足している部分はない。
PyScripterっていう専用エディタがなかなか便利で、それ使ってちょっと試したらいいよ。(python自体ももちろん要る)
API群も強力で、ちょっとググればほしいモジュールがたいていそろう。
探すときは英語読めないときついが、使うときはソースは読めるだろうからどうにかなる。

ゲーム制作でいえば、pygameという開発モジュールがあって、これが強力。
SDLのラッパーだから、LinuxやMacでも走るよ。
0977名前は開発中のものです。2010/03/30(火) 12:49:51ID:CSNOvyXo
日本語の解説少ない時点で敷居が高いだろ
0978名前は開発中のものです。2010/03/30(火) 12:59:11ID:jpGVC+Nd
PyScripte パイスクリプター? pygame パイゲーム?

えらくそそられる環境ですな
0979名前は開発中のものです。2010/03/30(火) 16:38:29ID:ok2a9IlJ
ttp://www.game-create.com/archives/154

ここを参考に2Dのホーミングは分かったのですが、3Dのホーミングはどうすれば良いのでしょうか。。。
09809592010/03/30(火) 17:23:08ID:P6m6KDQV
>>960
メイリオにしてます。全角文字は等幅のようですが、半角はプロポーショナルらしいので、
1文字の幅が一定という前提で計算することはできません。

そんなわけで、文字列は基本的に行ごとに格納しています。ルビの場合はそこで分割。
1行目、2行目A、2行目B(ルビ付)、2行目C、3行目のような感じで。
フォントクラスは改行文字も処理できるので、1行目と2行目Aはくっつけてもいいかもしれませんが。

>どうせやるんなら自分で考えたほうが自分のためになるよ。
頑張って自分で組もうとしてみました。
行末に禁則文字があった場合は、後ろの1文字も含めて次の行に送り出すようにしてみましたが
ルビ→改行→句読点のようになっていると、句読点が行頭に出てきてしまったりします。
まぁ、そのうちなんとかなるでしょう

>>961
吉里吉里ってソース公開されているんですね。見てみます!
かなり本格的なシステムなようなので、読むのが難しそうですが・・
0981名前は開発中のものです。2010/03/30(火) 22:38:48ID:KLyZQc5S
>>979
個人的には XY→角度→XY に戻すのは好みじゃないな
動作はXYだけで完結しておいて、角度を求めるのは表示するときのみ一方通行の変換にしたくなる

double x, y, z;// 現在位置
double ix, iy, iz;// 現在の移動ベクトル
double tx, ty, tz;// 現在位置からターゲットへの相対位置
double dis;// ワーク

dis = sqrt(tx*tx+ty*ty+tz*tz);
if(dis > 0){ dis = 方向転換力/dis; ix+=tx*dis; iy+= ty*dis; iz+=tz*dis; }
dis = sqrt(ix*ix+iy*iy+iz*iz);
if(dis > 0){ dis = スピード/dis; ix*=dis; iy*=dis; iz*=dis; }

今適当に書いたから間違ってたらゴメン
0982名前は開発中のものです。2010/03/30(火) 23:01:15ID:5dN9Twcu
>>980
WindowsならWinAPIのGetCharABCWidths使って>>960の考え方でがんばれば計算できるんじゃね?
09839792010/03/31(水) 04:22:17ID:hQL22suv
>>981
ありがとうございます。
試してみます。
0984名前は開発中のものです。2010/03/31(水) 04:46:03ID:D+e8+dQG
double だから dis == 0 ってなるか?と思う
0985名前は開発中のものです。2010/03/31(水) 08:30:33ID:6wc3W2mV
>>963のプログラムってどういう感じに働いてるんだろ
自分のとは全然違ってて新感覚
0986えいいち ◆GRGSIBERIA 2010/03/31(水) 10:12:53ID:sNcLJd0Y
>>984
if (!(dis ^ dis))で動くんじゃね?
0987名前は開発中のものです。2010/03/31(水) 15:49:04ID:G3DP0Tku
x, y, z;// 現在位置
ix, iy, iz;// 現在の移動ベクトル
tx, ty, tz;// 現在位置からターゲットへの相対位置

sx=tx-ix, sy=ty-iy, sz=tz-iz;//舵力ベクトル
dis=sqrt(sx*sx,sy*sy,sz*sz);
ix+=舵力*sx/dis, iy+=舵力*sy/dis, iz+=舵力*sz/dis;

dis = sqrt(ix*ix+iy*iy+iz*iz);
if(dis > マックススピード){ dis = マックススピード/dis; ix*=dis; iy*=dis; iz*=dis; }
では?
0988名前は開発中のものです。2010/03/31(水) 18:33:34ID:SSvnJ33T
const double speed = 8.0f; // スピード(サンプル)
double dx = targetX - fromX;
double dy = targetY - fromY;
double dz = targetZ - fromZ;
double dis = sqrt(dx*dx+dy*dy+dz*dz);
double vectorX = dx/dis; //cos(atan2(dy, dx));
double vectorY = dy/dis; //sin(atan2(dy, dx));
double vectorZ = dz/dis;
vectorX = vectorX * speed;
vectorY = vectorY * speed;
vectorY = vectorZ * speed;

>>979のサンプル参考にするならこうじゃない?
確実に追撃する凶悪ホーミングになりそうだけど
0989名前は開発中のものです。2010/03/31(水) 18:42:48ID:SSvnJ33T
質問です
データのロード中にプログレスバー的なものやアニメーションを表示させたいのですが
どのようにしたらよいでしょうか?
参考になるようなサイトとかないでしょうか?
C言語+DXライブラリを使用しています
0990名前は開発中のものです。2010/03/31(水) 20:22:34ID:82KmLTbO
スレッド分けたら?
0991名前は開発中のものです。2010/03/31(水) 20:35:56ID:KdGg28RJ
>>989
ロードに何十秒もかかるような、大規模なゲームを作るわけじゃないと仮定して。

毎フレームにつき1つずつデータファイルを読み込んで、
そのフレームの描画タイミングで進捗具合を表示すれば、別に問題ないと思う。
0992名前は開発中のものです。2010/03/31(水) 21:27:40ID:6jaz5Vk+
どう考えても>>989のやりたいことは>>990だろ
0993名前は開発中のものです。2010/03/31(水) 21:30:06ID:Kyry7wz+
デジャブー
09949892010/03/31(水) 22:01:27ID:SSvnJ33T
ありがとうございます
スレッドっていうのがあるんですね
ちょっと調べてみます
09959592010/03/31(水) 22:53:59ID:mll2egdJ
なんとか解決・・・したと思うので一応報告を。句読点の前にルビ付きの文字列が前にあるような場合は
それごと次の行に送り出すようにしました。(ルビ付きの文字は分離禁止にしたいので)

ルビ付き文字列だけで1行占めているような場合(多分ないと思いますが)は永遠に次の行に送られ続けて
フリーズするかもしれませんが、その場合は諦めて改行するようにすれば良いでしょう。

>WindowsならWinAPIのGetCharABCWidths使って>>960の考え方でがんばれば計算できるんじゃね?
自分で書いたものではないのですが、特定の文字列の幅を取得する処理は出来ていました。
(Windows上だけど、マルチプラットフォーム対応のためFreeType2使用)
0996名前は開発中のものです。2010/04/01(木) 00:57:47ID:2efbVZje
>>994
DXライブラリはスレッドセーフじゃなかったはずなので注意な。
複数スレッドからDXライブラリの関数を呼ぶならロックが必要。

まだスレッドを知らないレベルなら、
>>991のやり方にしといたほうがいい気もするけど
0997名前は開発中のものです。2010/04/01(木) 16:50:19ID:o7wXbEPN
スレチでしたら、誘導お願いできると助かります

http://iup.2ch-library.com/i/i0074732-1270108177.jpg

ADVゲームなどのシナリオのルート管理で
図のようにルート分岐などを管理できて、四角ごとにシナリオが書き込め、
その四角を任意に移動、編集が可能なテキストエディタを探しています。
livemakerをご存知の方は、livemakerのチャートを思い浮かべて頂ければいいと思います。

お心当たりの方がいらっしゃったら、情報、ご助言よろしくお願いします
0998名前は開発中のものです。2010/04/01(木) 18:12:30ID:Pt9ShRpA
そういうのってアウトラインプロセッサというらしい
このサイトの下のほうでいろいろ紹介されてるよ
http://pctraining.s21.xrea.com/knowledge_tools/outline-proccessor.html
0999名前は開発中のものです。2010/04/01(木) 20:58:19ID:BQHLBARM
YuukiNovel
1000名前は開発中のものです。2010/04/01(木) 23:56:16ID:qRZRp6CX
1000げt
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。