ゲームプログラムなら俺に聞け26

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2012/12/27(木) 11:39:02.01
抽象的なレベルでAIとactorの切り分けが出来てないんだろうな
953921, 925:2012/12/27(木) 12:37:55.84
>>952
俺に対するレスなんだよね?

抽象的なレベルでAIとactorの切り分けが出来るなら、
>>944 の考えは出てこない、という事?

それは、プレーヤーを模しているかどうかではなく、
AIの賢さの程度によってはザコ敵でもAIビューで表現するということ?
954デフォルトの名無しさん:2012/12/27(木) 12:48:53.33
賢さの程度の話じゃないよ
まずAIのするべき仕事とactorのするべき仕事を簡潔に言語化してみればいい
そうすればactorに物事を判断する為のコードを書く事は問題の切り分けに失敗しているという事だと分かる
955921, 925:2012/12/27(木) 19:05:13.81
>>954
物事を判断する為のコードはAIビューに書くべき、ということか?
その「物事を判断する」というのが、どういう事も含まれるのか難しいな。

例えば、3歩進んだら右に曲がるという行動のみをする敵を作る場合、
自分が何歩進んだかを記憶しておき、3歩進んだがどうかを判断するわけだが、
これも「物事を判断する」場合に含まれるわけ?
もしそうなら、これもAIビューで表現するのか・・・

>>934 の方とは異なる意見だね。
956デフォルトの名無しさん:2012/12/27(木) 19:20:56.13
三歩歩いたら曲がる機能を持っただけの無能ロボと言う設定ならAIは持たないでアクターに書く
知能を与えられた歩けるロボでその知性が三歩歩いたら右に曲がりたいと考えて居るって設定ならAIを作る
957921, 925:2012/12/27(木) 20:01:51.26
>>956
なるほど、プログラマ(やディレクター)がAIだと認識しているのなら、
アクターで表現しようとするのはおかしい、と言うことか。

ディレクターがこれはAIで動かすと言えば、どんなザコ敵でもAIビューで表現し、
これは機能で動かすと言えば、どんなボス敵でも格ゲーの対戦相手でもアクターで表現する、と。
958デフォルトの名無しさん:2012/12/27(木) 20:40:24.28
good!
959921, 925:2012/12/27(木) 20:57:08.43
すまん、>>934>>956 と同じか。
>>934 もAIを持たない簡素なものはビューは要らないと言ってるのだから。

とすると、一般人よりも多くのものが(程度の差こそあれ)AIだと考えてしまう俺は、
やはりAIビューをたくさん作ってしまうことになりそうだな。

ありがと。
疑問は解消された。
960デフォルトの名無しさん:2012/12/27(木) 21:55:32.75
モルピグの鯖ってどうして分けてあるの?
最適でも2つ、多いやつは10以上鯖があるよね
あとIDなんかは別鯖?
961デフォルトの名無しさん:2012/12/27(木) 22:06:32.95
分けた方がかっこいいだろ
962デフォルトの名無しさん:2012/12/27(木) 23:04:57.32
それよりチャット鯖の分離が分からない

一般的なモルピグはプレイヤーの周囲の一定範囲しかチャットが聞こえない、つまりキャラの位置情報が必要
すると毎回位置情報を持ってる鯖にリクエストを出して位置を取得する必要がある、これコスト高くね?
963デフォルトの名無しさん:2012/12/27(木) 23:11:39.83
キャラがピクリと動いて座標が変わったら、
その周辺にいるプレーヤーの画面にもそのピクリと動く様子が映されるんじゃね?
これってキャラの位置情報が必要になるよね。

チャットに関係なく、位置情報のデータのやりとりは毎回必要になると思うが。
964デフォルトの名無しさん:2012/12/27(木) 23:12:40.85
ゲームプログラムなら俺に聞け27
http://toro.2ch.net/test/read.cgi/tech/1356617503/
965デフォルトの名無しさん:2012/12/28(金) 00:03:20.09
>>963
だから位置情報を必要とする処理って鯖を分けるの無理じゃね?
倉庫とか、ギルド情報なら分けられるだろうけど
966デフォルトの名無しさん:2012/12/28(金) 03:55:35.81
俺がやってた某モルピグはバフの管理が別鯖になってたな。
バフ鯖が落ちるとバフ系のスキルが使えないでやんの。
あと、フィールドMOBの管理も別鯖っぽかったな。
一体どんだけ鯖使ってんだ。
だからラグが発生するんだろ。
967デフォルトの名無しさん:2012/12/28(金) 07:31:15.79
>>965
アクセス頻度が高いデータを高性能な別鯖に分けることで、
同じ少ない予算でもシステム全体を効率的に組めるとか

ハフマン符号化で、頻度の高いデータに短いワードを割り当てるみたいな
968デフォルトの名無しさん:2012/12/28(金) 10:04:32.97
>>962
普通はデータベースがまず真っ先に分離対象になるので(非常に分けやすいから)
チャットだけ別にしてもコストは大差ないと思う
969デフォルトの名無しさん:2012/12/28(金) 14:31:04.01
モルッピグのスキルで地雷仕掛けたりできるやつあるけど、あれって地雷オブジェクトとか鯖で持ってんのかな

class JIRAI{
private:
boolean active;
int posx, posy, posz;
public:
int set( posx, posy, posz );
int hitcheck( posx, posy, posz );
}
970デフォルトの名無しさん:2012/12/28(金) 22:14:10.35
持たなかったらどうするつもりなの?
971デフォルトの名無しさん:2012/12/28(金) 23:26:55.96
そこっタスクシステムですよ。
モルピグ鯖もタスクシステム!
972デフォルトの名無しさん:2012/12/29(土) 04:00:12.65
>>962
範囲の更新頻度を調整すれば負荷はなんとかなるし、チャット対象者が少ない方が通信料もすくなかろう。
まあゲームデザイン的な問題の方が大きいと思うが。


上のほうでテストの話もでてたが、無限大でテスト無理とかいってるやつは設計がまずいから見直したほうがいい。
973デフォルトの名無しさん:2012/12/29(土) 04:01:55.18
地面に落ちてるアイテムを拾得する処理って、
拾得キーを押したプレイヤーの拾得情報を鯖に送って、
一番最初のプレイヤーの拾得情報がきた時点で当該アイテムにロックかけて他のプレイヤーが拾得できないようにして、
それから最初に拾得情報を送ってきたプレイヤーの持ち物に拾得したアイテムを追加するの?
俺の素人考えだとこうなるんだけど、プログラムがすげーだるそうだし、拾得キーを押してから持ち物に追加されるまでかなりラグが出そうなんだけど。
974デフォルトの名無しさん:2012/12/29(土) 05:17:50.52
ラグったって大した事無いでしょ
どうしてもコンマ数秒が気になるのであれば、とりあえず拾うモーションとかを再生しておけば
持ち物に追加されるのはそのモーションが再生終わった後ってのが自然だからラグがあっても分からなくなるし
975デフォルトの名無しさん:2012/12/29(土) 08:54:19.92
ラグはMMORPGとして致命的だぞ何言ってんだ
MMORPGやったことないのか?
ラグってるやつは嫌がられてPTも組めない
976デフォルトの名無しさん:2012/12/29(土) 09:48:21.53
「ラグったって」⇒「ラグといっても」と言う意味であって
ラグるという動詞の過去形ではないのではないか
977デフォルトの名無しさん:2012/12/29(土) 09:49:16.96
>>973
いちいち分散トランザクションなんて張ってられないから
もっと楽観的な実装のことが多いと聞いた気がする
だから、同時に複数人のプレイヤーが1個のアイテムを取得できることがありえる
整合性は崩れているが、ユーザーは困らないのでそれで良いとか
978デフォルトの名無しさん:2012/12/29(土) 09:49:37.12
>>975みたいな他人の意見をはなから間違ったものとして見る奴こそがPT組めない
979デフォルトの名無しさん:2012/12/29(土) 09:58:13.12
案が提示されたのだから、グダグダ言わずにまずその案でプログラムしてみろよ

実際問題があるにしても、お前らの場合、動かしてみないと何がどう問題なのか分からんだろ
980デフォルトの名無しさん:2012/12/29(土) 11:00:47.75
>>978
悔しかったのねかわいそう
981デフォルトの名無しさん:2012/12/29(土) 22:32:53.98
モルピグってみんな似たようなのばっかだな
982デフォルトの名無しさん:2012/12/29(土) 22:34:46.76
通信できるってだけでゲームとしてはクソゲーばかりだよな
983デフォルトの名無しさん:2012/12/29(土) 22:57:45.00
モルピグ()
984デフォルトの名無しさん:2012/12/30(日) 01:20:45.58
やっばユーザー間のプレイ時間とPSにバラつきがあるからじゃね?
毎日コンスタントに14時間プレイできる廃ニートと、
週1で日曜日に2時間だけプレイできる奴を同じ土俵でプレイさせようってのに無理がある。
985デフォルトの名無しさん:2012/12/30(日) 02:48:19.30
フェアプレイって概念が抜けてるのが多いのが問題で、それ以外は大した問題じゃない。
986デフォルトの名無しさん:2012/12/30(日) 03:15:26.34
モルピグ鯖作ってるんだけど、だいたい360fps〜460fpsで動いてる

こんなもんかね
987デフォルトの名無しさん:2012/12/30(日) 03:30:51.53
>>984
廃人勢x課金勢、それとチャットや暇つぶし利用のホビーユーザーの構図だから問題ない
988デフォルトの名無しさん:2012/12/30(日) 05:06:42.76
モルピグについて質問です。

管理するにはやはり鯖に直接接続してリアルタイムに各種統計を見られるアプリを作るものなのでしょうか?
あと、鯖のメンテナンスみたいなプレイできない時間を挟まないで、アイテムのドロップ率を変更したり、
管理者の任意の場所に任意のモンスターを投下したいのですが、どういった設計やインターフェースが正しいのでしょうか?
アイテムは例えば実装後にドロップしすぎていると感じたときにドロップ率を絞ったり、
逆に鯖全体で予想以上にドロップ数が少なかった場合にドロップ率を上げたり、様子を見ながら調節したいのですが。
モンスターは例えばサプライズイベントととしてプレイヤーがたまたま多く集まってるところに強力なモンスターを投下したいのです。
989デフォルトの名無しさん:2012/12/30(日) 11:02:41.10
当たり前
統計もそうだが動的に変えられるよ
課金のガチャとかそれやらないと儲けでないしニュースにもなったろ
990デフォルトの名無しさん:2012/12/30(日) 11:05:17.27
オンラインゲームに関わるやつにろくな人間は居ない
売る方は詐欺師だし、買う方は人生の敗残兵ばかりだ
991デフォルトの名無しさん:2012/12/30(日) 11:20:33.45
パチンコと同じ。いや違うか現金が帰ってこない分さらに悪い。
992デフォルトの名無しさん:2012/12/30(日) 11:26:07.44
>>988
IDで管理できるから個人別にオプティマイズしたソリューションを用意して
統計的に金遣いが荒いプレイヤには当選率下げても問題ないとか
チャット使用率の高いプレイヤは当選率上げとけば500円で当たったとか回りに勝手に宣伝してくれるとか
まあ犯罪だよね、やるなよ
993デフォルトの名無しさん:2012/12/30(日) 17:45:13.30
統計画面はもうゲーム画面じゃなくてリストビューとかなんだろうな
プレイヤー一覧から特定のプレイヤーを選んで表示ボタン押したら装備から所持アイテムまで全部見られる的な
994デフォルトの名無しさん:2012/12/31(月) 00:02:08.20
ボンブリスのプログラムって難しそうだな
995デフォルトの名無しさん:2012/12/31(月) 04:11:01.47
RPGのアイテムって、
全種類のアイテムについてID付きのデータベース作って、
キャラの持ち物はそのIDと個数をセットにしたデータベース作る感じでいい?
996デフォルトの名無しさん:2012/12/31(月) 08:39:28.10
そんなことまできかんとあかんの?もうしらん。
997デフォルトの名無しさん:2012/12/31(月) 08:47:36.57
いや俺も興味あるな
MMORPGとかってアイテムがほぼ無限に生成される可能性があるのに
どうやって管理してるの?
ID付けるって言っても、いつかオーバーフローするよね?
998デフォルトの名無しさん:2012/12/31(月) 08:56:55.10
アイテム種別が40億超えるネトゲがあると思ってるのか
Max決めて配列使えばいいとこを動的確保しちゃうタイプか
999デフォルトの名無しさん:2012/12/31(月) 09:09:25.41
種別というより、同じ名前のアイテムでも内容は違うから
全部別アイテムとして管理されてるはずだけど
それなら数年も運営されてれば40億は超えるはず

例えばUOとかでも同じ"katana"というアイテムでも
攻撃力、耐久力等は全て違うし、鍛冶屋が生成したとすれば
作成者も紐づけられているし同じIDでは管理できない
1000デフォルトの名無しさん:2012/12/31(月) 09:11:02.00
>>998はチープなゲームしか作ったことなさそうだな
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。