MMORPG
■ このスレッドは過去ログ倉庫に格納されています
ネットワークRPGを作れるようなソフトってありますか?
>>51
つ thread
Linuxでやるなら最終的には1でやるしかないと思う。
FreeBSDは試したこと無いから知らん。SolarisならThreadで行ける。
>>52
どもども。
あのあと調べてみたんですが2のやりかたはselect()/poll()ってのを使うんですね。
でも大規模なものには向かない感じ?
スレッドが現在主流なんでしょうか。いくつかの資料にあたってみると
select()やfork()のやりかたも書いてあるけど大抵の場合、
最終的にこれからはマルチスレッドだ!って意見に落ち着いてるような。
Linuxの場合NPTL/LinuxThreadsという形でPthreadsを実装してるみたいですね。
ただまだ新しい機能のせいか今でもちょこちょこ仕様変更してるのが気になるところ…
あと気になったのがシステム的な限界。手持ちのLinuxの標準的な設定だと
開けるディスクリプタの上限:1024
同時起動できるプロセスの上限:なし
プロセスあたりのスレッドの上限:64
システム全体のスレッドの上限:16384(64スレッド*256プロセス?)
らしいのですが、1ユーザとの通信は1スレッド+1ソケットディスクリプタで
という考え方だとacceptを複数プロセスでやらない限りは、
1システムあたり64人しか同時接続できなくなるという解釈でいいのでしょうか。
各々協調作業するマルチスレッド+マルチプロセス+マルチシステムな知識が必須? ここって板の一番下だよな・・・・?このスレのっとるか日記で おまえら、いろいろとありえねーだろwwwwwwwwwwwwwwww何だよそのレス速度 ごめんね、この板の全スレでレスが
あったらすぐわかるようにしてるから…ごめんね。 専ブラでスレタイ検索してお気に入りに登録して、
新着レスに緊急出動態勢整えてるのは俺だけじゃない筈だ。 なぜ宣伝?ここ製作なんだがネトゲは別なとこにあるが MMORPGってどういうシステムで作るの?
C/C++?DirectX?他になんかライブラリとかあんの? 言語はC/C++として、
システムはWinAPI&DirectX、通信はWinSockって感じ? (仮に)ウィンドウ関連は最低限だけ触ってDirextXでガリガリ書くとしても、
DirectPlayはMS自身が見捨ててるので通信にはWinSockが必要。
そのWinSockを使うにはウィンドーメッセージ関連の処理が必要。
他に日本語入力(IME)の取得や、
全角文字のの表示にはWinAPIを使うのが現実的。
C++&DirectX+αだとこんな感じかな。
なかったら作れてないはず ここからは、元のスレの趣旨関係なしに再利用の予定です。
MMORPGのシステム周りに興味ある方、作ってみたい思惑をもってらっしゃる方、
興味ある方は一言メッセージを残していただければお付き合いいたしますので
よろしくお願いします。
今の時代やっぱり、HTML5 と WebSocket ですかね そう思いますね。
レスポンシブに作れば、PCでもスマホでも動く。 レスポンシブか・・・、質問スレで少し前に縦横サイズの話あったけど、
ズームをかけるか、フィールドなんかのみえる範囲が解像度によって
バラバラになるのか。 この辺も作りこみとユーザターゲッティングの
思惑によって変わってきますね。 WebSocketでサーバ側制御できる仕組みを無料で提供したら、
プログラミングやってみたい人って結構いそうだけど準備しようかな WebSocketでサーバーにプログラムを送り込むって事?
どんな仕組みになりますか? クライアントの効率の良い作り方悩む。
enchantJS使ってみたけど、UI作るのしんどい。
EdgeAnimate触ってみてるけど、これはかなり良さそうに思う。 すごい汎用性高いスレタイだから勝手に占拠しちゃおうかな
MMOとは言わないけど、20人くらいが繋いで遊べるテキストベースのものを作りたい
サーバ側はnode.js、クライアント側はcocos2dx(C++)
TCPの上に1からいろいろ作るのは面倒なので、通信はWebSocketを考えている
DBは普通にMySQLか、nosqlかで迷い中 サーバを中心に開発していって、年内には遊べるものをリリースしたい
クライアント側は適当に作る。絵も仮完成までは無し
まだ自分の作業量が見積れないけど、目標を設定しておく
中期目標 期日:9月30日
・DBとサーバの基本的な機構を作成し、VPSを契約してデプロイする
マイルストーン1 期日:8月29日
・クライアントの空アプリを作成し実機で起動する
・websocketでつなぎ、入力内容をエコーできるようにする
・クライアントアプリにパケット内容を表示する
心が折れないように、ここにひっそりと開発記録を残そうと思う M1
達成:クライアントの空アプリを作成し実機で起動する
達成:websocketでつなぎ、入力内容をエコーできるようにする
変更:クライアントアプリにパケット内容を表示する
指定のサーバに任意の文字列を渡すと、接続中の全クライアントにブロードキャストするアプリを作成した
入力にはEditBoxを使った
cocos2dxのWebSocketの実装で、面倒な部分はかなりラップされてるみたいなので、
わざわざライブラリに手を加えてまでパケットの表示はしなくてもいいかと考え直した
次回、M2 期日9月5日
・ユニークIDとパスワードを発行するシステムを作る
・それらを保存するテーブルを作る
・daoを作成して実際に入出力できるようにする
・クライアント側でもUIDとPASSを保存できるようにする
・クライアント側の値を使ってログインができるようにする
・簡単なエラーハンドリングを作る
次の目標はログイン周り とりあえずMOを目指すけど、やろうと思えばMMOまでスケールできるような作りにはしようと思う
DBはredisにしようかとも思ったけど、やっぱりMySQLにしておこうかな
ARPGみたいにリアルタイムなものじゃなくてSRPGで、どちらかというと放置系に近い感じを考えてる
だから普通にMySQLで書いてもとりあえずは動きそう
もしランキングとかで入出力が激しくてソート済のセットが欲しくなったら、
その部分だけNoSQL使おうかな 良いと思う
でもMySQLはスケール考慮すると大変なんだよなぁ
redisは最初からMySQLのキャッシュ用途で導入して慣れとく事をお勧めします。クラスタ化も楽なんでスケールアウト時の頼みの綱にもなるよ
俺もcocos2d-xとサーバで遊んでたとこなのでなんとなく見守らせてもらいます ちょうどよさそうなスレ発見
ちょっと今PureP2Pネットワーク技術を使った
MMORPGを作ろうとしているのだが、
壁にぶち当たってしまったので質問
まずどういったゲームを作ろうとしているかというと、
Minecraft+SimCity+生態系シミュレーション+ファンタジー
こんな感じ
ゲームの目的は、モンスターが町を襲うから防衛すること
マップはマインクラフトのようにあるシード値から必要に
応じて無限に生成されていくものとする
処理単位は1メートルごとだけどブロック状にならないように
マーチングキューブ法を使う予定
ダンジョン等も自動生成する
各チャンクには所有権が設定できて基本的には
Systemが所有権を持っているが、町に設定できる
エリアも存在する
町に設定できるエリアは最初に所有を希望した
プレイヤーに所有権を紐付けし、自由にマップを改変
できるようにする(=町長となる)
町長は町の区画整備を行い、住宅地区や商業地区、
工業地区を設定しほかのプレイヤーに売り出し、
またその区画を使用するプレイヤーから税金を
取ることができる その代わり、町長は魔物の攻撃で町を滅ぼされないように
プレイヤーから集めた税金は町のインフラ整備や
城壁の作成、討伐隊の編成を行って町民を守る必要がある
で、プレイヤーサイドへの説明には魔物が町を襲う理由は
魔王による陰謀ってことにしておくが、実際には人間に
住処を奪われた魔物が必死に取り返そうとしてるだけ
っていう設定(=生態系SIM要素)
基本的にCPは魔物だけで、CP商人などのキャラは一切なし
あくまですべての役割をプレイヤーが演じる
ストーリーやクエストもプレイヤーが作り出すことになる
例えば隣町との貿易とか討伐とか護衛任務とか
モンスターからのドロップや、落ちてるアイテムは素材のみで
回復薬や武器、防具等はすべて調合や錬金などによってのみ
作り出すことができる
モンスターからお金はドロップしない
もちろん落ちてもいない
基本的にはある一定のルールに従って自動的に流通量が調整される
これで、作ろうとしているものの大体は書いたかな で、これをPureP2Pネットワークで実装するので問題になってくるのは
1.セーブデータの扱い
2.チート対策
まず、セーブデータをどこに置くのかって問題があって
PureP2Pなので、ネットワーク参加者は勝手に抜けるし
悪意のある参加者もいるかもしれないので
ネットワーク上に分散しておいて多数決でセーブデータの
正しさを証明するって手もあるが場合によっては
セーブデータが見つからなくなる可能性があるし
かといってローカルのみに保存しようものなら実質
チートし放題だからそれもできない
全プレイヤーのPC保存すれば100%その問題を回避できるわけだが
それだと1人1人に対して全プレイヤー分のセーブデータが
送られてくるので間違いなく処理できない
そこで、お金やアイテムなどを暗号通貨の仕組み
(具体的にはProof of Workやブロックチェーン技術)を
使って各管理担当を適当に割り振って個別管理したらどうか
というのも考えたのだが、多分お金だけなら管理できるが
アイテムなどは敵からのドロップ、アイテムとお金の交換、
素材としての消費など秒間あたり大量のトランザクションが
発生して処理しきれないのではないかという問題があって
お手上げ状態です
PureP2Pを使ってこれらの問題を解決できるうまい方法はないかね?
そもそもPureP2Pを使おうって発想自体が間違いなんだろうか? Pure諦めれば楽になるよねw
理想を突き進めて解にたどり着いて欲しいのは山々だけども
ヒントになるのはクラウド系のNoSQL、DynamoDBやDatastoreの併用かなと思う
これらは応答は遅いけど課金で無限にスケールするよ、って吹聴してる。まあ課金モデルが出来てるなら安いと感じるのでは。遅いけどね。
オンプレミスなら取り敢えずNoSQL系を試して欲しい
俺はredis推しだけど、極端な話MySQL互換のAWS auroraなんか挟むだけでもドロップへの悩みはなくなるよね
PureなP2Pは管理できないって事と等価なんだよなぁ。。バグ崩壊やチートに強いかっていうと管理権限持てないからキツいよ
でもロマンだよねw 遅くなった。M2
達成:ユニークIDとパスワードを発行するシステムを作る
達成:それらを保存するテーブルを作る
達成:daoを作成して実際に入出力できるようにする
達成:クライアント側でもUIDとPASSを保存できるようにする
達成:クライアント側の値を使ってログインができるようにする
達成:簡単なエラーハンドリングを作る
もちろんこれらが動くようにエントリポイントやルータは作った
色々モジュールをつなげるだから簡単だったけど、なかなか時間が取れない
次回M3 期日9月12日
・ログ出力のシステムを作る
・APIのひな形を作る
・メンテナンスモードを作って入れるようにする
時間が見積れないので、次回は少し軽めで 乙
システマチックに淡々とこなしてるの凄いと思う
エターナる心配なさそうだし、成果物の公開を期待してます
なんか絡みたいな
責務負いたくないのでクリエイティブコモンズの一番広範なやつ(商用改変ok)な素材が欲しかったら言ってくれ
絡めたら絡む
期待しないでね ありがとう。いずれ完成の目途がたったらお願いするよ M3
達成:ログ出力のシステムを作る
達成:APIのひな形を作る
達成?:メンテナンスモードを作って入れるようにする
仮想環境がバグって焦った
メンテナンスモードは、ホワイトリスト以外を拒否するようにはしたけど、
考えてみればAPサーバしか作ってないし、これがメンテナンスモードなのかどうか……
次回 M4
・マスタデータをJSONで出力するツール(エクセル?)を作る
・データを監視して変更時に読み込めるようにする
・テスト用に経験値テーブルを作る
・時間で適当にレベルアップするアプリを作る M4
達成:マスタデータをJSONで出力するツール(エクセル?)を作る
達成:データを監視して変更時に読み込めるようにする
達成:テスト用に経験値テーブルを作る
達成:時間で適当にレベルアップするアプリを作る
動くようになると単純でも面白さが出てくる
次回 M5 期日9月26日
・クライアントの表示を多少マシにする
・修行や内政のような適当なコマンドを追加する 遅くなった
達成:クライアントの表示を多少マシにする
達成:修行や内政のような適当なコマンドを追加する
M6 中期目標1 期日9月30日
・仮想ではないサーバ環境にデプロイする
ただ、手元に余りPCが手に入ったので、VPSを契約するのはもう少し先延ばし
今後はサーバマシンを動かしてネットで動作確認しながら作っていきたい スマホのMMOの更新を避ける事できねえかな くそー 2016年に世界で最も遊ばれたMMORPG10位〜4位
http://youtubelib.com/mom-rpg-games10
2.1 10位. スター・ウォーズ:オールド・リパブリック (Star Wars: The Old Republic)
2.2 9位.ファイナルファンタジーXI(Final Fantasy XI)
2.3 8位. イブオンライン(EVE Online)
2.4 7位. ルーンスケープ(RuneScape)
2.5 6位. 黒い砂漠(Black Desert Online)
2.6 5位. ブレイドアンドソウル(Blade & Soul)
2.7 4位. ギルドウォーズ2(Guild Wars 2)
3 気になるベスト3位は?MMORPG3位〜1位
??????? 【2017年度版】世界で最も人口の多いMMORPG10選.
http://youtubelib.com/onkine-population
1.1 1.エルダースクロールオンライン
1.2 2.ブレイドアンドソウル
1.3 3.ギルドウォーズ2
1.4 4.黒い砂漠.オンライン
1.5 5.ファイナルファンタジーXIV
・
・
・
・
・ 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
WI1NW1Y8FR ■ このスレッドは過去ログ倉庫に格納されています