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

初心者専用スレ「シミュレーションゲーム」を作らない?

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/03/20 10:18ID:HjCApWI8
ここはシミュレーションゲームをみんなで作るスレです。
各レベルの課題に沿って作ってみてあぷしてみましょう。

まとめ:
SLGを作らない?
http://gamdev.org/w/?%5B%5BSLG%A4%F2%BA%EE%A4%E9%A4%CA%A4%A4%A1%A9%5D%5D

あぷろだ:
http://gamdev.org/up/

話題元:
初心者のためのゲームプログラミング
http://pc2.2ch.net/test/read.cgi/gamedev/1023119134/852-

関連スレは>>2
各レベルの課題は>>3
00231004/03/22 20:58ID:l+XOFhlp
>>14
ついにできました。ご教授ありがとうございます。
やっぱりできたときが非常にうれしいですね。


前と同じくソースは見ないで・・・
てか処理落ちすると変なことが起こる・・・

level2
ttp://gamdev.org/up/img/352.zip
0024カレー元水 ◆Curry2wIOI 04/03/22 21:37ID:GSyaT/AH
実行出来ませんですた・・・_| ̄|○
0025名前は開発中のものです。04/03/22 22:10ID:Tm4N5myF
画面のプロパティを開いて
画面の色を16bitにしてください
002610704/03/22 22:19ID:J2+GSuhf
もう手放そうと思ってるんだけど、誰か何か意見をください
http://gamdev.org/up/img/217.zip
0027名前は開発中のものです。04/03/22 22:27ID:IkgfwbwO
viキーバインドはやめて・・・
マウスが使いたいね。
0028名前は開発中のものです。04/03/22 22:29ID:J2+GSuhf
>>27
このシステムだと、マウスでの操作って無理でないですか?
建物を作った場合、建物の裏にカーソルがもっていけないです。
0029名前は開発中のものです。04/03/22 22:32ID:IkgfwbwO
ポイントできないところがあるようなマップを作らない
とか
回転表示できるようにする
とかが一般的だと思うけど?

自分のシステムを中心に考えて、UIに制限をつけるのは
プログラマの悪い癖だと思う(オレも含めてw)。
0030名前は開発中のものです。04/03/22 22:46ID:rXt4ScIL
いきなり全部を求めるのはムリぽ
まあPCでやる以上マウス操作は必要になると思うが…
0031名前は開発中のものです。04/03/22 22:52ID:J2+GSuhf
>>29
回転ですか。3Dみたいにぐりぐりはできないけど それならなんとかなるなぁ。サンクス。

>>30
ががーん

いろいろアドバイスがもらえそうなのでマターリと参戦します
0032カレー元水 ◆Curry2wIOI 04/03/22 23:49ID:s8T/TaQ7
自分がやろうとしていることで恐縮ですが、
Level11は「マウスが乗っているマス目にカーソルを表示する」というのは、
どうですか?
0033名前は開発中のものです。04/03/23 00:00ID:JCV/36ob
>>32
それはLevel2か3の範疇だと思うのだが・・・
0034名前は開発中のものです。04/03/23 00:02ID:pelRe5jK
ところが擬似3Dだと途端に難易度が上がるんだな。
0035カレー元水 ◆Curry2wIOI 04/03/23 00:13ID:x6Bnkz57
2Dにしても、Level2,3の内容説明では、説明不足だと思います。
プログラム製作に慣れている人なら、当然のごとく実装するのかもしませんが、
スレは初心者用ですし、見たとこ、ガイシュツのマウス操作を想定したプログラムは
どれも、実装していませんし、どこかに明記すべきかと思います。
0036名前は開発中のものです。04/03/23 00:18ID:4auKbf0z
まぁ、その辺は作る人の意欲次第、じゃないかな?
Wikiのほうには補足として選択肢書いておくのもいいと思うけど。

どっちにしろ、平面、擬似3Dとも横向きビュー?、クォータービューとも明示してないし
0037名前は開発中のものです。04/03/23 00:19ID:H6gmUJFu
SLGタイプのゲームか……勉強目的で2年程前作りましたね。
ゲーム環境はFEを参考にして。
0038カレー元水 ◆Curry2wIOI 04/03/23 00:19ID:x6Bnkz57
たしかに
0039カレー元水 ◆Curry2wIOI 04/03/23 00:19ID:x6Bnkz57
>>36でした
0040名前は開発中のものです。04/03/23 02:06ID:BXdAOeDK
>>26
・ソース見たのだけど、コメントが文字化けしてる。ウィンじゃみれないのかな。
・キャラの移動で矢印ボタンが使いたい。後、マウスの方がよいという
 意見もあるけど、自分はキー入力のほうが好き。マルチ対応もありかな。
・移動範囲の表示が遅い。ソースが分からないから表示が遅いのか、計算が
 遅いのか分からないけど。もし再起的なツリー方法でやっているのなら、
 次のレスに書くやり方がお勧め。
・登場人物のキャスティングのアンバランスさが良い。なんのこっちゃ。

せっかくスレができたのだから、製作をやめずにがんばってください。
0041名前は開発中のものです。04/03/23 02:18ID:PMWtRlHb
>・ソース見たのだけど、コメントが文字化けしてる。ウィンじゃみれないのかな。
EUCでしょ。Unix系なんかでよく使われる文字コード。

・・・とか大雑把な説明をしてみる。
00424004/03/23 02:25ID:BXdAOeDK
>>40
>次のレスに書くやり方がお勧め。
1,マップサイズの配列を用意し、移動前の位置に0、その他に-1を入力。
2,マップの左上から右下へカウンタでマスを進めていく(マップ全体)。
3,2の所でひとマス毎にそのマスの周りを調べる。
4,3の所で0以上の値があったらその値+進入ロスの値を2のマスに入力する。
 3の所で0以上の値が複数あったなら小さい値の位置を選ぶ。
 3の所で0以上の値があっても、その値+進入ロスの値が既に入力されている
 値より大きいなら入力を行わない。共に移動歩数のかからない方を
 選びたいから。
5,2~4を移動力分繰り返す。

この方法だと移動力が低い時はツリー方法の方が早いが、
移動力が高い時はこの方法の方が断然速くなる。
ツリーは4(移動できる方向数),16,64と累乗で掛かる時間が増えていくけど、
この方法は400(マップのマス目の数),800,1200と掛け算で増えていくので。
00434004/03/23 02:31ID:BXdAOeDK
>>41
そうでしたか。サンクスです。
メモ帳でフォントを変えて見ようとしたら
CourierNew、FixedSysと跳ばされていてなかった。残念。
00444004/03/23 02:39ID:BXdAOeDK
>>42の修正
>この方法は400(マップのマス目の数),800,1200と掛け算で増えていくので。
400*4(方向の数),3200,4800。後、移動力より遠い位置は絶対行けないので
調べる範囲を絞れば400(マップのマス目の数)より小さくできる。
0045名前は開発中のものです。04/03/23 10:57ID:rwjTP/ky
最終的にFEクローンか、TOクローンが出来上がるの?
0046名前は開発中のものです。04/03/23 11:17ID:rwjTP/ky
>>40
その方法は、左上から、右下にかけて処理を行った後、
右下から左上にかけて、同じ処理を行う必要があると思うのは気のせいですか?
ユニットが(15,15)のマスにいるとして、
配列にデータを入れる処理が始るのは、事実上、処理が(15,14)を行っている時でしょう
ユニットの移動力が2だとして、
処理は(15,13)(14,14)(13,15)を飛ばすと思います。
0047名前は開発中のものです。04/03/23 11:35ID:nPpe4Kfe
>>42
ツリーの場合にも
>4,3の所で0以上の値があったらその値+進入ロスの値を2のマスに入力する。
> 3の所で0以上の値が複数あったなら小さい値の位置を選ぶ。
> 3の所で0以上の値があっても、その値+進入ロスの値が既に入力されている
> 値より大きいなら入力を行わない。共に移動歩数のかからない方を
> 選びたいから。
と同じような最適化をかけるので、
大体(最大移動距離)*(移動できる方向数)^2くらいで収まる。
00484604/03/23 11:43ID:rwjTP/ky
>>46の修正
>3,2の所でひとマス毎にそのマスの周りを調べる。

で言っている、「周り」の半径がユニットの移動距離分あれば、
問題ない・・・のかな???
00494004/03/23 12:30ID:BXdAOeDK
>>45
最終形態はSRPGツクールみたいなのとか。
でもまずは、人気のその2つか、スパロボみたいなのかな。
その前にどの言語で作るとかも、いろんな作品を見て決める必要がありそう。

>>46
大丈夫です。逆に右下の方向は進入ロスが全て同じなら、
1回調べるだけで端まで調べられてしまう。

>>47
調べた位置の読み飛ばし方と後何かだと思うのだけど。
分からんす。すごく興味があります。

>>48
周りとは周り1マスの事。0,0→0,1→0,2と調べていくが、
0,0なら周りの位置は1,0 0,-1 0,1 -1,0の4箇所の事。
もちろん-の時はマップをはみ出すので処理を飛ばす。
00504604/03/23 12:43ID:rwjTP/ky
>>40
>5,2~4を移動力分繰り返す。
すみません、これを見落としていました。
00514604/03/23 12:59ID:rwjTP/ky
ん?
>>40
左上からの処理の後、右下からの処理を行えば、移動力に関わらず
一往復で済むような気も・・・?
いあ、まだ検証したわけではないんですが。
0052名前は開発中のものです。04/03/23 13:01ID:nPpe4Kfe
>>47の説明
要するに、途中打ち切りのあるダイクストラ法なんだけど、
ttp://www-or.amp.i.kyoto-u.ac.jp/algo-eng/db/demo/Dijkstra/index.html
みたいな感じ。
00534004/03/23 13:09ID:BXdAOeDK
>>51
自分も考えていました。この方法は移動力分は確実に正しく調べられて、
+aで少ない回数で調べられるみたい。

>>52
サンクス。見てみます。*が付く(アストリア法だっけ?)とは違うのかな。
0054名前は開発中のものです。04/03/23 13:24ID:dAR4TZIv
レベル4に挑戦。
http://gamdev.org/up/img/359.lzh

移動先検索ルーチンはここのを拝借
ttp://www.campus.ne.jp/~ishigami/CREATION/MAKING/index.html

キャラクタ素材はここのを拝借
ttp://www.light.gr.jp/

肝心な部分は何もやってないなー
0055名前は開発中のものです。04/03/23 13:34ID:PfXAGYNf
>>53
A*サーチアルゴリズムは汎用探索アルゴリズムだね。
A*の
  各点からゴールまでの距離の予想 = 常に0
とすると、ダイクストラ法と同じになる。はず。

↓こんなのあるよ。
http://gamdev.org/w/?AStarAlgorithmTutorial
00564004/03/23 14:05ID:BXdAOeDK
>>54
シンプルですが、画面が見やすいです。移動範囲のみでなく、移動する時の
道順も計算できている。進入ロスは緑が1、灰色が2、水色が3、×の所が
移動できない。女の子によって移動力が違う。という感じかな。

>>55
サンクス。見てみます。
0057名前は開発中のものです。04/03/23 15:09ID:rwjTP/ky
>>54
今までので一番きれいな画面だと思いました。
0058名前は開発中のものです。04/03/23 22:21ID:rwjTP/ky
Level11:
Level10で作ったメニューの“攻撃”を押すと、戦闘表示用の画面が表示されること
というのは?
これも、ゲームの形態によって、不必要な場合があるかな・・・
0059名前は開発中のものです。04/03/23 22:29ID:FUTPyxoA
おれとしてはそろそろHPや攻撃力などを設定したほうがいいと思う。
そのつぎに敵のアルゴリズム
00602604/03/23 23:54ID:d7UORjCG
どもども。

>>40
>・キャラの移動で矢印ボタンが使いたい。後、マウスの方がよいという
>意見もあるけど、自分はキー入力のほうが好き。マルチ対応もありかな。
矢印での移動は次アップ時に実装します。
マウスでの移動はちとめんどいので、おまけ程度の優先度にしたいです。

>・移動範囲の表示が遅い。
多分再起しすぎなんだと思います。キャラクタを中心に四方を再帰的に探索してます。
速度がどんなものだか知りたかったので 移動値を10にしてます。ゲームでは7程度が最高だと思います。
それでも遅いですが…。

>次のレスに書くやり方がお勧め。
ありがとうございます。今の作りだとその方法を実装するのがしんどいので
ちょっとお待ちください。どう考えてもだめぽな作りです…。
しかしながら検索範囲を絞れば相当早くなりそう!

>せっかくスレができたのだから、製作をやめずにがんばってください。
意見をもらえる限り頑張りますです。
00612604/03/24 00:01ID:CE++aXBY
洩れた。

>>40
>・登場人物のキャスティングのアンバランスさが良い。なんのこっちゃ。
棒人間でもよかったんですけど、適当にこしらえました。
下地が完成したら、キャラクタとストーリーは公募するつもりです。完成したら。
0062名前は開発中のものです。04/03/24 01:08ID:O8SY00w2
やっぱりVC++じゃなきゃだめ?
0063名前は開発中のものです。04/03/24 01:11ID:gwUiqp0N
TOに使われていたプログラム「HERMIT」は、
地形と高さのデータを与えるだけで秒間19000ブロックのマップ描画か可能なんだとさ。
0064名前は開発中のものです。04/03/24 01:12ID:j3Ar40Ol
>>62
何を使うの?
00654004/03/24 10:02ID:QtkSU69u
>>58
その前にたぶん攻撃対象の選択が必要になる。
攻撃対象が複数居る場合があるから。
まだ、アイテムが無いからなんともいえないけど。

>>59
そうですね。キャラの移動とは独立した部分で作れるから。
まずはFE型だったら、キャラデータ、アイテムデータを与えて、
闘技場みたいにどちらかが倒れるまで攻撃→反撃→追撃を
繰り返すみたいなのかな。

>>60
>キャラクタを中心に四方を再帰的に探索してます。
なら、自分が言ったツリー法と同じような感じかな。
ツリー法とは以下みたいに進めていって必要移動力を
どんどん最小値に書き換えていくやり方。
下下下下下下下下下下→下下下下下下下下下左→
下下下下下下下下下右→下下下下下下下下下上→
下下下下下下下下左下→下下下下下下下下左左→

>移動値を10にしてます
10でたぶん1秒ぐらいだからそれくらいがちょうどいいです。
単純に考えると4→16→64→256→1024と15にすると20分ぐらいかかる。

>>62>>64
言語自体決まってないから。
単純にCを使うだけならBCC、GCC辺りでよいと思う。

>>63
画面に収まるのが多くて400ブロックぐらいだと思うからかなり速い。
0066名前は開発中のものです。04/03/24 18:12ID:50mDjwva
FEクローンを作ってるサイトか、スレってなかったっけ?
0067NPC04/03/24 19:11ID:wYfAwGDe
どうせならディアプリンセスのクロry
0068名前は開発中のものです。04/03/24 20:10ID:bD7nF4Wk
>>58
必要なゲームの形態:FE, 大戦略 etc・・・

必要なし        :TO, etc・・・

といったところか?
0069名前は開発中のものです。04/03/24 22:51ID:+umUyuZe
レベル11
戦闘アニメを作れ

でいいんじゃないの
戦闘アニメはどんなゲームであれつける必要があるから
別画面にするかどうかは任意にすればいい
マップ上での簡易戦闘まで不必要なゲームってないだろ
0070名前は開発中のものです。04/03/24 23:01ID:MdvMJchq
レベル10?に挑戦。(ただし敵が動かないし攻撃もしてこない・・・)
敵をどういう基準で動かせばいいのかいくら考えてもわかんないぞ。
http://gamdev.org/up/img/364.lzh

マウスのみの操作でつ。
0071名前は開発中のものです。04/03/24 23:13ID:9UGPxAlI
レベル11案をまとめてみたぞ。

>>32
>Level11は「マウスが乗っているマス目にカーソルを表示する」というのは、
>どうですか?
このあと、それはLv2か3レベルじゃね?と突っ込みアリ

>>58
>Level11:
>Level10で作ったメニューの“攻撃”を押すと、戦闘表示用の画面が表示されること
>というのは?

>>59
>おれとしてはそろそろHPや攻撃力などを設定したほうがいいと思う。
>そのつぎに敵のアルゴリズム

>>69
>レベル11
>戦闘アニメを作れ
0072名前は開発中のものです。04/03/24 23:23ID:9UGPxAlI
俺的には、

level11 複数キャラ制御
複数の敵、味方を出す。
動きはLv9のように自分ターン→敵ターンとする。

level12 敵移動
敵が味方のほうに接近し、隣接したら攻撃するようにする。
攻撃したら何らかの方法(メッセージボックスなど)で攻撃が行われたことを示す。

level13 ステータス(簡易)表示とキャラのやられ処理
ヒットポイントと攻撃力を設定し、キャラをクリックしたら表示する。
また、攻撃によりヒットポイントをへらし、倒せる(倒される)ようにする。

とかどうよ?
level14からは、戦闘画面編?
0073名前は開発中のものです。04/03/24 23:23ID:+umUyuZe
連投スマン
レベル10は移動より前のほうがいいのでは?
オブジェクトを指定して行動を選ぶのはオブジェクト指向の基本だけど
そういう作り方をするよう仕向けるようにしたほうがいい
7はいらない
8は2と合流
9は5と6の間に移動
10は1と2の間に移動
これでスッキリする
>>69と矛盾するが装飾的なものやるより先に
パラメータの管理や攻撃手段の多様化、多数のユニットの管理を
やらせたほうが後々を考えるとスムーズにいくだろう
達成感と難易度のバランスを取るために途中で絵的に派手なものを
入れるのは仕方ないけどな

>>70

数手先を読んで一番有利な手を選ぶわけだけど基本的に総当り
で評価関数が一番いい成績を返す手を捜す
評価関数はゲームによって変わるが敵を多く倒したりダメージを与えたり
ダメージを受けなかったりなどでマップやシナリオ上の都合でも変わってくる
総当りから無駄をいくら省けるかはプログラマの腕の見せ所
ミニマックス法やアルファ・ベータ法などを参考に
将棋よりパラメータが多く全駒を動かせるからややこしいよ

とりあえずCOM同士で固まってプレイヤーに近寄ってくるぐらいでいいんじゃないの
FE系の雑魚キャラならプレイヤーが数マス以内に近寄ってきたら移動して攻撃するってだけで用は足りる
大戦略系なら都市占領を目安にダラダラ移動

>>71
>>59案に一票
0074名前は開発中のものです。04/03/25 00:49ID:oFVyG02t
どこかでエンブレム目指すとか言ってたような気がする
HPはエンブレム基準?
0075名前は開発中のものです。04/03/25 01:21ID:uxZXQBMG
エンターブレインが作ってましたね>FEクローン
0076差分04/03/29 03:53ID:B7g1h+Qj
76 名前:70[sage] 投稿日:04/03/26 00:52 ID:DunKQiGB
>>70だが。
いま調べたところ重要な条件分岐がひとつ抜けてたので、ちゃんと歩数計算できてなかった。
スマソ。。。
これが修正分
http://gamdev.org/up/img/374.lzh


敵が近寄ってくるところまではなんとなくわかるけど、それ以上のことになると・・・もうおれには無理。
0077差分04/03/29 03:54ID:B7g1h+Qj
77 名前:40[sage] 投稿日:04/03/26 11:22 ID:g0P+3r/W
>>1
Levelは全部まとめてでなく、移動、射程、戦闘、その他などに分けて、
それぞれにLevelを設定したほうがいいかも。

>>73
SRPGで数手先を読むのは、詳しいのはFEだけだったから考えた事が無かった。
相手側のキャラの攻撃力を見て、彼に攻撃されるとピンチになるから、
相手側の他のキャラに倒せそうなのがいても、逃げておく、とかやるわけね。

>>76
例 (相手==プレイヤー 仲間==敵 敵からの始点で見ている)
【射程内に使用対象がいない】
・一番近くの相手、仲間によっていく
・一番強い(弱い)相手、仲間によっていく
【射程内に使用対象がいる】
・自分より弱い(戦うと自分が有利な)相手を攻撃する
・ピンチな仲間を回復する

キャラの戦闘力がまだ決まってない以上、
「一番近くの相手、仲間によっていく」以外できない。
そのやり方が>>70さんが分かっているやり方というのと同じかな?
唯一移動力が決まっているので、射程内に相手がいる時は
移動力の一番高い相手を攻撃、いない時は近くの相手によっていくとかがいいかな。
0078差分04/03/29 03:55ID:B7g1h+Qj
78 名前:40[sage] 投稿日:04/03/26 11:46 ID:g0P+3r/W
追加
>>76
相手の近くへのよって行き方は、移動する時に移動範囲を表示する所まで
できているという事は、ある位置に移動するために最低いくつの移動力が必要か
調べるのもできていると思うから、そのやり方を使い、調べる範囲を広げて調べる。

平平平平 → A___ → 3212
平森平平 → __自_ → 3201
平平壁平 → B__C → 43×2

例だが、自が自分(敵自身)で移動力が1、アルファベットが相手であるなら、
2の移動力で行く事ができるCに向かっていく。
0079差分04/03/29 04:09ID:B7g1h+Qj
79 名前:名前は開発中のものです。[age] 投稿日:04/03/26 11:54 ID:fe9Yolb/
従来のレベル分けは統廃合すると混乱しそうなのでいじらない方がいいと思う。
(何か変って言いたいのは分かるけど。)

>Levelは全部まとめてでなく、移動、射程、戦闘、その他などに分けて、
ということで、レベル11以降は分岐すると言うのはどうだろうか?

・ 戦闘画面編
 >>71のを詳細化
・ 戦闘フィールド編(移動、射程やフィールド表示)
 とりあえず>>72のやつでいいのかな?
・ AI編 (敵アルゴリズム)
・ ステータス画面編
・その他(シナリオ進行とかキャラアニメとか?)
0080差分04/03/29 04:19ID:B7g1h+Qj
80 名前:40[sage] 投稿日:04/03/26 13:29 ID:g0P+3r/W
>>76
追加
どの敵を攻撃するかは、移動できる位置を順番に調べていき、
移動できるマス毎に攻撃できる位置を調べていく。
今回は全キャラ共通で射程1の武器一つなので、
調べているマス(移動先)の周り1マスを調べればよい。
使用対象が居たなら、そのキャラの番号と移動力をチェックしておく。
全部調べたら、最大の移動力だったキャラを攻撃する。

>>79
例えばLV8までを作らなくてもLV9を作れるとしたら、
その場合はそのLV9のを別のLV1にした方がいいかなと。
だけど、おっしゃるようにごっちゃになる可能性があるから、
従来のは分けない、11以降は分ける、両方同意しました。
0081差分04/03/29 04:21ID:B7g1h+Qj
81 名前:名前は開発中のものです。[sage] 投稿日:04/03/26 16:56 ID:QRkdNiyU
移動部分をつくる課題(Lv.1〜
戦闘部分をつくる課題(Lv.1〜
んで、途中で合体ってどうよ。
0082名前は開発中のものです。04/03/29 15:40ID:2wnPpGZ7
乙ー
0083名前は開発中のものです。04/03/30 08:10ID:x13guaQK
level11
http://gamdev.org/up/img/396.lzh
0084名前は開発中のものです。04/03/30 18:41ID:hNYVLTtz
age
0085名前は開発中のものです。04/03/31 01:44ID:hvultEH1
>>83
LV11までしっかりできている。
あえていうと、移動する時に一変に移動先に移動してしまうので、
1歩ずつウェイトを置きながら移動した方がいいと思う。
0086名前は開発中のものです。04/03/31 02:15ID:hvultEH1
■LV13■
ひとまずは、HP、移動力、射程、攻撃力、かな。
移動力、射程は既に実装されている。

いろんな種類のキャラを用意して個性を出すと面白い。
アーマーナイトならHPは高いが移動力は低い、
アーチャーなら射程は長いがHPが低い、など。

■LV14■
攻撃しているのを、別ウインドウでアニメーションを表示したり、
オンマップで手を動かしたり、弾を飛ばしたりして表示するのは大変だから、
簡単なサウンドを鳴らすだけでも十分だと思う。
LV13の部分のキャラごとの違いを正しく表現されていればよい。

■LV15■
アーマーナイト
HP 17/30
移動 4
射程 1
攻撃 10

こんな感じで能力の一覧を簡単に表示できればよい。
0087名前は開発中のものです。04/03/31 07:32ID:7K8diIhv
level12
http://gamdev.org/up/img/398.lzh

>>85
どもです
levelのほうで特に指定がない限りオプションで全部OFFにした
状態のものを想像して作っています
たぶん、作っている人に合わせてlevelのほうが変わっていくと思うので大丈夫でしょうが
一応、グラフィックの指示があるlevelもあるのでどこまで作っていいのかなと迷います
どういう経路で移動するのが美しいのかも迷うし
索敵やダメージ床、イベントの問題もあってまだ着手していません
FEはそういうの無いのでしたっけ
0088名前は開発中のものです。04/03/31 13:38ID:hvultEH1
>>87
>どういう経路で移動するのが美しいのか
>索敵やダメージ床、イベントの問題もあって
なるほど、考えていなかった。ここはかなり難しくなる所かも。
とくに何もない場合は左左左上上上か上上上左左左と検索方法に
合わせてやればいいと思っていたけど。

>FEはそういうの無いのでしたっけ
ある位置を通過する事で発生するイベントは無かったと思う。
待機する事でならあるけど、それはその部分で問題にはならない。

ただ、ダメージ床は封印、烈火であったと思う。
ダメージ床を通らないといけない場所は、どうしているのだろう。
移動可能位置の色を変えたりしたりしているのかな。

>level12の作品
キャラが画面いっぱいにいて動くスペースがない。
どこかデータが違っていたのかな。20、30体ぐらいでいいと思う。
008910704/03/31 19:03ID:J7xQt3Sm
基本編 Level4 と思ったけど通行不能な地形を作るのを忘れた...
C + SDL
http://gamdev.org/up/img/399.zip
0090名前は開発中のものです。04/03/31 19:28ID:269irEEC
敵の思考ルーチンで、質問があります。
移動可能範囲内に攻撃対象があるか検索して、その中でHPが少ない奴や近い奴を
選んで対象の隣に移動して攻撃するようなプログラムを組んでるんだけど、
移動範囲内に攻撃の対象がいない場合どうすればいいんですか。
今のところ、移動可能範囲内に敵が見つかるまで範囲を広げていく方法で
敵の位置は分かったんですけど、移動先を決める方法が分かりません。
0091名前は開発中のものです。04/03/31 20:09ID:4Ju389xz
>>90
自分だったらどうやって動かす?
相手の手を読んで次の移動で隣接できる位置に動かす?
それとも一直線に突っ込んでいく?
地形効果が得られる場所にとりあえず置いておく?

とりあえず自分と同じ考えをするルーチンを組んでみて、それを改良したほうがいいかも。
なぜそこを選ぶのか、という点を分解していけばルーチン作れるはず。
00929004/03/31 20:21ID:269irEEC
>>91
攻撃対象に一番近い位置に移動させたいんだが、
どこが攻撃対象に一番近い位置なのかを判別するプログラムが分からない。
0093名前は開発中のものです。04/03/31 20:50ID:hvultEH1
なかなか書き込めない。連書きになっていたらすまそ。

>>89
まず、画面スクロールの部分が直ってますね。

質問なんですが、進入ロスの部分が分からない。
草地、平地、荒地の地形があるみたいだけど、
地形の種類ではなくて、高さの方で行っているのかな。
0094名前は開発中のものです。04/03/31 20:55ID:4Ju389xz
>>92
移動した後の場所からさらに移動して、目的地に到達する地点をピックアップすればOK。
2回移動処理してその消費ポイントの総計が少ない場所だな。
00959004/03/31 21:00ID:269irEEC
>>94
なるほど!ありがとうございました。
0096名前は開発中のものです。04/03/31 21:00ID:hvultEH1
>>90
平平平平平 01234 → 敵____ → _____
森平平平平 22345 → _____ → ____b
山森平山平 64486 → _____ → _____
森平平森平 75577 → ___C_ → _ac__
山平平平平 106788 → A___B → _____

ずれるのでメモ帳などで見てください。

敵が移動する敵キャラ、移動力は5。
アルファベットの大文字が味方キャラ、小文字は移動する位置。

それぞれのキャラの位置に移動するための最短の道を探し、
その道を移動力分フルに使って進む。

いちばん簡単なやり方は、距離が一番近い味方によっていくなら、
必要移動力が7の所に居るCによっていくためにcに移動する。
同じような感じで、一番弱い味方によっていくなら、
よって行くキャラの小文字の部分に移動すればよい。
00979604/03/31 21:05ID:hvultEH1
>>90>>96
すいまそん。Cには射程1でも攻撃できてしまう(^^;。
移動力を4にして考えてください。
その場合は以下の位置に移動します。

____b
_____
_ac__
_____
_____
009810704/03/31 21:11ID:J7xQt3Sm
今度こそ Level4 です。C+SDL
http://gamdev.org/up/img/401.zip

>>89
絵がどうしようもなくてスイマセン。
平地、草地、砂地、水(追加) です。移動抵抗値はそれぞれ
平地:1
草地:1
砂地:3 (さきほどのは2でした)
水: 20
です。水タイルがガリガリ君ソーダ味みたいになってしまいました。
009910704/03/31 21:12ID:J7xQt3Sm
間違えた。at >>98,
×>>89
>>93
ちなみに高さではまだ制限はかけていません。
0100名前は開発中のものです。04/03/31 21:48ID:hvultEH1
>>98
サンクス。分かりました。
010110704/04/02 00:32ID:koF3jQIY
SDL_kanji を使って文字出し。動的リンクに拘ったら結構疲れた...
C + SDL D9_ver0_21
http://gamdev.org/up/img/402.zip

# SDL で日本語って鬼門のような気が
010210704/04/02 00:34ID:koF3jQIY
書き忘れ。
DLLs/下の DLL を d9.exe があるところにコピーして実行してください。
d9.exe はパスが変わると動かないので注意してくださいませ。
0103名前は開発中のものです。04/04/02 09:33ID:NTd6JQAo
>>101
SDLで日本語を使うのは大変なのか。知らなかった。
CのウィンアプリならTextOutで一発。
どのマシンでも動くようにできているため、実装するのが大変なのかな。

画面からはみ出た部分の残像の消去が行われているが、
色が微妙に違っていて、その色が残ってしまう。
後、端の段差の部分がスクロールしたとき、
同じように似た違う色が残っている。
0104名前は開発中のものです。04/04/02 13:23ID:CX7v2wvW
level13
http://gamdev.org/up/img/404.lzh
メンバ変数にhpなどを加えただけ

level14
攻撃力8、HP15に設定してみました
敵を2回殴ったら死にます
ついでに出しすぎてたユニットを減らしました
0105名前は開発中のものです。04/04/02 13:23ID:CX7v2wvW
level14を貼り忘れてました
http://gamdev.org/up/img/405.lzh
それにしても404.lzhってまぎらわしい
0106名前は開発中のものです。04/04/02 14:04ID:CX7v2wvW
level15
http://gamdev.org/up/img/406.lzh
ユニット上で右クリックするとステータス表示
0107名前は開発中のものです。04/04/02 18:39ID:NTd6JQAo
>>104-106
LV15までしっかり出来ていますね。

更新したらいいと思う所は、移動するユニットを押した後の
キャンセルボタンが無いから欲しい。
マウスはボタンが二つしかないから大変だけど。

後は、職業がもう少し多く欲しい。
職業ごとに能力値を決めて個性を出す。
ランダムで決める場合も高低の傾向を残るようにして。

その関連でもあるけど、LV16の課題は、職業によって移動コスト
(進入ロス)の値を変化させるが良さそう。
人は戦闘力は低いが、どの地形もそれなりにスムーズに進める、
戦車は戦闘力は高いが、地形が悪い所は移動コストが高い、
飛行機は戦闘力抜群で、どの地形も移動コストを1で進める、など。
0108名前は開発中のものです。04/04/02 20:13ID:Dr8j7PoM
飛行機最強?
0109名前は開発中のものです。04/04/02 22:26ID:NSXyaUx+
基本的には最強。そのかわり燃料とかのペナルティがあるもんだな。
0110名前は開発中のものです。04/04/02 23:02ID:NSXyaUx+
あと、ユニットの一連の操作は、状態遷移図を書いて考えるべきだと思うんだが、どうよ?
0111名前は開発中のものです。04/04/03 05:56ID:ruJl5s2a
戦闘画面編level01
http://gamdev.org/up/img/407.lzh
0112名前は開発中のものです。04/04/03 06:07ID:ruJl5s2a
戦闘画面編level02
http://gamdev.org/up/img/408.lzh
0113名前は開発中のものです。04/04/03 06:30ID:ruJl5s2a
戦闘画面編level03
http://gamdev.org/up/img/409.lzh
0114名前は開発中のものです。04/04/03 09:17ID:i6croG5F
>>111-113
お疲れ様です。
LV1、LV2はしっかりできていますが、LV3が少し違う感じがします。
環境によって動作が違うかもしれないし、うまく説明できませんが。

もし環境がwinなら、以下のサイトの「C言語なサンプル」の所にある
「戦え」というのを参考にしてはいかがでしょう。
http://hp.vector.co.jp/authors/VA016117/index.html
0115名前は開発中のものです。04/04/03 10:07ID:ruJl5s2a
>>114
戦闘画面編level03a
http://gamdev.org/up/img/410.lzh

こんな感じですか?
011611404/04/03 10:49ID:i6croG5F
>>115
速い!ばっちりです。
後は、細かい所だけど、HPが減った分を更新表示し、
もし倒したならキャラを消すといいと思う。
0117名前は開発中のものです。04/04/03 11:32ID:0c9Pl1UA
キャラちゃんと消えてるよ?
0118名前は開発中のものです。04/04/03 11:34ID:0c9Pl1UA
自身に攻撃しても敵の表示は赤いのね
011911404/04/03 12:33ID:i6croG5F
>>117
いや、戦闘画面の中の敵です。
ooダメージと出た後、HPを減らし表示を更新。
HPが0になっていたら敵を消す。
0120名前は開発中のものです。04/04/03 12:37ID:wNmja9ez
攻撃範囲の外にいる敵に攻撃できるのは仕様?
0121名前は開発中のものです。04/04/03 13:11ID:ruJl5s2a
戦闘画面編level03b
http://gamdev.org/up/img/411.lzh

ご指摘いただいた箇所の修正です
ありがとうございます
012211404/04/03 16:30ID:i6croG5F
>>121
ご苦労様。しっかり出来ています。
0123名前は開発中のものです。04/04/03 17:15ID:ME7YITW6
>>121さん
自分で自分を攻撃できるのは仕様ですか?
■ このスレッドは過去ログ倉庫に格納されています