トップページ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の所でひとマス毎にそのマスの周りを調べる。

で言っている、「周り」の半径がユニットの移動距離分あれば、
問題ない・・・のかな???
■ このスレッドは過去ログ倉庫に格納されています