トップページ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
0002名前は開発中のものです。04/03/20 10:19ID:HjCApWI8
関連スレ:
初心者専用スレ「パックマン」風ゲーム作らない?
http://pc2.2ch.net/test/read.cgi/gamedev/1014326802/
【目標ない奴】おまいらに課題を与える。【集まれ】
http://pc2.2ch.net/test/read.cgi/gamedev/1026148930/
STGを最初からみんなで作るスレ
http://pc2.2ch.net/test/read.cgi/gamedev/1014709311/

関連ページ:
段階的学習!
http://gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D
0003名前は開発中のものです。04/03/20 10:19ID:HjCApWI8
課題:
level1 表示
地形(マス目)を作成

level2 移動(1) 基本
キャラクターを地形の上に表示させマス目通りに動かせるようにする

level3 移動(2) 移動範囲
キャラクターをクリックしたときにそのキャラの移動範囲を表示できるようにする

level4 移動(3) 移動ポイント
通行不能な地形と移動ポイントを2以上消費する地形を作りましょう

level5 敵(1) 表示
敵を表示しましょうまた、自キャラを移動させたときに攻撃可能範囲を表示しましょう

level6 敵(2) 攻撃
攻撃可能範囲内の敵をクリックしたときに敵を消滅させましょう

level7 ターン(1)
ターンを付けてみよう。

level8 ターン(2)
自機を移動させたら、自機の右下に"E"と表示して動けなくしましょう

level9 ターン(3)
自機を移動→自分のターン終了→敵が移動(動きは適当でよい)→敵のターン終了→自機の移動→・・・という流れになるようにしましょう。

level10 メニュー
移動後、もしくは移動前に移動、攻撃、待機と書かれたメニューを出す

続きもよろしく!
0004名前は開発中のものです。04/03/20 10:42ID:yrDWd4ci
>>1
おつかれ〜
0005前スレの成果(Delphi6)04/03/20 11:42ID:Yqi1HOCy
level1
http://gamdev.org/up/img/320.lzh
level2
http://gamdev.org/up/img/321.lzh
level3
http://gamdev.org/up/img/322.lzh
level4
http://gamdev.org/up/img/324.lzh
level5
http://gamdev.org/up/img/329.lzh
level6
http://gamdev.org/up/img/330.lzh
level7
http://gamdev.org/up/img/331.lzh
level8
http://gamdev.org/up/img/333.lzh
level9
http://gamdev.org/up/img/334.lzh
0006前スレの成果(DirectX9)04/03/20 11:43ID:Yqi1HOCy
※ソース入ってません
level1
ttp://gamdev.org/up/img/336.zip
0007名前は開発中のものです。04/03/20 17:42ID:Omw8vI1b
SLGあんまりやったことないから良くわかんないんだけど、
とりあえずLevel3に挑戦してみた。
http://gamdev.org/up/img/340.zip
0008名前は開発中のものです。04/03/20 19:12ID:yALPf9TR
使用言語は?
0009名前は開発中のものです。04/03/20 20:17ID:Rm0qEOqD
>>5はdelphiみたい
0010名前は開発中のものです。04/03/20 21:00ID:OecvxPVm
level2なんですが、
マウスの現在位置を取得する方法はわかるのですが、
マス目ごとに取得する方法がわかりません。(おかげでマス目ごとに移動できない・・・)
どうすればいいのでしょうか?

0011名前は開発中のものです。04/03/20 21:01ID:OecvxPVm
使用言語はVC++です
0012名前は開発中のものです。04/03/20 21:09ID:0rZvKGA5
>>8
>>7はC++ + SDL だと思う。自分はcは分かるが、
C++、SDLともに分からないけど、きれいに書かれている感じがします。
0013名前は開発中のものです。04/03/20 21:25ID:Kmo1OtpO
美しいスレ立て萌え。乙
0014名前は開発中のものです。04/03/20 22:24ID:D5EKok1O
>10
マスのドット数で割ったら縦横何マス目にマウスがいるかわかるんじゃない?
16ドットだったら、0〜15までは0マス目で16〜31なら1になる。
0015名前は開発中のものです。04/03/22 15:49ID:NPRtU4h0
生徒募集age
0016酒鬼薔薇04/03/22 16:28ID:02nufRa3
募集されますた
0017名前は開発中のものです。04/03/22 16:50ID:0WE8/VPz
吉里吉里2をダウンロードしたのですが、どのプログラムで
開いてよいかわかりません。だれか教えてください。

ダウンロードページ
http://kikyou.info/tvp/
0018名前は開発中のものです。04/03/22 17:00ID:02nufRa3
readme.txtに書いてある
krkr.eXe 吉里吉里本体
これじゃない?
0019名前は開発中のものです。04/03/22 17:17ID:vJlCIhDp
解凍できてないんじゃないの?
0020名前は開発中のものです。04/03/22 17:20ID:0WE8/VPz
えーとですね、templateの中のsystemの中にあるファイルの開き方が分からないんです
0021名前は開発中のものです。04/03/22 17:48ID:uwTuOZKu
>>20
スレ違いですよ。
吉里吉里のスレは他にあります。

というか、質問スレにも同じ子と書いてるよね?
同じ内容のレスを複数のスレに書くのは嫌われるのでやめましょう。
0022カレー元水 ◆Curry2wIOI 04/03/22 18:15ID:GSyaT/AH
遂に立ったんだね!SLG!
http://pc2.2ch.net/test/read.cgi/gamedev/1078089510/l50

Level1〜3、5の前半、7,9,10が出来ていると思います。

って、話題元見たら、ファイヤーエンブレム目指してるんですか。
FEプレイ経験が無いです・・・
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
>戦闘アニメを作れ
■ このスレッドは過去ログ倉庫に格納されています