X



C++でRPGゲームを作成する
■ このスレッドは過去ログ倉庫に格納されています
0001じっち
垢版 |
04/11/23 07:14:50ID:CCsv+84e
少し前まではHSPで作ろうと思っていたのですが、HSPでRPGゲームを作るのは難しいらしいので、C++で作ろうと思います。
C++のプログラミングは初めてですので、みんなの力が必要です。
お願いします。
あと質問ですが、C++ってMMORPGつくれますか?
0656名前は開発中のものです。
垢版 |
2006/02/25(土) 12:12:26ID:F6qtQ50M
>>654
便乗して質問だけど、アルファ付のA4R4B4G4のテクスチャを
作ろうと思ったら、どうやって作るか知らない?
フルカラーPNGから変換すると劣化して酷いことになってしまう。
0657新妻好み ◆IQwhCnTrnE
垢版 |
2006/02/25(土) 12:45:58ID:IMwKJpRS
てめぇら移動だ。

RPGを作ろうぜ!
http://pc8.2ch.net/test/read.cgi/gamedev/1140839113/


    |                    \
    |  ('A`)           ギシギシ
   / ̄ノ( ヘヘ ̄ ̄        アンアン/
0659名前は開発中のものです。
垢版 |
2006/02/26(日) 11:15:51ID:NeCglQbO
>>658
ありがとう。
でもツールで減色→別ツールでDDSに変換という手順にすると、
減色時にアルファが失われてしまう。
一気にアルファ付フルカラーPNGから、16bitDDSに変換してくれる
ツールがないかなぁ。
0660名前は開発中のものです。
垢版 |
2006/02/26(日) 11:38:43ID:tncj1ZkL
>>659
別のピクセルフォーマットにはできないのか?

減色時には、アルファと RGB を別々に減色しろ。
で、アルファは赤画像にして、DDS 変換するときに合成しろ。
0661名前は開発中のものです。
垢版 |
2006/02/26(日) 18:41:48ID:ZPA9hZNG
test
0663名前は開発中のものです。
垢版 |
2006/03/01(水) 17:05:48ID:cTHc5rUn
間違いなく662はくだらねー人間だって事は分かった
このスレと飯を食う事に何の関係があるんだ?
0664名前は開発中のものです。
垢版 |
2006/03/01(水) 17:56:36ID:T7LigeWy
華麗に見切ってスルー。それが誇り高き武士の末裔である我等が使命。夢々忘れる事勿れ。
0677名前は開発中のものです。
垢版 |
2006/04/03(月) 00:57:05ID:tvaCUklG
C++で、リスト構造とクラスを使ってキュー構造が作れたぜぇー
いや、かろうじてメンバ関数やコンストラクタを使ってる程度なので
きちんとオブジェクト指向ができる人からしてみれば突っ込みどころ満載なコードなんだろうけど・・・

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

あまりの感動にチラシの裏にしてしまった
ゴメン
0687名前は開発中のものです。
垢版 |
2006/04/09(日) 22:57:24ID:ycPVA4Cd
むちゃくちゃ凝った Hallo World !! を作れば良いんじゃね?
それこそメガデモみたいなヤツを作れば、あるいは・・・
0688名前は開発中のものです。
垢版 |
2006/04/09(日) 23:02:46ID:be1tglRI
車輪の再発明云々言って何もしないより、
車輪の再発明をしたほうが100倍マシ。
車輪の再発明の利点は基礎PG力を養えると同時に、
車輪の再発明という比較的少ないコストで、
次の段階に進める点だ。

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

ネタにマジレス格好良すぎ>>688
0691名前は開発中のものです。
垢版 |
2006/04/11(火) 13:41:43ID:PstvrHnB
極小規模の車輪の再発明ならしたほうが実装が楽な場合が多い。
OOPで全て再利用できるなんてのは妄想。鼻で笑っちゃうね。
0694名前は開発中のものです。
垢版 |
2006/04/13(木) 00:52:17ID:rwJMefBv
CでSTLのlistとdequeを作った。
ちゃんとテンプレートになってて要素の型は何でもよい奴。
CでOOは楽しい。
0696名前は開発中のものです。
垢版 |
2006/04/13(木) 22:40:54ID:FJcZQR8t
既存のものと同じものを作るのは無駄といえば無駄だが、
手を動かす無駄は身になる無駄だからなぁ。
07001/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 );
07012/2
垢版 |
2006/04/29(土) 21:55:01ID:qFFRsKPk
C++の練習としてRPGを作ってみようと思っていまして
こんな感じのコードを書いてみました。

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

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


要するにクラス化する方がよいのかどうかですが
どう思われますか?
0703名前は開発中のものです。
垢版 |
2006/04/30(日) 06:24:46ID:az6nWba+
>>701
個人的な意見になるけど
ゲーム全体を管理する「親クラス」と初期化クラスは別物だと思う。
親クラスはゲーム中常に実体を持つけど、初期化クラスは初期化中にしか
実体を持たないような印象がある。

ところで
> return &buff[0];
これはまずいのでは?buffは関数内でしか保持されない確保のされ方を
してるから戻り値では返せない。
0704御津凪
垢版 |
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から手に入れられる。

では。
0705名前は開発中のものです。
垢版 |
2006/04/30(日) 15:56:52ID:Rmcj9mo1
>>704
>現在、起動時ロゴ画面・メイン画面・新規作成画面しかありません。

これでいったい何を議論しろと?
0708名前は開発中のものです。
垢版 |
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 クラスにランダム生成メソッドを持たせられないかとか
色々考えているのですが、
ランダムに発生するアイテムを管理するクラスについて、何か定番みたいなものはないでしょうか
0710名前は開発中のものです。
垢版 |
2006/05/04(木) 21:43:38ID:MIihhrBb
アイテムを生成するクラスを使う。

その中で、switch〜caseの羅列になっても、外部からは
隠すことが出来るので、トリッキーなコードを書くより
ずっといい。
0714名前は開発中のものです。
垢版 |
2006/05/05(金) 12:18:33ID:yx9WHGs4
でも、あっちは板が違うしな。
さらに言えば、昔はあっちの方がこっちに行くように言われてたわけだし・・・。
0715名前は開発中のものです。
垢版 |
2006/05/05(金) 21:43:00ID:LicKzfcD
>>711
ねぇねぇ、それってさ何か親クラスを作ってそのポインタに子クラスの参照先を入れて行くのと同じですか?
0716名前は開発中のものです。
垢版 |
2006/05/27(土) 23:42:11ID:TAx3htqU
がんばれ俺!今日明日で戦闘を作るんだ!
ここが踏ん張りどころだ!完成するぞ!完成するぞ!
0717名前は開発中のものです。
垢版 |
2006/05/28(日) 00:00:25ID:SbFom2eu
C++でっていうけど、ウインドウズで動作させようと思ったら
APIの勉強もいるんだよね?orz
0718名前は開発中のものです。
垢版 |
2006/05/28(日) 00:40:31ID:lcSvizP1
>>716 がんばれ、超がんばれ、世界がおまえを待ってるぞ!
0720名前は開発中のものです。
垢版 |
2006/05/29(月) 19:45:46ID:qsL/g3xF
さて、716の見苦しい言い訳を聞こうか
0721名前は開発中のものです。
垢版 |
2006/05/29(月) 21:13:55ID:zEiBbzn5
二日っていうと五時間ずつやったとしても10時間だよね。
10時間で完成可能なことだったの?
0723716
垢版 |
2006/05/30(火) 14:31:56ID:kpb46nhc
(^^;
完成できなかったけど、だいぶ進んだ
摂のRPGはドラクエ3みたいな単純なシステムではなかったことが敗因
0727名前は開発中のものです。
垢版 |
2006/05/30(火) 19:40:27ID:hZJKdy+m
>>726
どうせ最後はDQに集約されるんだから気にするな。
ただ、新しい(と思える)システムを作って『俺SUGEEE』ってやると、
後で絶対泣くことになる。ゲーム業界はすでに20年歩んでるんだからな。
0728名前は開発中のものです。
垢版 |
2006/05/30(火) 19:44:19ID:XHx1vsq2
>>727
流石にもう出尽くしたのかな
あんまり新しいの作ろうとすると今度はRPGでなくなるかもね・・・
最初はDQみたいなの作るよ
0730名前は開発中のものです。
垢版 |
2006/05/30(火) 20:18:52ID:PgwMBF7v
wizって洋ゲーじゃなかったっけ
ワードナは逆読みすると開発者の名前になるとか聞いたことあるんだが
0731名前は開発中のものです。
垢版 |
2006/05/30(火) 20:20:15ID:hZJKdy+m
>>730
トレボーもワードナも開発者の名前をひっくり返したやつだな。
WizardryとUltimaはどちらも洋ゲーだけど、それを組み合わせたのがDQ
特に戦闘関係はWizardryから引っ張ってきてる。
0732716
垢版 |
2006/05/30(火) 21:00:58ID:kpb46nhc
摂のはアクションRPGだった(^^;
グラフィックは8方向分用意(^^;
グラフィックだけで死にそう(^^;;
0733名前は開発中のものです。
垢版 |
2006/05/30(火) 21:41:22ID:uSUZilj0
>>732
とりあえず、ドラクエ(の簡易版)から始めた方がよさそう。

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

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

プレイヤーは見た目が不自然じゃなければ、そこまで
厳密な部分は見ない。見るのは解析マニアが弾幕シューターだ。
0740名前は開発中のものです。
垢版 |
2006/05/31(水) 21:37:10ID:fvp1fd0u
アクションRPGは単純な紙芝居RPGとは違うパフォーマンス上の配慮が必要で大変ですね(^^;
冗長なことやってるとパフォーマンスガタ落ちで手抜きができません(^^;;
普通のRPGでは通っていたことが通らなくなりました(^^;;;
0743名前は開発中のものです。
垢版 |
2006/06/17(土) 01:55:24ID:gghwP/lw
>>716
参考にドウゾ。ただコードの構造化が糞だから気をつけたほうがいい。
ttp://www.geocities.jp/amazonium011001/page1.htm
0744716
垢版 |
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 );
}
}

誤字脱字があるかもしれません(><)
0745名前は開発中のものです。
垢版 |
2006/06/17(土) 13:11:36ID:MX8Yl6AK
>>716
ループの中心で割り算などは極力控えるべき
ブレゼンハム使おう。
というかなぜ自前?
0748名前は開発中のものです。
垢版 |
2006/06/18(日) 03:00:50ID:DrGgvxn8
>>744
それダウンロードしたの?俺も同じところで吹いたw
参考になりそうなのはvisiRPGとNew CUIRPGってやつだけだよ。
0749名前は開発中のものです。
垢版 |
2006/06/18(日) 09:52:01ID:kWRvX99Z
おいおい、初心者をミスリードするな。
visiRPGとNew CUIRPGも参考にならないだろう。
反面教師ならまだしも、作者の良識を疑う。
0750名前は開発中のものです。
垢版 |
2006/06/20(火) 05:44:49ID:yRy3miB7
鬼はどうなったん?
0754名前は開発中のものです。
垢版 |
2006/06/21(水) 18:07:40ID:HFz2n3fa
ヘッダに実装を書かない方法を知らないんジャマイカ
■ このスレッドは過去ログ倉庫に格納されています

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