C++でRPGゲームを作成する
■ このスレッドは過去ログ倉庫に格納されています
少し前まではHSPで作ろうと思っていたのですが、HSPでRPGゲームを作るのは難しいらしいので、C++で作ろうと思います。
C++のプログラミングは初めてですので、みんなの力が必要です。
お願いします。
あと質問ですが、C++ってMMORPGつくれますか? たいていのMMORPGはC++で書いてあるんじゃね? 姉妹スレ ([Delphi] RPG作らねば [Delphi]の後継スレ)
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 2【Delphi】
http://pc5.2ch.net/test/read.cgi/gamedev/1097836469/ 冷静に考えれ、
RPG作るのにどのくらい手間がかかると思ってるんだ?
まず、キャリアに空白作る覚悟と
半年〜一年、生活費に困らないくらいの金を用意しとけよ
それで作った果てに何が得られるかを考えてみれ そもそもスレを立てるなら既存のスレのチェック、
そして関連リンクや自分の知っている限りのツールの紹介は書くべき。
最低限のことすら出来ず全て他人任せ。
>>1がいかに甘やかされて育ってきたかよく分かる。
はっきりいって無能、ゴミといったらゴミに失礼なレベル。 まず、>>1はRPGが何なのかを知らなければならない。 hspの方が作るのは簡単かと・・。
まぁ1さんは脳内理想がお高そうなのでhspじゃ不服かもしんないけど。
*INVENTORY
gosub *DROWMAP
redrow 1
color 0,0,0 :boxf 80,40,400,240
color 255,255,255 ;レベル・体力を表示
「なんで」HSPじゃダメで、
C++でなら「どうやって」問題が解決できるのかちょっと興味があるようなないような。
int main()
{
while(true) {
SAITAMA();
}
return 0;
} Windowsでゲームを作るのは今後はC#の方が無難なような…。 .NETフレームワークが最初から入っていれば、そうだろうねぇ
なんかいいサンプルないかな?CかC++の。HSPは知らん。 何をもって「いい」というかは知らんが、ここにドラクエタイプならある。
ttp://www.sm.rim.or.jp/~shishido/ なるほど、たった2000行でここまでできるものなのか・・。
今の俺にはまだ理解が難しそうだ・・。しかしいつか
ソースを読んでもっといいオープンソースでも作るよ。 漏れも他言語からの移民だけどここでがんばるよ
ところでグラフィックの表示って何かライブラリ使ったほうがいいのかな
おまいらはどうしてますか? ラッパーライブラリ使ったほうが簡単で早くてバグが少ない >19
ライブラリというか何を使うつもりなんだ?
まずWindowsの場合だとGDI、DirectX
DirectXならバージョンはいくつなのか
はたまたOpenGLなのか
C++Builderだったらなんかコンポーネントがあるんだっけ?
ライブラリならELとかDXみたいなラッパーライブラリも
あるけどAllegroとかSDLとかのマルチプラットフォームなライブラリを使うのもある
他のOSの場合は…略
C++という言語の枠組みの中には絵を表示するものはないので、何かしら使わないといけない
きっとRole PlayinG Game なんだろw レスありがとうございます。
つーわけで"ラッパーライブラリ"でググったりライブラリスレをチェックしたり
Allegroのインスコに失敗したりしてました。Win32SDKかDirectXSDKが無難ぽいですね。
悩んでるので決めるのはもうちょい先になりそう。
とにかく毎日コード書かないとダメだと思い文字RPGをつくりはじめました。
が、一番はじめで挫折_| ̄|○
AAがちゃんと表示されないんですがズレない方法ないですか?
コマンドプロンプトの設定みたけどMSPゴシック12ポイントがなかった……。
AAがちゃんと表示されないソース(必要最低限)
http://gamdev.org/up/img/2087.phps >26
ブラウザの文字表示は文字ごとに幅が変わるけど
DOS窓なんかは幅固定だから同じような表示は無理
テキストエディタでAAを見えるように編集したものをつかわないとダメポ
逆にブラウザだと連続した半角スペースは省略されるけど
DOS窓だと省略されない >>26
ガンガレ。超ガンガレ。
データの構造なんかについてもそのうち語ろうぜ。
>>18
実はかなりの部分は「ダイアログなどのGUI独自描画」に費やしているので、
C++にすれば(GUI描画機能をクラス化すれば)半分になるかも。仮想マシン
も趣味に走って必要以上に詰め込んであるし…。
ドラクエ(1)タイプのRPGの場合、処理自体はごく単純です。特にマップ
をスクロールさせなければ、ウインドウを出して絵を描けるようになれば、
すぐ作れるはず。
>>26
とりあえず、Win32のDIBSectionを使ってみると良いでしょう。
扱いやすく、機能的にもDirectX(旧DirectDrawやDirectGraphicsの
サーフェス)の描画機能と共通点が多いので、これでフレームバッファ
の処理やGDIの描画機能に慣れておくとゲームも創りやすくなります。
たくさんレスありがとうございます。
サンプルみつけてソース眺めながらグラフィックの勉強も平行してます。
今日はあんまり進まなかった。
マップの移動を実装中なんだけど
ID 地名 移動可能先のID
1 城 2,3
2 町 3
3 フィールド 1,2,4,5
4 次の町 3,5
5 ダンジョン 3,4,6
6 敵の城 5
こんな感じで、今いる場所に応じて移動可能な場所を制限したい。
状態遷移やタスクシステム、ポインタetc....色々探してみたけど
ひょっとして二次元配列で記憶してifでチェックしときゃよさそうだ。
難しく考えすぎてた_| ̄|○ SDLのインスコがおかしぃ・・・・
結論からいうと最適化(/O2)をやめて無効(/Od)にするとうまくいきました。
Debugでうまくいくからオプションの違いを1個ずつ探していきました。疲れた。
4つとも試してみた結果
ダメ
(/O2) (/Ox)
おk
(/O1) (/Od)
速度の最適化ができないとゲームにゃツラそう(´・ω・`)ショボーン
P.S. stdout.txtに「初期化に失敗しました」と出力されて起動できないんですよ
参考にしたサイト
初心者の初心者による初心者の為のSDL
ttp://tokyo.cool.ne.jp/sdl/ >34
BCCでSDL使ったら、全く問題なかったけどなぁ…
コンパイラに拠るんだろうか? SDLボチボチとやってます。
PNGを透過して表示するところまでできました。
うぷろだ落ちてるみたいですね。
>>35
新しいVC++に対応してないとかかなぁ
>>36
VC++2003です 導入さえしてしまえば
恐ろしく楽>SDL
初期化で悩んでいたのが嘘の様
日本語で解説してるサイトがあるから
英語分からなくてもなんとかなるし 今日はここまで
http://gamdev.org/up/img/2125.zip
PNGがデフォルトで透過されたりとなかなか便利なんですが
SDLには拡大縮小がないらしい
隠しAPI(?)でSDL_SoftStretchがあるそうですがうまく動いてくれませんでした。 >40
そんな感じでできることを広げていけばいいんでないかい 一応、SDLで拡大縮小回転とかやる外部ライブラリとして、SDL_gfxがあるよ。
それが嫌なら、OpenGLとかでもいい鴨。 マップ表示とタイマーを利用した歩行グラフィックです
SDL_AddTimerが便利でこれだけでもSDLの利用価値があったなと思うですよ
http://gamdev.org/up/img/2132.zip
拡大が必要だったマップチップを拡大してしまいました。ファイルサイズ倍増です。
次は文字です。
解説サイトのHelloSDL、英数字は表示できますがカタカナは無理っぽいです。
フォント画像にカタカナがあったのに使えなくて(´・ω・`)ショボーン
参考サイト
ttp://tokyo.cool.ne.jp/sdl/ >43
ImgFont.cppの29行目を
char* ptr = text;
から
unsigned char* ptr = (unsigned char*)text;
にすると半角カタカナ表示できるぞ カタカナ表示できました
http://gamdev.org/up/img/2144.zip
>>44
うまくいきました。ありがとうございます。
今日はなぜこれで上手くいくか考えていたのですが
文字コードが表示するフォントの座標に対応していて
unsignedにしないとマイナスになるから128より大きい
文字コードを表現できないってことだったんですね。
わかってみると単純だなぁ
gamdevのwikiにあるFF風RPGを作れというページを眺めていたのですが
そろそろマップの構造体を考えたりマップエディタを作る時期のようです。
プログラミングしたいだけで特に作りたいゲームがないのでこういう時にこまる_| ̄|○
参考サイト
http://gamdev.org/w/?%5B%5BFF%C9%F7RPG%A4%F2%BA%EE%A4%EC%5D%5D ここはDinkを省いてC++の話をするスレになりますた D ダイナミック
i インポテンツ
n ナショナル
k クリトリス おいらも参戦していいですか?
>>45の参考サイト眺めてたら面白そうだったんで
一応EL使い手だったんでLevel4を除きLevel7まで作ってみますた。 >>52
そんなこと言わないでくれ〜
そういやはっきり言うとマップスクロールなんかより
イベントプロシージャ作ってイベントメッセージ処理させるのの方が難しいよね
でもそうしないと会話させるたびにありえなくコードが増える罠。 イベント処理が関門だな
スクリプトエンジンとか作らないといけないからね
http://gamdev.org/up/img/2224.zip
いちおうメッセージの表示方法とか
いろいろガンガッたりしてみたんすけど
Sage4のスレみててわかったっす。
一人じゃ無理だorz
とりあえず、ソース完全配布ですけど
普通のelじゃコンパイルできないっす
リソースからwavやらmidやらbmpやら引き出すようにしたんで
LoadObjectFromRes関数とか自作しちゃったんで。
手伝ってくれる人ボシュ。 じっち逃げた?
俺も最近C++始めたから、スレが沈んだら一緒にマターリやろうよ >>57
RPGは最近はじめて作れるゲームじゃない、いい加減悟れ、そしてRPGツクール使え >>58
一朝一夕で作るなんて書いてないよ
過剰反応してるようだけど・・・何かあったのかい? スレ沈んできたんだからそろそろ真剣にはじめましょうよ。
とりあえずWinAPIだけで行くのかDirectX使うのかOpenGLとか使うのか
はたまたラッパーライブラリでも使うのか、はっきりさせましょうよ。
>>58
前半は合ってるが後半はどう考えても違うぞ。 俺はWinAPIで組んでみるつもり
WinAPIを使いこなせないうちにDirectXいくのはマズい気がするからね この際みんなで協力してみたいものですね。
私はWinAPIもC++も人並みには出来るつもりですが
DirectXは未知の領域です(さすがにBltFastぐらいは・・・)
しかしWinAPIだけでは最終的な完成度を高望みが出来ないのも事実です。
MFCerおよびC++以外erは論外という方針で。
そして何よりプログラムってのは思いついたことをどんどん加えて行くと
後で取り返しのつかないことになるのできちんと筋道を立てたほうが
よさげなきがします。 みんなで協力ってのは一つのを作るってこと?
それは無理な話だ
WinAPIじゃあ完成度を高望みできないっていうのはどんな点で?
音楽系についてはDirectXの方が楽なんだろうけど このスレはみんなでRPGを作るスレだったのか・・
まあ>>1がじっちな時点であれなんだが。
>>61が旗振り役やりたいんなら別に止めはしないが
ロクなことにならんのだけは自明。 >>65 >WinAPI
分からないのなら君はそこまでということさ。
音楽系こそmciで十分過ぎますが何か?
>>66
せやな。
RPGはチーム組んで開発したことはあったが
それ以来だったんで作りたくなってみただけさ。
ここは初心者にRPGが一朝じゃ出来ないことを教えるスレだったようだw
バイチャ(*^ー゚)/~~ ま、まってくれ!
じっちにそれを教えるまでは、君の役目はまだ終わっちゃいないんだっ!! >>67
作りたいならマトモな場所で募集するべき
悲惨な最期を遂げるのはこの板の人なら分かるだろ >>67
>分からないのなら君はそこまでということさ。
>音楽系こそmciで十分過ぎますが何か?
君もここまでの人なんだねw
mciじゃ、ゲームのBGMはつらいよ。
ファイル読み込みとループ時のオーバーヘッドがかかる。
せめて演奏スレッドでMIDI位操らないと。
>>70
DirectMusicを使ったことがあるなら
それの糞さを分かるはずなんだが。 >mciで十分過ぎますが何か?
と書いた数レス後に
>DirectMusicを使ったことがあるなら
>それの糞さを分かるはずなんだが。
数レスの間にこんな矛盾を作れるなんてステキ
まあ、>>65=70と勘違いしてるんだろうな おまえらに音楽とかぜいたくだ
DOS窓だけでやっとけ コンソールアプリでも音楽は使用できる。
よってい一行目と二行目の関連性が不明。 C++でRPGゲームを作成する == C++でロールプレイングゲームゲームを作成する
>ゲームゲーム >80
そこは日本語がすこし変だったりするけど、なかなかいいサイトだと思われ
まぁガソガレ 今日からRPGを作り始めることにした
とりあえずウィンドウ表示だけつくった
途中で飽きるかもしれないが
ttp://gamdev.hp.infoseek.co.jp/cgi-bin/up/No_0030zip.html API + C++でやってんのか。フレームワークを使わないその心意気よし。
でもゲームで使う程度ならわざわざウィンドウクラス作らんでもいい気がしないでもない。
まあOOP好きじゃないヤシの独り言だけど。 なかなか開発時間が取れない訳だが…
DIBSectionを作って、ウィンドウに赤い矩形を描いた
ttp://gamdev2.hp.infoseek.co.jp/cgi-bin/up/No_0003zip.html
>>92
批評ありがとうございます
ウィンドウ表示を使いまわそうかと思ってクラスにしてますです
>>93
へたれなので、のんびり作っていく予定っす 自分のC++の勉強にもなりそうっす。がんばてください。 クラスの説明が理解しやすいサイト
教えてください、人のオープンソース見ても全然わからなくて wisdomのC++は全部勉強したんですが、
クラスを使ってのゲームの作り方のようなのを解説しているサイトを
知りませんか? C++スレで言うのもなんだが、別にクラスありきじゃなくてもいいと思うぞ。 ■ このスレッドは過去ログ倉庫に格納されています