http://rob2.jp/mmo/diary.html
↑このページにあるような、MMORPGを開発しようと思案している高校3年生です。
ABでも↑のようなソフト、作れますかね?やはりコーディングのテクニック次第でしょうか。
もしよろしければ、↑のようなソフトを作るのに参考になるページ・サイト等教えて頂けると幸いです。このサイトの講座で基礎は押さえられそうなので、標準~発展的な内容を押さえたサイトなどあれば教えて頂きたいです。
補足:プログラミング経験はHSPでのプログラミング、期間は1年~1年半です。かなり初心者だと思います・・・申し訳ないです。
MMORPGなど
そこそこの技量と、相当の計画性があれば十分可能だと思います。
とりあえずダウンロードできなそうなのでこの手のゲームについて挙げていきます。
DirectXやOpenGLは僕は弄った事が無いのですが、あれで3DCGは描画できたはず。
決める必要のありそうなもの
・マップデータの保存形式
ビットマップみたいにドット単位で保存するのか、あるいはドローみたいに図形の組み合わせを保存するのか。
・キャラクターのパラメータの保存形式
例えば、戦わせるなら体力は最大いくつにするか、攻撃力は、防御力は・・・先攻後攻が動的に決まるのならスピードは最大いくつになるのか、等。アイテムデータの保存方法も必要なら検討する必要がある。
・その他、保存する必要のある全てのデータの保存形式
作る必要のありそうなもの
・マップに表示するポリゴン
木や海、草や道など。
・キャラクターのポリゴン
獣の類も必要なら作っておいたほうがいい。
・キャラクターの標準データ
・アイテムのリスト
よく考える必要のあるもの
・データの暗号化・圧縮
簡単にパラメータを改造されてしまってはいけない場合は暗号化はよく検討すべき。独自で良いから。
マップとかユーザーが作りそうなものはとにかく大量に作られることを考慮して、圧縮に対応するべき。公開されている圧縮形式で十分代用できる。
・データの通信方式
ネット経由で他人とやり取りする場合は、どんなデータをどんな順番で送るのか、考える必要がある。
とりあえずダウンロードできなそうなのでこの手のゲームについて挙げていきます。
DirectXやOpenGLは僕は弄った事が無いのですが、あれで3DCGは描画できたはず。
決める必要のありそうなもの
・マップデータの保存形式
ビットマップみたいにドット単位で保存するのか、あるいはドローみたいに図形の組み合わせを保存するのか。
・キャラクターのパラメータの保存形式
例えば、戦わせるなら体力は最大いくつにするか、攻撃力は、防御力は・・・先攻後攻が動的に決まるのならスピードは最大いくつになるのか、等。アイテムデータの保存方法も必要なら検討する必要がある。
・その他、保存する必要のある全てのデータの保存形式
作る必要のありそうなもの
・マップに表示するポリゴン
木や海、草や道など。
・キャラクターのポリゴン
獣の類も必要なら作っておいたほうがいい。
・キャラクターの標準データ
・アイテムのリスト
よく考える必要のあるもの
・データの暗号化・圧縮
簡単にパラメータを改造されてしまってはいけない場合は暗号化はよく検討すべき。独自で良いから。
マップとかユーザーが作りそうなものはとにかく大量に作られることを考慮して、圧縮に対応するべき。公開されている圧縮形式で十分代用できる。
・データの通信方式
ネット経由で他人とやり取りする場合は、どんなデータをどんな順番で送るのか、考える必要がある。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
どうも。いつもこの掲示板で質問ばっかりしているので、少しは皆さんの役にもたとうかと、書き込みます。
まず、MMORPG開発の場合、プログラムを作るといってもサーバー側プログラムとクライアントプログラムがあります。
また、サーバー側プログラムは、どのようなサーバー構成にするかでサーバーの役割別にプログラムを作ってやる必要があります。
クライアントプログラムは、通常オンラインゲームしようとするとユーザーがサイトからダウンロードしてインストールするやつですね。
MMORPGの場合、クライアントは入出力でしかありません。パソコンの周辺機器で言例えると、モニタ、キーボード、スピーカーとかにあたります。クライアントで受けた操作をサーバー側に送ってそっちで処理します。MMORPGは高度なアクション性が必要ないく、ユーザーの不正行為を極力防ぐため、ほとんどの処理をサーバー側で行います。クライアント側ではユーザーの操作をサーバーに送り、その結果を受け取って表示するくらいです。
と、書いてみたものの、全然質問の答えになってませんね(ぁ
ネットワーク関係は経験が無いのでサーバー側プログラムを作れるのか(そもそもサーバー側がWindowsアプリケーションでよいのか)は、知りませんがABでやって出来ないということは無いと思います。
高校3年生であれば数学の授業ちゃんと聞いてれば、DirectXもなんとか使えると思います。
ただ、だいぶ大変だと思います。
「ABでゲームを作る」となると、他の言語に比べ参考文献が非常に少ないです。
konisiさんがうまくまとめてくれているので、少し追記を
・マップデータの保存形式
これは、恐らくマップの地形データの管理の事を言っていると思いますが、DirectXを使用するのであれば、当たり判定などはメッシュから直接計算してくれる関数が用意されています。
・キャラクターのパラメータの保存形式
これは、ユーザーアカウントに含まれますね。基本的にサーバー側で管理します。
コレをユーザー側に置いておくとすぐデータが改ざんされてメチャメチャになります。そうでなければ、かなり強力な暗号化が必要だと思います。
プログラマより知識をもっているユーザーなんて世の中にいくらでもいるので、サーバー管理が妥当だと思います。
・データの暗号化・圧縮
上記の通りゲームバランスに直接関係するものはサーバーで管理するとして、グラフィック、音データ等は当然クライアント側になるわけですが、これもある程度ちゃんとしておかないと、すぐ無断引用されます。無断引用されて、なにがどうなるという訳ではありませんが、自分がそれを見たとき非常に悔しいです。
SHEVAさんがどれぐらいの知識をお持ちになるのかは私にはわかりませんが、MMOを作るのであれば「プログラムができる出来ない」の前にサーバー管理、ネットワークにつての知識を習得するのが妥当だと思います。
また、ROBROBさんのようにMMORPGを個人で運営し無償で提供するのであれば、ユーザーへの対応や、サーバーメンテナンス等で多大な費用がかかることを覚悟した方がいいと思います。
中途半端な知識しかないので、いろいろ間違ってること言ってるかもしれませんが、参考までに。。。
まず、MMORPG開発の場合、プログラムを作るといってもサーバー側プログラムとクライアントプログラムがあります。
また、サーバー側プログラムは、どのようなサーバー構成にするかでサーバーの役割別にプログラムを作ってやる必要があります。
クライアントプログラムは、通常オンラインゲームしようとするとユーザーがサイトからダウンロードしてインストールするやつですね。
MMORPGの場合、クライアントは入出力でしかありません。パソコンの周辺機器で言例えると、モニタ、キーボード、スピーカーとかにあたります。クライアントで受けた操作をサーバー側に送ってそっちで処理します。MMORPGは高度なアクション性が必要ないく、ユーザーの不正行為を極力防ぐため、ほとんどの処理をサーバー側で行います。クライアント側ではユーザーの操作をサーバーに送り、その結果を受け取って表示するくらいです。
と、書いてみたものの、全然質問の答えになってませんね(ぁ
ネットワーク関係は経験が無いのでサーバー側プログラムを作れるのか(そもそもサーバー側がWindowsアプリケーションでよいのか)は、知りませんがABでやって出来ないということは無いと思います。
高校3年生であれば数学の授業ちゃんと聞いてれば、DirectXもなんとか使えると思います。
ただ、だいぶ大変だと思います。
「ABでゲームを作る」となると、他の言語に比べ参考文献が非常に少ないです。
konisiさんがうまくまとめてくれているので、少し追記を
・マップデータの保存形式
これは、恐らくマップの地形データの管理の事を言っていると思いますが、DirectXを使用するのであれば、当たり判定などはメッシュから直接計算してくれる関数が用意されています。
・キャラクターのパラメータの保存形式
これは、ユーザーアカウントに含まれますね。基本的にサーバー側で管理します。
コレをユーザー側に置いておくとすぐデータが改ざんされてメチャメチャになります。そうでなければ、かなり強力な暗号化が必要だと思います。
プログラマより知識をもっているユーザーなんて世の中にいくらでもいるので、サーバー管理が妥当だと思います。
・データの暗号化・圧縮
上記の通りゲームバランスに直接関係するものはサーバーで管理するとして、グラフィック、音データ等は当然クライアント側になるわけですが、これもある程度ちゃんとしておかないと、すぐ無断引用されます。無断引用されて、なにがどうなるという訳ではありませんが、自分がそれを見たとき非常に悔しいです。
SHEVAさんがどれぐらいの知識をお持ちになるのかは私にはわかりませんが、MMOを作るのであれば「プログラムができる出来ない」の前にサーバー管理、ネットワークにつての知識を習得するのが妥当だと思います。
また、ROBROBさんのようにMMORPGを個人で運営し無償で提供するのであれば、ユーザーへの対応や、サーバーメンテナンス等で多大な費用がかかることを覚悟した方がいいと思います。
中途半端な知識しかないので、いろいろ間違ってること言ってるかもしれませんが、参考までに。。。
なるほど
皆さん、返信して頂きありがとうございます。
ABでは参考文献が少ないですか・・・・やはりC++(?)とか、そういった有名な言語の方が他言語での潰しもききますし、何より参考資料が豊富ですよね。
でも正直、「C言語からイキナリ始められるのか?」という疑問がわいたため、ここへ来た次第なんです。(笑)
まぁ疑問点としては・・・
・C言語からイキナリ始めても支障ないか(ABから始めるのと、難易度で比較すると一体どれくらい差異があるのか?)
・例えばネットワーク環境(サーバ)を用意してゲームを運営するとして、初期投資やら何やらにいくら程度掛かるのか(大まかで良いのですがやはり気になります・・・笑)
の2点です。度々で申し訳ないですが、教えていただけると嬉しいです。
補足;学校では理系クラスだったんで知識としてはそこそこなもんだと自負しております。(笑) まぁ受験は文系で挑みましたが。
ABでは参考文献が少ないですか・・・・やはりC++(?)とか、そういった有名な言語の方が他言語での潰しもききますし、何より参考資料が豊富ですよね。
でも正直、「C言語からイキナリ始められるのか?」という疑問がわいたため、ここへ来た次第なんです。(笑)
まぁ疑問点としては・・・
・C言語からイキナリ始めても支障ないか(ABから始めるのと、難易度で比較すると一体どれくらい差異があるのか?)
・例えばネットワーク環境(サーバ)を用意してゲームを運営するとして、初期投資やら何やらにいくら程度掛かるのか(大まかで良いのですがやはり気になります・・・笑)
の2点です。度々で申し訳ないですが、教えていただけると嬉しいです。
補足;学校では理系クラスだったんで知識としてはそこそこなもんだと自負しております。(笑) まぁ受験は文系で挑みましたが。
僕はC++というものをいじった事がないので詳しいことは言えないんですが、
Basic系の言語でもC系の言語でも、片方で出来てもう片方では絶対出来ないっていうものは殆ど無いでしょうし、
どれでも得意なものを使えばいいと思います。
サーバーは、ユーザーの情報全てを記録すると仮定した場合に、相当な投資が必要です。
ユーザー数が相当なまでになれば、下手なノートパソコンがプリンタ付きで一式買えてしまえる程度かと。
追加の投資とかは、どんなデータを保管するのか、又、いかに効率よくデータを保管するかで随分変わるので、
そこらへんはやはりプログラマの技量が問題になってくるかと。
(たとえば、記録するには10KBで十分なデータを、フラグに4byteを割り当てたりして結局20KB使ってしまった、というようではユーザー情報の保存用ディスクへの投資が膨らむのは分かりますよね?)
初期投資も同じ事が言えて、マップデータをいかに効率よく保存するか、キャラクターの素体データは、アイテムは、・・・と保存する必要のある情報をいかに効率よく保存しておくかに掛かってくると思います。
それと、もちろん年中無休でサーバーを動かし続けるならその電気代が必要ですし、
ネットワークに接続し続けるならそのための料金も必要です。
C言語で組むなら、「オンラインゲームプログラミング」というC用の本があるので、とても参考になると思います。
Basic系の言語でもC系の言語でも、片方で出来てもう片方では絶対出来ないっていうものは殆ど無いでしょうし、
どれでも得意なものを使えばいいと思います。
サーバーは、ユーザーの情報全てを記録すると仮定した場合に、相当な投資が必要です。
ユーザー数が相当なまでになれば、下手なノートパソコンがプリンタ付きで一式買えてしまえる程度かと。
追加の投資とかは、どんなデータを保管するのか、又、いかに効率よくデータを保管するかで随分変わるので、
そこらへんはやはりプログラマの技量が問題になってくるかと。
(たとえば、記録するには10KBで十分なデータを、フラグに4byteを割り当てたりして結局20KB使ってしまった、というようではユーザー情報の保存用ディスクへの投資が膨らむのは分かりますよね?)
初期投資も同じ事が言えて、マップデータをいかに効率よく保存するか、キャラクターの素体データは、アイテムは、・・・と保存する必要のある情報をいかに効率よく保存しておくかに掛かってくると思います。
それと、もちろん年中無休でサーバーを動かし続けるならその電気代が必要ですし、
ネットワークに接続し続けるならそのための料金も必要です。
C言語で組むなら、「オンラインゲームプログラミング」というC用の本があるので、とても参考になると思います。
オンラインゲームプログラミング
Jung Wun Chul 著
吉野 ひろみ 訳
ISBN4-7973-2847-9
定価3400+税
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
hum...
なるほど~。
紹介して頂いた書籍は今度書店で目を通してみます。ありがとうございます。
まぁ、どちらにせよ今の僕自身の力量ではオンラインなんてとても手の出せるジャンルでは無いので・・
いずれ力が付いたらtryしようと思います。
それと、ご指摘のありました『効率よくデータを保管しなければ無駄に容量が増える』、ってのは一応理解してます。
いかに簡単な数値などに置き換えるかがミソってとこですか?まぁ「簡単であっても単純であってはならない」とも思いますが。(笑) そこが難しく、また面白くもあるんでしょうね。
習うより慣れろ、ってのはプログラミングにも当てはまることなので、早速ABで練習しようと思います。
ウダウダ言ってるより実践してみます。
ではお世話になりました!次はどうしても行き詰った時来ます。すぐかも知れないけど。
紹介して頂いた書籍は今度書店で目を通してみます。ありがとうございます。
まぁ、どちらにせよ今の僕自身の力量ではオンラインなんてとても手の出せるジャンルでは無いので・・
いずれ力が付いたらtryしようと思います。
それと、ご指摘のありました『効率よくデータを保管しなければ無駄に容量が増える』、ってのは一応理解してます。
いかに簡単な数値などに置き換えるかがミソってとこですか?まぁ「簡単であっても単純であってはならない」とも思いますが。(笑) そこが難しく、また面白くもあるんでしょうね。
習うより慣れろ、ってのはプログラミングにも当てはまることなので、早速ABで練習しようと思います。
ウダウダ言ってるより実践してみます。
ではお世話になりました!次はどうしても行き詰った時来ます。すぐかも知れないけど。