C++でRPGゲームを作成する

■ このスレッドは過去ログ倉庫に格納されています
1じっち
垢版 |
04/11/23 07:14:50ID:CCsv+84e
少し前まではHSPで作ろうと思っていたのですが、HSPでRPGゲームを作るのは難しいらしいので、C++で作ろうと思います。
C++のプログラミングは初めてですので、みんなの力が必要です。
お願いします。
あと質問ですが、C++ってMMORPGつくれますか?
661名前は開発中のものです。
垢版 |
2006/02/26(日) 18:41:48ID:ZPA9hZNG
test
2006/03/01(水) 13:19:16ID:wbpYRebn
くだらね
今更個人でショボイ二次元RPG作って飯が食えるわけでもないし
2006/03/01(水) 17:05:48ID:cTHc5rUn
間違いなく662はくだらねー人間だって事は分かった
このスレと飯を食う事に何の関係があるんだ?
2006/03/01(水) 17:56:36ID:T7LigeWy
華麗に見切ってスルー。それが誇り高き武士の末裔である我等が使命。夢々忘れる事勿れ。
2006/03/01(水) 20:10:58ID:qSXqEEUp
>>1があまりに叩かれすぎて、正義の使者に見えて来るという錯覚。
2006/03/01(水) 21:20:44ID:qSXqEEUp
嗚呼スレ間違えた悪寒。
2006/03/02(木) 15:43:09ID:/MJGriJx
>>664
>高き武士の末裔

誰がだ誰がww
2006/03/05(日) 11:07:36ID:6YkaEnqD
(・∀・) ハイーキョ
2006/03/06(月) 09:02:48ID:6CYFfwHu
おにぃタンが、おにぃタンがきっとなんとかしてくれる・・
2006/03/07(火) 04:32:03ID:cLZjYS/r
すたれたな
2006/03/08(水) 22:46:15ID:S71q6Va9
おにぃタソの「ちょっと」は、どれぐらいなのでしょうか・・・。
2006/03/08(水) 23:08:48ID:oR9bkqy4
亀仙人級。
2006/03/09(木) 20:39:04ID:d4bY0DQQ
そろそろ新キャラが登場しそうな悪寒。
2006/03/09(木) 20:51:07ID:x6AO3fB7
来るか!?
2006/03/22(水) 01:26:22ID:Lx7sTZUU
鬼ってどうなった??
2006/03/22(水) 02:04:30ID:G9AZUAcV
>>675
>>384
2006/04/03(月) 00:57:05ID:tvaCUklG
C++で、リスト構造とクラスを使ってキュー構造が作れたぜぇー
いや、かろうじてメンバ関数やコンストラクタを使ってる程度なので
きちんとオブジェクト指向ができる人からしてみれば突っ込みどころ満載なコードなんだろうけど・・・

キューの機能やコードが一つにまとまっていて
今後はこのクラス一つで簡単にキューが作れるかと思うと意味もなくワクワクする。
オブジェクト指向が有り難がられる訳がちょっぴり判った。

あまりの感動にチラシの裏にしてしまった
ゴメン
2006/04/03(月) 02:00:49ID:LDN8zLo6
>>677
STLにあるだろ?
2006/04/03(月) 08:42:09ID:CKBeZKS6
>>678
STLは、出来の良いマニュアルがなかなか見つからないんだよ
2006/04/03(月) 09:11:29ID:T6kZ1H14
双方向リストは自作できるとちょっと感動するよね
2006/04/03(月) 09:40:48ID:g7abFtvJ
>>677
あるあるwww
2006/04/09(日) 21:24:14ID:Lt7EoIG5
>>677
そういうのを車輪の最発明というのだが
2006/04/09(日) 22:45:09ID:1V2X1UAY
682の前ではhello world!もおちおち作れやしない
2006/04/09(日) 22:49:53ID:3HyFIhhb
車輪の再発明が楽しいんじゃないの!
プロだったらそんな暇ないだろーけどさ
2006/04/09(日) 22:50:02ID:be1tglRI
春夫ワールド!にしておけば無問題。
2006/04/09(日) 22:51:14ID:MXsEBMtL
hello world!をわざわざ実装するなんて車輪の再発明の極みだろ。
http://www.gnu.org/software/hello/hello.html
2006/04/09(日) 22:57:24ID:ycPVA4Cd
むちゃくちゃ凝った Hallo World !! を作れば良いんじゃね?
それこそメガデモみたいなヤツを作れば、あるいは・・・
2006/04/09(日) 23:02:46ID:be1tglRI
車輪の再発明云々言って何もしないより、
車輪の再発明をしたほうが100倍マシ。
車輪の再発明の利点は基礎PG力を養えると同時に、
車輪の再発明という比較的少ないコストで、
次の段階に進める点だ。

 決して、いきなりターボ・ファン・ジェットエンジンを発明しようとしてはいけない。

ネタにマジレス格好良すぎ>>688
2006/04/10(月) 03:57:42ID:lfYd5Zi2
Hello World Online
2006/04/10(月) 09:53:19ID:AHBnGV60
Hello World .NET
2006/04/11(火) 13:41:43ID:PstvrHnB
極小規模の車輪の再発明ならしたほうが実装が楽な場合が多い。
OOPで全て再利用できるなんてのは妄想。鼻で笑っちゃうね。
2006/04/12(水) 06:54:43ID:9QUP8TDy
>>691
急にこんなさびれたスレでどうしたんだ。
なんか嫌な事でもあったのか。
2006/04/12(水) 15:22:40ID:f7IjJuzw
流れの読めない奴が来たか
2006/04/13(木) 00:52:17ID:rwJMefBv
CでSTLのlistとdequeを作った。
ちゃんとテンプレートになってて要素の型は何でもよい奴。
CでOOは楽しい。
2006/04/13(木) 08:55:19ID:dZeLRBkL
C++ではなくCで、って所が味噌だな
C++の方が実装は楽だから
2006/04/13(木) 22:40:54ID:FJcZQR8t
既存のものと同じものを作るのは無駄といえば無駄だが、
手を動かす無駄は身になる無駄だからなぁ。
2006/04/13(木) 22:43:39ID:9aE152aa
車輪発明しないで、いきなりグレートなモノを作れると思ってる奴なんているの?
2006/04/13(木) 23:39:35ID:Ouapx6Vq
>>696
>手を動かす無駄は身になる無駄だからなぁ。
それは無駄とは言わないのでは?
2006/04/14(金) 20:45:32ID:gD0XdipS
アヤちゃんですよアヤちゃん
7001/2
垢版 |
2006/04/29(土) 21:45:04ID:qFFRsKPk
class player
{
 private:
  char name[32];
 public:
  int inputName( char* );
  char* outputName();
  // 実装は省略
};

class gameInitialization
{
 public:
  char* setPlayerName();
};

char* gameInitialization::setPlayerName()
{
 char buff[32];
 printf( "名前を入力してください" );
 gets( buff );
 return &buff[0];
}

// ゲーム本体での処理
p_player->input( p_gameInitialization->setPlayerName );
7012/2
垢版 |
2006/04/29(土) 21:55:01ID:qFFRsKPk
C++の練習としてRPGを作ってみようと思っていまして
こんな感じのコードを書いてみました。

プレーヤークラスにはゲーム本編で色々処理を組み込むことになるだろうから、
一度しか使わない初期化処理はできるだけ外に追い出したいと思い
最低限、変数名の入出力をするメソッドだけを残しました。
そして、「名前を入力してください」の表示など一度しか行わない処理は
ゲーム初期化クラスを作ってそこに入れてみました。

自分としては、ポーカーの親のようなプレーヤーを超越した存在を想定して
ゲーム初期化クラスというのを作ってみたのですが、いざ書きあがってみると
本当にこのクラスが必要だったのだろうか、別に本当に親がいる訳じゃないのだから
main関数に直接
> printf( "名前を入力してください" );
> gets( buff );
なんかを転がしても良かったんじゃないかとも思えてきました。


要するにクラス化する方がよいのかどうかですが
どう思われますか?
2006/04/29(土) 22:11:48ID:BSsZtvjj
ゲーム製作のためのクラスか、
クラスのためのゲーム製作か、それが問題だ。
2006/04/30(日) 06:24:46ID:az6nWba+
>>701
個人的な意見になるけど
ゲーム全体を管理する「親クラス」と初期化クラスは別物だと思う。
親クラスはゲーム中常に実体を持つけど、初期化クラスは初期化中にしか
実体を持たないような印象がある。

ところで
> return &buff[0];
これはまずいのでは?buffは関数内でしか保持されない確保のされ方を
してるから戻り値では返せない。
704御津凪
垢版 |
2006/04/30(日) 10:23:49ID:r4UIi4mb
はじめまして。

個人的事情により、ネットにつながっている時間がほとんどと言っていいほど無いので、
ほとんど書き込めませんが、よろしくおねがい。

さて、
私が作った発展途上のRPG・SRPG総合制作ツールをうpしました。

http://gamdev.org/up/img/5482.zip

これを話のネタにしたり制作に使ったり参考にしたりしてください。
あと、特徴ですが、

・RPG・SRPG・ADV等制作可能。主にRPGの制作に特化している(と思う)。
・一つのソフトでスクリプトとマップエディタとプレビューが可能(になると思う)。
・特別必要なDLL無し。必要なライブラリは Boost のみ。

Boost は、ググるか、うpしたファイル内のReadMeの中にあるURLから手に入れられる。

では。
2006/04/30(日) 15:56:52ID:Rmcj9mo1
>>704
>現在、起動時ロゴ画面・メイン画面・新規作成画面しかありません。

これでいったい何を議論しろと?
2006/04/30(日) 16:00:04ID:4wrj94cG
>私が作った発展途上…
>…(と思う)。
>…(になると思う)。

お察しください。
2006/04/30(日) 16:13:30ID:gjG8Ha5v
開発状況報告スレの方がよくね?
708名前は開発中のものです。
垢版 |
2006/05/04(木) 21:07:51ID:4iqaj+kF
質問です。

Item クラス
┣ Kougekiクラス
┗ Kaihuku クラス
  ┣ Yakuso クラス
  ┗ Poshon クラス

こんな感じで、アイテムクラスを基底に、効能別、名前別のクラスを作り
ゲーム内では Item* 型ポインタを使ってアイテムを一括管理しようと一度計画しました。

しかし、実際に拾えるアイテム( Yakusoオブジェクト等 )をランダムに生成しようとすると
クラスの外に switch( rand()%2 ){ case 0 : item = .... のようにずらずら書くしかなくなってしまいました。
最初は、 Item クラス自体に、ランダムでアイテムの種類を決定するメソッド(というかコンストラクタ)を
持たせたかったのですが、よく考えてみると子クラスを触らせることができないので手詰まりしました。


クラスの数をもっと減らして、アイテム名や効果(回復量など)を引数で渡すことで
オブジェクトの種類を稼いだ方がいいのだろうかとか(今は1クラス1アイテムだから)、
多少トリッキーなコードを書いてでも Item クラスにランダム生成メソッドを持たせられないかとか
色々考えているのですが、
ランダムに発生するアイテムを管理するクラスについて、何か定番みたいなものはないでしょうか
2006/05/04(木) 21:19:36ID:5IsqMDd3
static Item Item::CreateItem(int id)
{
case 0:...
}
みたいにやれば?
2006/05/04(木) 21:43:38ID:MIihhrBb
アイテムを生成するクラスを使う。

その中で、switch〜caseの羅列になっても、外部からは
隠すことが出来るので、トリッキーなコードを書くより
ずっといい。
2006/05/05(金) 04:52:08ID:kC2BXK6h
case分の羅列でもいいけど、それよりはメソッドへのポインタでテーブルを作成しる。
2006/05/05(金) 09:52:19ID:/fNbso43
http://pc8.2ch.net/test/read.cgi/tech/1133286541/
次スレはここと合併すべきじゃない?
2006/05/05(金) 10:24:09ID:1M0+6Jiy
埋まったら合流で良し
2006/05/05(金) 12:18:33ID:yx9WHGs4
でも、あっちは板が違うしな。
さらに言えば、昔はあっちの方がこっちに行くように言われてたわけだし・・・。
2006/05/05(金) 21:43:00ID:LicKzfcD
>>711
ねぇねぇ、それってさ何か親クラスを作ってそのポインタに子クラスの参照先を入れて行くのと同じですか?
716名前は開発中のものです。
垢版 |
2006/05/27(土) 23:42:11ID:TAx3htqU
がんばれ俺!今日明日で戦闘を作るんだ!
ここが踏ん張りどころだ!完成するぞ!完成するぞ!
2006/05/28(日) 00:00:25ID:SbFom2eu
C++でっていうけど、ウインドウズで動作させようと思ったら
APIの勉強もいるんだよね?orz
718名前は開発中のものです。
垢版 |
2006/05/28(日) 00:40:31ID:lcSvizP1
>>716 がんばれ、超がんばれ、世界がおまえを待ってるぞ!
2006/05/29(月) 15:15:30ID:eI7Wuh/Q
>>717超いるよ
720名前は開発中のものです。
垢版 |
2006/05/29(月) 19:45:46ID:qsL/g3xF
さて、716の見苦しい言い訳を聞こうか
2006/05/29(月) 21:13:55ID:zEiBbzn5
二日っていうと五時間ずつやったとしても10時間だよね。
10時間で完成可能なことだったの?
2006/05/29(月) 21:51:20ID:mBWO4XJP
で、まずは>>720-721よ。
この板に何しに来たのか説明してもらおうか。
723716
垢版 |
2006/05/30(火) 14:31:56ID:kpb46nhc
(^^;
完成できなかったけど、だいぶ進んだ
摂のRPGはドラクエ3みたいな単純なシステムではなかったことが敗因
2006/05/30(火) 18:30:24ID:/JTGRSEu
単純・・・だとぉ!
2006/05/30(火) 18:35:27ID:A1fjl0vL
システムを単純化させるのがプログラマの腕
2006/05/30(火) 18:40:33ID:XHx1vsq2
やっぱ沢山RPGやったほうがいい?
FFとDQの典型しかした事無いけど
2006/05/30(火) 19:40:27ID:hZJKdy+m
>>726
どうせ最後はDQに集約されるんだから気にするな。
ただ、新しい(と思える)システムを作って『俺SUGEEE』ってやると、
後で絶対泣くことになる。ゲーム業界はすでに20年歩んでるんだからな。
2006/05/30(火) 19:44:19ID:XHx1vsq2
>>727
流石にもう出尽くしたのかな
あんまり新しいの作ろうとすると今度はRPGでなくなるかもね・・・
最初はDQみたいなの作るよ
2006/05/30(火) 20:06:53ID:hZJKdy+m
>>728
ああ、でもWizardryをやったことがないならやっておくのがいいよ。
和製RPGの原点だから。
2006/05/30(火) 20:18:52ID:PgwMBF7v
wizって洋ゲーじゃなかったっけ
ワードナは逆読みすると開発者の名前になるとか聞いたことあるんだが
2006/05/30(火) 20:20:15ID:hZJKdy+m
>>730
トレボーもワードナも開発者の名前をひっくり返したやつだな。
WizardryとUltimaはどちらも洋ゲーだけど、それを組み合わせたのがDQ
特に戦闘関係はWizardryから引っ張ってきてる。
732716
垢版 |
2006/05/30(火) 21:00:58ID:kpb46nhc
摂のはアクションRPGだった(^^;
グラフィックは8方向分用意(^^;
グラフィックだけで死にそう(^^;;
2006/05/30(火) 21:41:22ID:uSUZilj0
>>732
とりあえず、ドラクエ(の簡易版)から始めた方がよさそう。

あの系統のゲームは、マップ処理やイベントシステムなんかの基礎を
実際に作ってみるのに好都合で、プログラムの難易度も低い。
2006/05/30(火) 22:09:25ID:RATgowud
ちょっとまてw
作り始めるまで戦闘がアクションなのかDQ風なのか判別できなかったのか?www
2006/05/31(水) 18:37:35ID:kqnlPuDw
いやそれは、アクションもDQ並に単純にできると思ったいたんじゃまいか。
DQを単純といえるほどの腕があるのかは知らないが。
2006/05/31(水) 18:41:52ID:dXTIpZ6p
ARPG作ってますが
当たり判定を人型にするにはどうしたらいいですか?
2006/05/31(水) 19:13:27ID:fUZxD/GV
厳密にやりたいならキャラクタ同士のテクセルが重なっているかどうかを一ドットずつ調べる
大雑把にやりたいなら頭、胴体、足、手それぞれの当たり判定を矩形や円で作る
もっと大雑把にやるなら胴体だけ矩形で作ればいい
2006/05/31(水) 19:17:20ID:dXTIpZ6p
1ドットずつやろうとしたら泣きたくなるほど膨大になりそうでした・・・

>頭、胴体、足、手それぞれの当たり判定を矩形や円で作る
これ参考に組みます!
2006/05/31(水) 20:53:14ID:OyxnCHMf
まあ、厳密に当たり判定とる労力を他の調整に回した方が
最終的には面白いゲームができるからなぁ。

プレイヤーは見た目が不自然じゃなければ、そこまで
厳密な部分は見ない。見るのは解析マニアが弾幕シューターだ。
2006/05/31(水) 21:37:10ID:fvp1fd0u
アクションRPGは単純な紙芝居RPGとは違うパフォーマンス上の配慮が必要で大変ですね(^^;
冗長なことやってるとパフォーマンスガタ落ちで手抜きができません(^^;;
普通のRPGでは通っていたことが通らなくなりました(^^;;;
2006/05/31(水) 23:54:17ID:VkKcen7a
たぶん>>736のARPGは8頭身モナーみたいのが入り乱れるんだろうな・・・
2006/06/01(木) 01:26:31ID:1wKUdWEf
たぶん>>716は釣り師なんだろうなぁ
2006/06/17(土) 01:55:24ID:gghwP/lw
>>716
参考にドウゾ。ただコードの構造化が糞だから気をつけたほうがいい。
ttp://www.geocities.jp/amazonium011001/page1.htm
744716
垢版 |
2006/06/17(土) 12:45:56ID:A7FmLv2E
ありがとうございます・・・ってどれが参考になりますか?
forループをウェイトに使っているのには思わず吹いてしまいました(><)

アクションRPGできてきました(><)
PDAと互換性保つため自前DIB描画の拡縮やアルファブレンドなので激重です(><)
誰か下のやつ最適化してください(><)

途中で宣言なしに出現する変数は事前に計算されていて、意味は以下のようになっております。
unsigned char alpha・・・アルファ値。
float mag_x、 mag_y・・・X、Y軸の拡大幅
unsinged char* dest_buffer 、 src_buffer・・・転送先,転送元イメージのバッファ。
int dest_offset・・・転送先データのオフセット。
int src_offset・・転送元データのオフセット。
int max_x ,max_y ・・・ 書き込みする範囲の最大バイト数
int bufW、srcW・・・転送先、転送元画像の幅。

unsigned char t = 255-alpha ;
for(int i=0;i<max_w;i+=3)
{
for(int j = 0;j<max_y;j+=3)
{
base_dest = dest_offset + i + j * bufW;
base_src = src_offset + ((int)((i / 3) / mag_x) + (srcW * (int)((j/3) /mag_y )))*3 ;

dest_buffer[base_dest] = (( t * dest_buffer[base_dest] ) >> 8) + (( alpha * src_buffer[base_src] ) >> 8 );
dest_buffer[base_dest+1] = (( t *dest_buffer[base_dest+1] ) >> 8) + (( aplhal * src_buffer[base_src+1] ) >> 8 );
dest_buffer[base_dest+2] = (( t * dest_buffer[base_dest+2] ) >> 8) + (( alpha * src_buffer[base_src+2] ) >> 8 );
}
}

誤字脱字があるかもしれません(><)
745名前は開発中のものです。
垢版 |
2006/06/17(土) 13:11:36ID:MX8Yl6AK
>>716
ループの中心で割り算などは極力控えるべき
ブレゼンハム使おう。
というかなぜ自前?
2006/06/17(土) 13:12:23ID:MX8Yl6AK
PDAと互換性ってかいてあるな、すまん
2006/06/18(日) 00:38:44ID:kJEJ2x/f
ブレセンハムが応用できるなんて知りませんでした(><)
改良してみます(^^)
748名前は開発中のものです。
垢版 |
2006/06/18(日) 03:00:50ID:DrGgvxn8
>>744
それダウンロードしたの?俺も同じところで吹いたw
参考になりそうなのはvisiRPGとNew CUIRPGってやつだけだよ。
749名前は開発中のものです。
垢版 |
2006/06/18(日) 09:52:01ID:kWRvX99Z
おいおい、初心者をミスリードするな。
visiRPGとNew CUIRPGも参考にならないだろう。
反面教師ならまだしも、作者の良識を疑う。
750名前は開発中のものです。
垢版 |
2006/06/20(火) 05:44:49ID:yRy3miB7
鬼はどうなったん?
2006/06/20(火) 11:04:29ID:annU3c5h
ステフが捨てました。
2006/06/21(水) 17:03:09ID:b0spWjUO
>>749の作るゲームに期待
2006/06/21(水) 18:05:51ID:HFz2n3fa
http://pc8.2ch.net/test/read.cgi/tech/1133286541/793-794
754名前は開発中のものです。
垢版 |
2006/06/21(水) 18:07:40ID:HFz2n3fa
ヘッダに実装を書かない方法を知らないんジャマイカ
755名前は開発中のものです。
垢版 |
2006/06/22(木) 19:56:56ID:UpYDoT5s
俺たちでドラクエ作ろうぜ
http://game10.2ch.net/test/read.cgi/ff/1149874021/

スタッフ募集!
シナリオ班・ツクール班・音楽班・ドット絵班
2006/06/25(日) 17:33:37ID:cfrlOTij
ドラゴンクエストノスタルジア
とか創ったら略語がDQNにw
757名前は開発中のものです。
垢版 |
2006/08/01(火) 04:11:10ID:lqTlZ2D0
きっと鬼ぃは喉を餅に詰まらせて診断だ
2006/08/01(火) 16:04:04ID:dyzvPv2P
ですよねー
2006/08/04(金) 18:42:33ID:W6nuuaJ8
うんうん ^^
760名前は開発中のものです。
垢版 |
2006/10/14(土) 17:56:19ID:TyTVrLwQ
ワロタ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況