DXライブラリでアクションRPGを作る
■ このスレッドは過去ログ倉庫に格納されています
ゆっくり実況として編集されてるから、せっかくならニコ動にも投稿したら ちょっとはコメントも来るかもしれん >>47 そうですね。 でもニコ動のアカウント作ったら、ニコ生をずっと見てしまって ゲーム作れなくなるから難しいかも… #9 未来遺跡パンドラ【自作ゲーム/DXライブラリ/アクションRPG/レトロゲーム】 ●追加機能 雑魚キャラ追加(スケルトン、オーガ) ダンジョン追加 https://www.youtube.com/watch?v=6Q9wcvO9Ir4 こういうスレは結構あるけど 途中で頓挫する人多いんで >>1 にはぜひ頑張ってほしい あと良かったら教えてください 膨大になるであろうNPCたちの台詞って 外部ファイルで用意するの? >>22 で >Luaと言うスクリプト言語で管理 とあるけど、Lua使ったら 台詞DATAの外部ファイル用意しなくていいってわけじゃないと 思うんだけど、違います? >>53 function search() msg("こんにちは") msg("今日もいい天気ですね") keyWait() clearMessage() end 上記はLuaスクリプト(test.lua)の一部です。参考になりましたらどうぞ。 セリフは例のようにLuaファイルに全部べた書きしています。 テキストファイル等から読み込む方法は知らないのでやっていません。 『外部ファイル』の意味がザックリしてて、よく分からないかったので あのように答えました。 C言語からLuaがどのように呼び出されているか説明します。 function search()関数はプレイヤーがNPC等を調べた時にC言語側からLuaを呼び出す ようにしています。 msg("こんにちは") 次のmsg関数はC言語で定義されています。 ここでLuaからC言語を呼び出しています。 C言語側でメッセージを表示します。 メッセージが表示されたら次に keyWait() が実行されます。キー入力があるまで待機します。 キー入力があったら次の行の clearMessage() が実行されてメッセージを消去します。 基本的に C言語 ⇒ Lua ⇒ C言語 の順番で呼び出す事によりLuaとの連携が実現されます。この説明で分かりましたでしょうか? >>57 ありがとう、すごくわかりやすい。 そうか、備え付けのフォント打ち出す分には テキスト直打ちでいいのかー それはラクそう! >>58 わかってもらえて良かったです^^ 楽でいいですよ お疲れ様です! PG歴20年だそうですが、過去に同人ゲームを完成させたり、 イベント販売した経験がある? 結構売れたりした?? >>62 過去に完成させた同人ゲームは23本です 未完成を合わせると100本ぐらいです 大手サイトに登録したのが5本で、雑誌に載った事が2回あります その内の1本は雑誌の後ろの方のちょっと良い所に載せてもらいました イベントで販売した事はありません そろそろこのスレのルールを決めます。 ゲーム製作技術以外の書き込みを禁止します。 もしあった場合はスルーしますのであらかじめご了承ください。 >>64 俺もDXライブラリかじってるんですが アクションRPG作りたいです 広いマップの描画方法はどうしてますか? 一気に描画はしてないと思いますが、エリアごとに切り替え描画してるんですか? 制作技術の話ですよね? 教えてほしいです あと、今回のゲーム制作で参考にしてる参考書、 サイト等あります? あと、ゲーム製作技術以外の書き込みを禁止ってことは 応援レスや進行具合への感想レスもしちゃいけないってことですか?? #define CHIP_SIZE 16 int v = 0, h = 0; int map_dat[8][8] = { 0,0,0,0,0,0,0,0, 0,0,0,0,0,1,1,0, 0,0,1,0,0,0,0,0, 0,0,0,0,2,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,0, 0,0,0,0,0,0,0,0, }; for (int y = 0, vw = v, i = 0; i < 4; i++, vw++, y += CHIP_SIZE) { for (int x = 0, hw = h, j = 0; j < 4; j++, hw++, x += CHIP_SIZE) { int dat = map_dat[vw][hw]; Draw(x, y, dat); } } 0 : 草原 1 : 森 2 : 家 こんな感じでどうでしょうか? v,hの値を変化させるとマップがスクロールします。 >>67 …続き マップの広さは関係ありません。 エリアごとに切り替えて描画はしてませんよ。 今回参考にしている本やサイトは特にありませんが、何か分からない事があったら、その都度ネッ トで調べています。今まで参考にしたサイトは余りにも膨大過ぎて自分でも分かりません。 >>ゲーム製作技術以外の書き込みを禁止 これに関しては中途半端な状態にしておくと、変な書き込みも増えてしまうので 仕方がないです。 >>68 map、自分も同じようにしてます。 ただ、RPG並みのmapサイズで作ったことは無いんですよ 全フィールドを作ってるなら mapの配列の要素数、そうとうな数になってませんか? 例えば、こんな感じの桁数じゃないですか? map_dat[100000][100000] >>69 ストイックですね、すごいです >>70 ゲームの画面サイズ : 640 * 640 マップチップのサイズ : 32 * 32 640 / 32 = 20チップ 1画面、横の列が20チップになります。横に256画面あるとします 20チップ * 256画面 = 5120Byte 縦 * 横で、 5120B * 5120B = 26214400B 100万で割ると、 26214400B / 1000000 = 26.2MB Int型は4バイトなので、 26.2MB * 4B = 104.8MB レイヤ3つ分で、 104.8MB * 3レイヤ = 314.4MB 最終的にこうなります int map_dat[3][5120][5120]; サイズ : 314.4MB 今の環境ならメモリが 314MB は大丈夫だと思いますよ。それに256 * 256画面は相当大きいです。 そんな壮大なRPG作り切れますか? 3 * 5120 * 5120 = 約7千900万 100000 * 100000 = 100億 >>ストイックですね、すごいです どうも^^>>70 >>71 解説上手ですね、納得しました。 あと三次元配列、便利そうですね。 自分はMapのレイヤー分けは別の配列宣言して最終的に重ねて描画してましたが、 2Dゲームにおいてもそんな使い方があったとは勉強になりました、ありがとうございます。 >>72 参考になってよかったです ゲーム制作お互いに頑張りましょう^^ >>74 イベント配置エディタの動画見ました 解説が無いのでわからないんですが あのツールでできることはどんなものですか? 面白そうなので教えてください >>75 void IObject::Save(CBinaryFile& binaryFile){ //モデルID binaryFile.writeString(m_modelID); //スクリプトファイル名 binaryFile.writeString(m_scriptFileName); //向き binaryFile.writeString(m_strDir); //ランダム移動 binaryFile.writeChar(m_bRandomMove ? 1 : 0); //イメージ番号 binaryFile.writeShort(m_imageIdx); //座標 const int CHIP_SIZE = 16; binaryFile.writeShort(m_x / CHIP_SIZE); binaryFile.writeShort(m_y / CHIP_SIZE); //有効か? binaryFile.writeChar(m_bEnable ? 1 : 0); //固有ID binaryFile.writeString(m_uniqueID); //接触範囲拡張 binaryFile.writeShort((short)m_contactRangeExt.x); binaryFile.writeShort((short)m_contactRangeExt.y); } >>75 …続き 上記がイベント配置エディタのセーブの部分です。 内容はキャラクターのID(種類)、座標、向き、使用するスクリプトファイル名等がバイナリ形式で書き出されます。 非常に単純なファイルなので、ジャンルは問わずどんなゲームにも対応出来ると思います。 ゚ ・ 。: .゚:. 。* o・ :゚゚ 。゚ :∴゚ ・ 。: . ゚:. 。* o・:゚゚ 。 ゚:∴。: ゚。 ∴ 。o .゚ :. 。 o ・ :゚゚ ・ : ゚゚ 。゚ : ゚∴ ゚ ・ 。 : . *゚ o・ 。 ゚: .゚ ・ 。 *: o・ :゚゚ 。 / ゚∴.゚ :. 。 o・ :゚゚ 。゚: ゚∴ ゚: 。 :゚。 ゚ ・o゚ ・ 。: .゚:. 。* / o・: ゚゚ 。゚ :∴。: ゚。 ゚∵: 。o゚ ・ 。 。 o・ :゚゚ 。゚: ゚ / ∴゚ ・ 。: *∵ ゚∵ *。 :。 o゜゚ ∴ 。 o・ :゚゚ 。 ゚: ゚ / ∴゚ 。: . *゚:.。 ゚∵* : 。゚: ゚∴. ゚:. / 。 o゚ ・ o・。 ゚: .゚ ・ ・: ゚゚ 。゚: ・ 。:.゚: / .。 o・:゚゚ 。゚:゚ ∴ ゚ : ゚ ∵ ゚ ・ 。゚ ・ 。 : ☆ . ゚* ・ ゚。 :. 。 *o・: ゚ ゚ 。゚: ゚。 。゚:゚ *゚ ゚ ∵ ゚∵: o・:゚゚ 。 ゚:゚∴ 。o *゚ ・ 。: . ゚:.。 o・: ゚゚*: o・ 。゚:゚ ∴ ゚ ゚: ゚ ∵゚。゚∵o:。o゚ ・ o・。 ゚: .゚ ・ 。∴。: ゚。 。: .゚:.。 o ・:゚゚∴ 。o・: ゚゚ 。゚: ゚ ∴゚ ・ 。: . *゚: .。 o・:゚ 。 ゚: ゚。 ・ ゜ 。 . . ゜ . 。 ・ . ゜ \ ゜ . ゜ ・ 。 ゜ . \ ゜ . . 。 ・ 。 ☆ | . そして彼らは星になった . ・ 。 ゜ ゜・ / . 。 . 。 ゜ . . \ . ゜ ゜ \/゜ . . ゜ >>1 Unityを触ったみたいだけども、なぜそれでも DXライブラリの方でアクションゲームを作ろうと思ったのか 教えてほしい。 Unityの方がラクに作れると思っているんだけどそうでもないってこと? Unityの方がラクという根拠が分かりませんね。 一度Unityで作ってみると良いですよ。 それから判断するといいと思います。 敵がたくさんいてレスポンスが求められる場合は、unityでは厳しかったかな。作るのが楽なのは同意。 >>91 C++からUnityに移動しようとしたら わけわからんかったよ なんか組み立て方の構造そもそもが違う。 main関数で回すのが当たり前の脳だからとっつきにくかった Unityでガンドライブアーツのような多キャラ弾幕ゲーって無理なのか? >>92 一般向けの解説には載ってないがUnityでも main関数で回すようなコードを書いて動かせる >>93 その辺は開発中 あと1年くらいたったら簡単に作れるようになるかもね https://www.youtube.com/watch?v=CVkj4BduUr0 >>94 >Unityでもmain関数で回すようなコードを >書いて動かせる 頼む、アマギフ1万払うんで main関数で回した作成方法を解説してくれん? >>95 Unityは普通の使い方だと各オブジェクトで void Start()とvoid Update()が呼び出されて処理する事になってるが オブジェクトから他のオブジェクトを生成消滅や制御する事も可能だから 集中制御用オブジェクトを用意してそのUpdate()で キー入力とって各すべてのオブジェクトを制御するメインループを書く Unityの中のメインループから呼び出される集中制御用メインループを作る感じ smile game builderと言うツクールみたいなソフトの ゲーム部分はmain関数で回っているが>>96 の感じでUnityに移植されている >>96 あー、なんとなくわかったよ。 ちなみに、それを>>96 さんは やってみたことある? それとも推測? >>98 実装で大丈夫 1000個とかオブジェクトを作ってそのリストから制御できるよ 弾幕シューティングには向いてないけど特別なゲームでないなら十分に動く DXライブラリなら2Dシューティングで1万オブジェクトが動き回るとかできるけど Unityだと今はまだ重いからそれは工夫しないと実現できない ゚ , , 。 . + ゚ 。 。゚ . ゚。, ☆ * 。゚. o.゚ 。 . 。゚ , 。 . .。 o .. 。 ゚ ゚ , 。. o 。* 。 . o. 。 . .。 . 。 . 。 . .゚o 。 *. 。 .. ☆ . +. . .。 . 。 . . . . . 。 ゚。, ☆ ゚. + 。 ゚ ,。 . 。 , .。 . ゚。, ゚。゚+゚`, o。。.゚*。゚ 。.゚ 。 ☆+。。゚. ° 。 . , ゚ ゚. 。, .゚。 + ☆。,゚. o。 。+ 。゚., . ゚ , 。 。 . ゚. o * 。゚。゚.。゚。+゚ 。 。 ゚。 ゚ 。 ゚。 。 ゚。 ゚ 。 ゚` .゚ .゚. ゚. . ゚ . ゚ . , . . / . . 。 / ☆ . そして彼らは星になった ( ‘j’) /⌒ ,つ⌒ヽ) (___ ( __) "''"" "'゙''` '゙ ゙゚' ''' '' ''' ゚` ゙ ゚ ゙''`"''"" "'゙''` '゙ ゙゚' ''' あら、いつの間にか終わってんなw動画見るに大した完成度になって無いな >>64 の発言でこのスレから人がいなくなったようなもんだろw アホすぎる。まあ自己中さんはマイペースでやりたかったんだろうけど そのせいでてめえまでモチベが無くなってんじゃ本末転倒だな ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる