■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
ロールプレイングゲームの設計
1 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/24(火) 22:35
いわゆるRPGですがこのゲームの設計(データ構造など)は
どんな感じなんでしょうか?
やっぱり
extern.hなんていうヘッダに
extern Player player;
なんて書かれているんでしょうか?
町の人の管理もやっぱり
extern TownObject town_object[ MAX_TOWN_OBJECT ];
となっているんでしょうか?
力業で色々やっているんでしょうか?
ドラゴンクエスト、ファイナルファンタジー、ポケットモンスター
など、どんな設計(データ構造)なのかとても気になります。

ほげほげRPGのソースはXX行だ。なんてのでもいいです。
是非教えてください。


2 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/24(火) 23:56
設計以前に言語に関する知識が希薄なのが明白なので出直してください


3 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 00:05
今からRPG趣味で新規で作るとしたら、C++で
デザインパターン使ってだな。

あとで自分でもなんでそんなことしたのか良く
分からなくなるようなソース書くのは、もういや。


4 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 01:27
そんな感じです >>1
終了


5 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 01:49

まだそういうの作るには早すぎる。




6 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 01:51
力技でもなんでもいいから、とりあえず自分なりに作ってみれば?
試行錯誤する事も大切だよ。



7 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 04:02
でも1程度の知識じゃ、ベタベタなソース焼きソバになりそうだな。
ま、それも経験だろう。


8 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 04:04
>1
自分がいかにアホなことを言ってたのか気づくためにも
一度実際に作ってみることをお勧めする。



9 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 14:11
通常、ヘッダには構造体の定義だけを記述して、インスタンスは
作らない。あとスタックメモリではなく、mallocを使ってヒープ
メモリにインスタンスを作成しましょう。

こうゆうレスでいいの?



10 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 14:29
>9
なんでそこでmalloc使っちゃうかな?

ところで3の人に聞くが「デザインパターン」って、
あの妙な本ですか?あれってオブジェクト指向の本質じゃ
ないきがするんだよね。小さい概念をゴチャゴチャゴチャゴチャ
書いてあるだけでよくわからなかったんだけど。
あの本は一体どのレベルで話してあるのか?
EffectiveC++って本もひたすら謎だった。


11 名前: >10 投稿日: 2000/10/25(水) 14:36
その前に君のレベルを明らかにしてよ。
「デザインパターン」も「Effective C++」がだめだとすると、
どんな本がおすすめなの?



12 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 17:08
>>9
extern宣言ってインスタンスじゃないよ


13 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 17:19
内蔵のイベント処理用スクリプトにギコBASICを使ったら楽しそう(藁


14 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 17:27
http://nethack.tripod.co.jp/ftp.html


15 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 17:40
>どんな本がおすすめなの?
あったら俺が聞きたい。
ただ、なんか概念という感じではなく、
ちょっとした小細工気味に感じる。
「憂鬱なプログラマのためのオブジェクト指向開発講座」
っていうのを読んでから今度は中級者本ぐらいのを探してるんだけど
なんかいいのがないんだよね。現在はHPを徘徊中。



16 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 17:49
オブジェクト指向に従えば従うほど、
プログラムが組みにくくなり開発速度が落ちていくのは私だけ?


17 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 17:50
ほらよ
http://www2s.biglobe.ne.jp/~sinmasa/RPG/index.htm


18 名前: 投稿日: 2000/10/25(水) 17:58
プログラムの知識ゼロの俺には
君らがやたら頭いいように思えてしまうんだが、
どうせ「ゲームソフトってのはハードがないと遊べないんだ!」
くらいのレベルのことしか言ってないんだろうね。
君らが分かることくらい俺も分かるし。
錯覚って怖いよ。


19 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 18:13
>>17
こちらなのでは?
http://www.latech.edu/~acm/helloworld/rpg.html

http://www.latech.edu/~acm/HelloWorld.shtml



20 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 18:16
>>18
こやつどうしましょう?(;´Д`)


21 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 18:26
>20
ほっとこう。


22 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 18:38
>18
専門学校生でもプログラムできるしな。


23 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 19:41
>18
無知も怖いぞ


24 名前: 1 投稿日: 2000/10/25(水) 20:11
どうもありがとうございます。
まずはなにか完成させてみます。
現在マップを表示してキャラクターが動くくらい出来ました。
イベント関連はlibguileでも使おうと思います。
いい感じです。

ただ一つ気になるのがマップのスクロールが出来ないことです。
まぁなくてもいいやと思ってますがやはり気になります。


25 名前: >1 投稿日: 2000/10/25(水) 20:38
http://www.sm.rim.or.jp/~shishido/
2ちゃんねらーでもある宍戸氏のぺーじ


26 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 21:38
>>18
ハードって言うのは電気がないと動かないんだピカァちゅ


27 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 22:28
>オブジェクト指向に従えば従うほど、
>プログラムが組みにくくなり開発速度が落ちていくのは私だけ?
私もです。汎用性も生まれているのも解かるのだが開発速度は落ちる。
やっぱり、オブジェクト指向って人海戦術的なとこあるよね。
覚えればアホでも組めるようになる反面、人が必要になるって感じの。



28 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 23:11
>>27
>汎用性も生まれている
>人海戦術的なとこ
なんか根本的な誤解があるような...



29 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/25(水) 23:30
28に1票


30 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 00:33
JavaのAPI使ってみれば、ちゃんとしたオブジェクト指向クラス設計
の成果が、どれほど開発を楽にするかすぐわかると思うんだけどなあ。
(Javaがおそいとか、糞だとかはは置いといて)

27みたいになるのは、ライブラリの基本設計が馬鹿だったから
じゃないの?


31 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 00:44
ライブラリ作成も含めて工数が多いように感じるということでは。
ほにゃらら2とか第2作なら速いのは確かでしょう。



32 名前: >30 投稿日: 2000/10/26(木) 01:00
彼らはオブジェクトが自立的に勝手に動くのが気持ち悪いんだって。
コード・データの制御をすべて自分が支配しないときがすまないんだよ。



33 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 02:28
>31
それそれ、作るものほとんど完備しなくちゃいけないんだもん
面倒臭いよ。って完備しなかったときは面倒じゃすまないんだけどさ。
作り逃げがきかないじゃん(なんてこというんだと思うが)


34 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 03:11
作るは地獄 使うは天国 オブジェクト指向
設計に未熟なやつが組んだライブラリは使うほうも地獄に道連れだが


35 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 03:31
オブジェクト指向の「作るは天国」というコンセプトはどこへ行ったんだ?
オブジェクト指向クラス設計とそれを使った開発は別だといわれればそれで終わりだが。



36 名前: >35 投稿日: 2000/10/26(木) 03:53
>オブジェクト指向の「作るは天国」というコンセプトはどこへ行ったんだ?
どこにも行ってないよ。ただ目の前にぶら下がっているのが見えてない人がいるだけ。

汎用的なクラスライブラリのクラスとアプリ固有のクラスは全く別物。
アプリ固有のクラスは完備する必要なんてないし、
逆にその時点では必要ない機能を完備する事を禁じてる開発スタイルすらある。
そしてそのことは将来の拡張を前もって制限するものでもない。
したいときに拡張するだけ。



37 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 05:30
>したいときに拡張するだけ。

そしてMFCになる(藁)



38 名前: 投稿日: 2000/10/26(木) 08:24
>12
>extern宣言ってインスタンスじゃないよ

externは省略できるから、別にどうでもいい。
1はインスタンスをヘッダーで作成してるよ。
コレ=>extern TownObject town_object[ MAX_TOWN_OBJECT ];



39 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 12:38
イベント処理用のスクリプトだけど、みんなどうしてる?
自分で組んだ方がいいの?それとも出来合いの使った方が楽?
おせーて


40 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 12:43
>9

externの意味分かってる?
externを省略したら同名の別変数になっちゃうよ
ヘッダに構造体とかmallocとか、ちょっと前時代的なのも気になる


41 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 12:45
>9
はぁ?


42 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 12:46
>40
はぁ??


43 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 12:46
>10
デザインパターン本は「憂鬱な・・」より遙かに上級向けだよ
オブジェクト指向とはなにかという概念がしっかり分かってる人たち向けに
実際に使いやすい実装とはどんなものかの好例を示してる


44 名前: 40>42 投稿日: 2000/10/26(木) 13:17
言葉が足りなかったか?
b.hのexternがある時と無いときで
bccでコンパイルして試してるから安心して読んでくれ。

--- a.c ---
#include<stdio.h>
#include"b.h"

int main(void){
i=3;
funcb();
printf("%d",i);
return 0;
}
---- b.h ---
void funcb(void);
extern int i;
---- b.c ----
#include<stdio.h>
#include"b.h"

int i;

void funcb(void){
i=2;
}


45 名前: 厨房 投稿日: 2000/10/26(木) 13:18
>>38=9
結局、38の解釈まちがってますよね?


46 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 13:23
かなり


47 名前: 1 投稿日: 2000/10/26(木) 15:31
>>39
私はlibguileを使おうと思ってます。
http://www.gnu.org/software/guile/

私はextern、staticを

*関数にexternを付けるとglobalな関数になる。
*関数にstaticを付けるとfile privateな関数になる。

*変数にstaticを付けるとfile privateな変数になり、そこに実態が確保される。
*変数になにも付けないとそれはglobalな変数にない、そこに実態が確保される。
*変数にexternを付けるとほかのどこかにあることを示す(実態は確保されない)。

グローバル変数を用いる時

global.h
int id;

a.c
#include "global.h"

b.c
#include "global.h"

としてしまうとidの実態が2つ存在することになります(試してください)。
この場合の動作は未定義だと思います。
そうではなくてexternを使って、

global.h
extern int id;

global.c
int id;

a.c
#include "global.h"

b.c
#include "global.h"

とすればidの実態は1つだけ存在することになり、万事OKというわけです。



48 名前: 1 投稿日: 2000/10/26(木) 15:34
*関数になにもつけないとglobalな関数になる。
も追加です。



49 名前: >1 投稿日: 2000/10/26(木) 18:07
ヘッダにいれるグローバル変数にexternいれるのはお決まりのパターンだが、
そのまえに普通、ヘッダは
#ifndef hoge
#define hoge
...
#endif
ではさむんじゃないの?


50 名前: 39 投稿日: 2000/10/26(木) 18:36
>>47
ありがとうございます。

こんなのもみつけたんですが、どっちがいいですかね?
http://www.tecgraf.puc-rio.br/lua/


51 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 19:06
>43
だから、中級向けで良い本無い?
デザインパターンとかじゃ、まだ理解不能。



52 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 19:12
オブジェクト指向もいいけど、もっと厄介そうな
突然発生するイベントとか移動中での例外処理とか
その他やらせ的演出をいかにコードをスパゲッティにせずに
拡張性を考えて詰めこめるかは、すごく難しい問題だと思う。
知識ベースとかそのへんの設計が鍵になるかな。ああいうのって
本物はフラグの嵐なのかね?


53 名前: >52 投稿日: 2000/10/26(木) 19:27
そこらへんは力仕事ですんで、疲れるけど悩むことはあんまし
ないです。フラグは確かに大量に使います(スクリプトエンジン
に食わせるスクリプトで)が極力ローカルフラグを使うことで
管理の手間を減らします。


54 名前: 53 投稿日: 2000/10/26(木) 19:33
ごめん、「いかにコードをスパゲッティにせず・・・」ってことだった
ですね。すばびせん、最終的にできたものは当然スパゲッティです。


55 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 19:36
>>53 便乗質問。そういうフラグありまくりのコードって、どうやって
デバッグしてます? ないし、どの時点で出荷OKと判断してます?
やはりバグ曲線が安定してきてから一定期間、とかでやるんでしょうか。


56 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 19:43
53ではないけども
ウチではだいたいそんな感じです。
もっともフラグを減らす工夫はしますけどもね。
実は目視による机上デバッグが一番効率的だったりする‥


57 名前: 53 投稿日: 2000/10/26(木) 20:19
スクリプトエンジンにある程度はエラートラップを仕掛けたり
しますが、論理バグにはどうしようもないです。ちから任せです。
56さんと同様です。
最終的にはアルバイトを動員しての人海戦術となります。



58 名前: 1 投稿日: 2000/10/26(木) 20:20
>>49
忘れていました。
それも必須ですね。

>>50
どっちがいいかは好みの問題だと思います。
私は
*Lisp系の言語が好きならGuile
*C,Pascal系の言語が好きならLua
*簡単さを求めるならLua
*今すぐ使いたいならLua
ですかね。
LuaをCから呼び出す場合
lua_open();
lua_dofile("test.lua");
lua_call("main");--main関数を呼び出す(--以降がコメント)。
lua_close();
こんな感じです。

Lua - The Application Program Interface
http://www.tecgraf.puc-rio.br/lua/manual/manual.html#5.



59 名前: 50=39 投稿日: 2000/10/26(木) 21:54
>1さん
使用例までつけていただいて、ありがとうございます。
わたしは、、、Luaで行こうかな。


60 名前: 52 投稿日: 2000/10/26(木) 22:27
なんか結構おもしろいスレになってきましたね。
ぼくは知識表現とかに興味があるので、ゲームの
ストーリーをなんらかの意味表現、たとえば述語論理とかで
表現して多様な(そして論理バグのない)分岐を可能にする、
というのができたらすごいと思います。あるいは会話の流れを
もっと複雑にするとかね。個人の趣味で作るとしたらそういうところを
研究すればおもしろいと思う。


61 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 22:48
>60
あんたその前に日本語勉強した方がいいよ(ワラ


62 名前: 1 投稿日: 2000/10/26(木) 23:06
ところでドラゴンクエスト1(ファミコン)のソースコードの
行数をご存知な方いましたら是非教えて欲しいです。



63 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/26(木) 23:46
>62=1
なんでそんなのを気にする???



64 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 00:07
自らの生産性に鑑みて開発計画を作成したいとか。
仮に3万行として100行/日書けるなら300日とか。


65 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 03:44
>>64
100行/日は少なすぎるだろ?
100行/時のペースでも遅い。


66 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 12:07
>64,65
OLのワープロ作業じゃないんだから、何行書いたかで効率決めるなよぉ。(;_;)



67 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 12:21
>>65
そりゃコーダーの基準だろ。
ある程度の規模のプログラムは、100行/時は無理。
(設計やデバッグを適当にやったとしても)


68 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 12:29
>>1
2〜3年前に、ポケモンのコードを逆アセンブルして公開してた
サイトがあったから、探せば、そーゆーのがあるかもよ。( ̄ー ̄)


69 名前: 名無しさん@8085 投稿日: 2000/10/27(金) 12:38
ステップ換算?
コ−ダ−以外には、パンチャ−か?


70 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 12:40
>>65
そぉね、使い捨てコードならアタシもそんくらいはイケルと思うわ。
でも、製品コードをその速度で作り続けるのはとんでもないグルか、
とんでもないヴァカのどっちかだと思うわよ。


71 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 14:32
とんでもないズルなんじゃないか?


72 名前: >1 投稿日: 2000/10/27(金) 15:29
ドラクエといえば、X68Kで動作する「Tドラクエ」つーのが
あった。作者は元ドラクエを作ってたとこの社員で、ソース流用が
ばれてクビになったとかいう噂を聞いたが本当かどうかわからんです。


73 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 16:41
>>72

TDQ発表当時は作者は高校生だった記憶があるが…。

TDQはX-BASICをXBAStoCでCに変換してgccでコンパ
イルだった記憶もある。


74 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/10/27(金) 19:31
98版のクローンもあったけな。

こっちは配布中止命令が下った。


75 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/06(月) 13:19
age


76 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/06(月) 17:36
こんなスレッドあげんなよ。75=1か?
だいたい6502アセンブラで書かれてるソースと、C言語のソースの行数
比較して何になるよ?



77 名前: 比較すると 投稿日: 2000/11/06(月) 18:46
クセになる。


78 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/06(月) 22:44
>77
馬鹿、死ね。
逝って良し。


79 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/06(月) 22:45
>78
あげんなゴルァ!
78=75=1か!?



80 名前: 1 投稿日: 2000/11/07(火) 10:22
私はあげていません。
62が最後の発言です。



81 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/16(木) 14:09
>>50
超遅レスでスマンが、JavaScriptのエンジンも結構いいぞ。
www.mozilla.org/js/


82 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/22(水) 04:56
 スクリプトは、「条件分岐」「フラグ設定」と「メッセージ表示」「選択」に
限定すれば、意外に簡単かもね。フラグとメッセージ文字列のテーブルを持って
おいて、随時参照・変更していけば出来そう。



83 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/11/22(水) 13:45
ソースコードの行数は知らぬがROMの容量は良く知られているね
DQ1はコード・データ合わせて64KB以内に収まってるはず



84 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/12/06(水) 01:20
ゲームに使う、キャラクターや、背景、敵キャラクターの
画像、音楽が著作権フリーであるウェブサイトを
知りませんか?


85 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/12/06(水) 01:41
あーあー、つまんねえスレッドが浮上してきたなあ。
キーワードがわかってるんだから検索エンジンで探せよ>84



86 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/12/07(木) 13:48
>>84
plaza23.mbn.or.jp/~hir/rpg/sozai.htm
www.geocities.co.jp/Milano-Aoyama/1686/
www.microkids.or.jp/%7Emack/home1/tukuru/rpgfree.html
www02.u-page.so-net.ne.jp/rb3/orea/

こんなとこかな。
海外の鬼畜サイトで、ドラクエやFFから吸い出したマップチップやキャラ
を置いているサイトがあったな。場所は自分で探してくれ。


87 名前: 名無しさん@お腹いっぱい。 投稿日: 2000/12/15(金) 06:57

 そう言えば「大容量」とされたメガロムって確か1M「ビット」なんだよね。
128KBか....。それ以前のドラクエなんかだと、街のマップチップが32種類
しか使えなかったりと容量の制約はかなりきつかったみたい。



88 名前: デフォルトの名無しさん 投稿日: 2000/12/28(木) 20:27
>>72
むちゃくちゃ嘘です
た○ぼさんはそんなひとではありません


89 名前: デフォルトの名無しさん 投稿日: 2000/12/29(金) 03:31
>>88
今更ageなくても、アンテナが壊れてて怪電波受信中の72以外は
みんなわかってますって。