■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50   RSS2.0 Feed  
レス数が950を超えています。1000を超えると表示できなくなるよ。

雨をテーマにしたギャルゲ作ろうぜ

931 :まドプロ ◆fytI5p4Q4M :2016/01/21(木) 07:23:22.50 ID:4iAFu8JN
http://i.imgur.com/zVVHBX7.png
商業で作った大規模エンジンを組み込み中
(調べる気が起きなかったから自分で構造を作ったけど、
探せば多分もっと効率的で分かりやすい方法が使われた/解説された講座があると思う)


大規模・ある程度ちゃんとしたアクションゲームを作ろうとすると「キャラが一度に複数の行動をする」傾向にある
たとえば、ボスキャラや強キャラは「プレイヤーを微妙に追いかけるホーミング飛び道具」を飛ばしながら
「武器による近接攻撃」を行ったりとする様な事がある

アクション(行動)を管理するラベル(あるいは関数)として、「飛び道具」ラベルと「近接攻撃」ラベルの2種類があったとき
小規模のゲームでは、キャラの変数(データをしまう場所)に一つだけ「どの攻撃を発動しているか」を示す変数を容易するんだけど、
そういう使い方をしてしまうと「今は飛び道具攻撃を発動している=そのため近接攻撃が発動できない」とか
「近接攻撃を発動した=そのため飛び道具のラベルには行かなくなり 飛び道具が消滅する」といった感じで
一度に複数のアクションが行われている、といった状態を作りにくい傾向になってしまう


また、「どこに 飛び道具の位置やその攻撃の攻撃力等を入れたデータを入れるか」という事も問題になる
たとえば、プレイヤーと敵が「レーザー攻撃」を発動できるとして
このレーザー攻撃のデータを一つだけしか作らない、なんて構造にすると
プレイヤーがレーザー攻撃を発動中で、敵が同じレーザー攻撃を発動しようとした時に
(現在は レーザーのデータの中にはプレイヤーのデータが入っているので)「敵はレーザーを発動できない」か
「(レーザーのデータが上書きされ)プレイヤーのレーザーが消え、敵のレーザーで上書きされる」といった事態が起こってしまう

実際には、プログラミングをやっていれば 細かい問題にはいくらでも当たるし
慣れれば そういう問題が起こっても、矛盾やバグを起こすことなく解決できるようになるから
このゲームが小規模だった頃は あまり深く考えずに、比較的簡単な構造で作っていたけど
ちゃんとしたゲームを目指すと、そういう構造じゃいけなくなるので そういう処理を簡単に出来る構造に変えていく

305KB
続きを読む

名前: E-mail(省略可)
READ.CGI - 0ch+ BBS 0.7.3 20130527 &β2014221