トップページgamedev
347コメント148KB

MMORPGをつくるお!

■ このスレッドは過去ログ倉庫に格納されています
0001名無しXPG ◆dffLbwc7XE 2005/12/31(土) 10:55:16ID:q9idSAp5
MMORPGを作ります。
概要はジャンル3DMMORPG・言語C++・クライアントのOSはWindowsのみです。
手伝ってくれる人は募集してるかもです。
まだまだ開発の極初期段階なので、しばらくは>>1の日記になると思われますがご了承ください><
0060名前は開発中のものです。2006/01/03(火) 00:21:30ID:qj0A7GfI
>>59
そりゃムフフな画像でしょw
0061名前は開発中のものです。2006/01/03(火) 03:11:10ID:O0mczT7n
よくわからんけど
姉は建築士並みの完成度になることを祈ります
頑張ってください
0062名無しXPG ◆dffLbwc7XE 2006/01/04(水) 01:09:17ID:hJI/6BH3
今日はGUIの設計、(設定画面兼ログイン画面とクリックイベントの処理)
D3DXとおさらばするために各種変換行列の処理と4元数の処理、
D3DXを使わないでテクスチャを読み込むための処理の実装をしました。
D3DXをリンクしないでコンパイルできるようになったので、次回からはD3DXの更新ファイルを添付しなくてよくなります。

なかなかチャットができるようにならないなー。
GUIの設計にもう1日くらいかかりそうです。
0063名無しXPG ◆dffLbwc7XE 2006/01/04(水) 01:25:50ID:hJI/6BH3
他にも何かしてたような気がしたと思ったら、
今日はゲーム内容の種族とスキルシステムについて考えたんでした。
それと死んだ場合のペナルティについても。(というかずいぶん前から構想してた)
チャットができるようにまで進んだら色々書くつもりです。

あと、インテルのYonahが発表されましたね。
デュアルコア Yonah 2つでサーバーが組めたら最高なんですが。
0064名無しXPG ◆dffLbwc7XE 2006/01/05(木) 00:57:58ID:hvlx7DQK
GUIはまだ完成しません。orz
今日やったことは、GUI設計の続き、テクスチャ読み込み関数を完成、4元数関数のバグ修正、その他。
とりあえず起動できない問題を修正したかもしれないプログラムを公開しときます。
ttp://www.geocities.com/nanashixpg/vo20060105.zip
ttp://nanashixpg.mydns.jp/vo20060105.zip
注意事項
・このプログラムを実行して何が起きても私は知りません。
・Windows9x系のOSには対応してないので実行しない方が無難です。
・プログラム実行中Sキーは決して押さないでください。私のアドレスへの100万パケットの爆撃が始まります。
・Enterキーを押すと入力モードになりますが、自己ログ表示機能くらいしか実装してません。
・入力モード中にEnterキーを押すと入力した内容が私のアドレスへ転送されますが、特に意味はありません。
・表示してる内容に特に意味はありません。
・Escキーを押すと終了します。
・内部スレッドがうまく終了しなかった場合はタスクマネージャーで強制終了させてください。
・全てDirect3Dで表示しているのでDirect3D9が使用できない環境では正常に機能しません。
・他にも罠があるかも知れません。
0065名前は開発中のものです。2006/01/05(木) 01:11:20ID:v2a8BuLC
>>64
エラーでますた
環境
------------------
System Information
------------------
Time of this report: 1/5/2006, 01:09:35
Operating System: Windows 2000 Professional (5.0, Build 2195) Service Pack 4
Language: Japanese (Regional Setting: Japanese)
System Manufacturer: INTEL
System Model: P4I45PE.
BIOS: Default System BIOS
Processor: Intel(R) Celeron(R) CPU 1.70GHz, ~1.7GHz
Memory: 1024MB RAM
Page File: 553MB used, 1140MB available
DirectX Version: DirectX 9.0c (4.09.0000.0904)
DX Setup Parameters: Not found
DxDiag Version: 5.03.0001.0904 32bit Unicode
0066名前は開発中のものです。2006/01/05(木) 01:12:39ID:v2a8BuLC
--------------------
DirectX Debug Levels
--------------------
Direct3D: 0/4 (n/a)
DirectDraw: 0/4 (retail)
DirectInput: 0/5 (n/a)
DirectMusic: 0/5 (n/a)
DirectPlay: 0/9 (retail)
DirectSound: 0/5 (retail)
DirectShow: 0/6 (retail)

0067名前は開発中のものです。2006/01/05(木) 01:13:26ID:v2a8BuLC
---------------
Display Devices
---------------
Card name: NVIDIA GeForce FX 5600
Manufacturer: NVIDIA
Chip type: GeForce FX 5600
DAC type: Integrated RAMDAC
Device Key: Enum\PCI\VEN_10DE&DEV_0312&SUBSYS_00000000&REV_A1
Display Memory: 128.0 MB
Current Mode: 1280 x 1024 (32 bit) (60Hz)
Monitor: Monitor Max Res: 1600,1200
Driver Name: nv4_disp.dll
Driver Version: 6.14.0010.7772 (English)
DDI Version: 9 (or higher)
Driver Attributes: Final Retail
Driver Date/Size: 6/15/2005 17:20:00, 3896320 bytes
WHQL Logo'd: Yes
WHQL Date Stamp: n/a
VDD: Mini VDD: nv4_mini.sys
Mini VDD Date: 6/15/2005 17:20:00, 3200256 bytes
Device Identifier: {D7B71E3E-4052-11CF-EC7D-0A2000C2CB35}
Vendor ID: 0x10DE
Device ID: 0x0312
SubSys ID: 0x00000000
Revision ID: 0x00A1
Revision ID: 0x00A1
0068名無しXPG ◆dffLbwc7XE 2006/01/05(木) 01:28:13ID:hvlx7DQK
>>64
報告ありがとうございます。
またエラーですかー。orz

ちなみにインテルオンボードのマシンで実行してみたところ、起動はできたものの、
テクスチャが読み込まれず、そのままエラーが出てしまいました。

もう1回修正してみます。orz
0069名無しXPG ◆dffLbwc7XE 2006/01/05(木) 03:39:51ID:hvlx7DQK
こちらのインテルオンボードマシンでのエラー原因が判明。
QueryPerformanceFrequencyで取得した更新周期を1Gで割った数が0になるからでした。orz
これで割り算してタイミングを取ってるので、0の除算でエラーが出るのでした。
GPUは関係なかったようです。しかしまだテクスチャが表示できない原因は謎のままです。
0070名無しXPG ◆dffLbwc7XE 2006/01/07(土) 01:18:39ID:f+ApONh7
今日もGUIの設計。もうしばらくGUIの設計に時間がかかりそうです。
とりあえず今日も起動できない問題を修正したかもしれないプログラムを公開しときます。
終了ウインドウだけ綺麗になってます。
ttp://www.geocities.com/nanashixpg/vo20060107.zip
ttp://nanashixpg.mydns.jp/vo20060107.zip
注意事項
・このプログラムを実行して何が起きても私は知りません。
・Windows9x系のOSには対応してないので実行しない方が無難です。
・プログラム実行中Sキーは決して押さないでください。私のアドレスへの100万パケットの爆撃が始まります。
・Enterキーを押すと入力モードになりますが、自己ログ表示機能くらいしか実装してません。
・入力モード中にEnterキーを押すと入力した内容が私のアドレスへ転送されますが、特に意味はありません。
・表示してる内容に特に意味はありません。
・Escキーを押すと終了します。
・内部スレッドがうまく終了しなかった場合はタスクマネージャーで強制終了させてください。
・全てDirect3Dで表示しているのでDirect3D9が使用できない環境では正常に機能しません。
・他にも罠があるかも知れません。
0071名前は開発中のものです。2006/01/07(土) 08:54:51ID:LH/NWXm0
>>70
残念だがエラー。
「例外 unknown software expectiom (0x0000001d)がアプリケーションの0x00404ae0で発生しました。」

Operating System: Windows XP Home Edition (5.1, Build 2600) Service Pack 2 (2600.xpsp_sp2_gdr.050
Processor: AMD Athlon(tm) XP 2600+, MMX, 3DNow, ~1.9GHz
Memory: 1016MB RAM
Page File: 322MB used, 1367MB available

Card name: NVIDIA GeForce FX 5900
Manufacturer: NVIDIA
Chip type: GeForce FX 5900
0072名前は開発中のものです。2006/01/07(土) 09:28:17ID:Io1YTLnB
↓終始こんな画面なんだけど合ってる?
http://kjm.kir.jp/pc/index.php?p=12013.jpg

Operating System: Windows XP Professional (5.1, Build 2600) Service Pack 2
Processor: Intel(R) Pentium(R) 4 CPU 2.60GHz
Memory: 1024MB RAM
Page File: 696MB used, 1765MB available
DirectX Version: DirectX 9.0c (4.09.0000.0904)

Manufacturer: ATI Technologies Inc.
Chip type: RADEON 9800 PRO AGP
Display Memory: 128.0 MB
Current Mode: 1280 x 1024 (32 bit) (60Hz)
Driver Name: ati2dvag.dll
0073名前は開発中のものです。2006/01/07(土) 12:07:05ID:cT72qLk6
こっちもポリゴンが回転してるのみ
http://gamdev.org/up/img/4283.jpg
終了ダイアログ?もこんなふうになる
http://gamdev.org/up/img/4284.jpg
0074名無しXPG ◆dffLbwc7XE 2006/01/07(土) 14:59:00ID:f+ApONh7
報告ありがとうございます。
>>71
またエラーですか。orz
>>72 テクスチャが読み込めていない点以外は正常のようです。
>>73 3Dポリゴンとテクスチャ以外は正常のようです。

やっぱりテクスチャの読み込みか表示に問題あるみたいですね・・・。
あとエラーも出るし。

ちなみに開発環境は
Operating System: Windows XP Home Edition (5.1, Build 2600) Service Pack 2 (2600.xpsp_sp2_gdr.050301-1519)
Processor: Intel(R) Pentium(R) 4 CPU 2.40GHz (2 CPUs)
Memory: 1534MB RAM
Page File: 214MB used, 5268MB available
DirectX Version: DirectX 9.0c (4.09.0000.0904)

Manufacturer: NVIDIA
Chip type: GeForce 6800
Display Memory: 128.0 MB
Current Mode: 1280 x 1024 (32 bit) (60Hz)
Driver Version: 6.14.0010.8194 (English)

>>71さんとの相違点はCPUくらいですか。
CPUの違いが原因でエラー?まさかQueryPerformanceFrequencyが低い値を返すとか・・・。
>>72さんとの相違点はGPU。
テクスチャ以外は正常なんですが、GeForceとRADEONに仕様の差があるんですかね。
他にも原因があるかもですが。

テクスチャ正確には、ただ表示してるのではなく、DXT1で白黒で圧縮して、使用時にDOTPRODUCT3でRチャンネルをαチャンネルに移動して、頂点のαチャンネルと合成して使用しています。
普通に表示する場合はどうなるかとかいろいろ試してみます。

とにかくありがとうでした。
0075名前は開発中のものです。2006/01/07(土) 15:48:32ID:g5BAJqEs
D3DFMT_A8サーフェイスにαチャンネルだけを読み込んで扱った方がよくない?
DOTPRODUCT3みたいな面倒な事しなくて済むよ
0076名無しXPG ◆dffLbwc7XE 2006/01/07(土) 15:59:39ID:f+ApONh7
QueryPerformanceFrequencyが低い値を返すかも知れない環境で起きてるかも知れない問題を修正したプログラムです。
(CurrentCount.QuadPart - LastCount) / (Frequency.QuadPart / 1000000);

(CurrentCount.QuadPart - LastCount) * 1000 / (Frequency.QuadPart / 1000 ? Frequency.QuadPart / 1000 : 1);
に修正しました。
ttp://www.geocities.com/nanashixpg/vo20060107a.zip
ttp://nanashixpg.mydns.jp/vo20060107a.zip
注意事項
・このプログラムを実行して何が起きても私は知りません。
・Windows9x系のOSには対応してないので実行しない方が無難です。
・プログラム実行中Sキーは決して押さないでください。私のアドレスへの100万パケットの爆撃が始まります。
・Enterキーを押すと入力モードになりますが、自己ログ表示機能くらいしか実装してません。
・入力モード中にEnterキーを押すと入力した内容が私のアドレスへ転送されますが、特に意味はありません。
・表示してる内容に特に意味はありません。
・Escキーを押すと終了します。
・内部スレッドがうまく終了しなかった場合はタスクマネージャーで強制終了させてください。
・全てDirect3Dで表示しているのでDirect3D9が使用できない環境では正常に機能しません。
・他にも罠があるかも知れません。
0077名無しXPG ◆dffLbwc7XE 2006/01/07(土) 16:02:49ID:f+ApONh7
>>75
D3DFMT_A8は対応してないGPUがものすごく多いんです。orz
あとDXT1だと1ピクセル4bitなので、テクスチャサイズを半分にできます。
0078名前は開発中のものです。2006/01/07(土) 16:07:43ID:g5BAJqEs
>>77
うーむ、PCゲーム開発は大変だなぁ
0079名無しXPG ◆dffLbwc7XE 2006/01/07(土) 17:21:36ID:f+ApONh7
こちらのインテルオンボードマシンで、普通にテクスチャを表示するだけにしたところ、
表示できました。
テクスチャ読み込みに失敗しているわけではないようです。
0080名前は開発中のものです。2006/01/07(土) 17:37:09ID:p8En2U2t
>>79
できたよ
0081名無しXPG ◆dffLbwc7XE 2006/01/07(土) 19:07:07ID:f+ApONh7
テクスチャステージのD3DTOP_DOTPRODUCT3とD3DTA_TFACTORの挙動が怪しいっぽいです。
D3DDevice->SetTexture(0, D3DTextureFont);
D3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG2);
D3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_CURRENT);
D3DDevice->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_SELECTARG2);
D3DDevice->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
D3DDevice->SetRenderState(D3DRS_TEXTUREFACTOR, 0x00ff0000);
D3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_DOTPRODUCT3);
D3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
D3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TFACTOR);
D3DDevice->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
D3DDevice->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_CURRENT);
D3DDevice->SetTextureStageState(1, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);

インテルオンボード(865G)で色々試してみたところ、どうやってもD3DTOP_DOTPRODUCT3で、R成分をα成分に動かせないっぽいです・・・。
もっと新しいオンボードだとどうなるのか分かりませんが、D3DTOP_DOTPRODUCT3は使わないことにします。
0082名無しXPG ◆dffLbwc7XE 2006/01/07(土) 21:24:30ID:f+ApONh7
テクスチャが表示できない問題を修正したかもしれないプログラムです。
ttp://www.geocities.com/nanashixpg/vo20060107b.zip
ttp://nanashixpg.mydns.jp/vo20060107b.zip
注意事項
・このプログラムを実行して何が起きても私は知りません。
・Windows9x系のOSには対応してないので実行しない方が無難です。
・プログラム実行中Sキーは決して押さないでください。私のアドレスへの100万パケットの爆撃が始まります。
・Enterキーを押すと入力モードになりますが、自己ログ表示機能くらいしか実装してません。
・入力モード中にEnterキーを押すと入力した内容が私のアドレスへ転送されますが、特に意味はありません。
・表示してる内容に特に意味はありません。
・Escキーを押すと終了します。
・内部スレッドがうまく終了しなかった場合はタスクマネージャーで強制終了させてください。
・全てDirect3Dで表示しているのでDirect3D9が使用できない環境では正常に機能しません。
・他にも罠があるかも知れません。

フォーマットをDXT1からDXT5にして、普通にαチャンネルを持たせました。
やっぱりというか何と言うか1ピクセル4bitから8bitになったのでファイルサイズが増えてます。
0083名前は開発中のものです。2006/01/07(土) 21:38:54ID:taZQWV6G
>>82
動作しますた!
008472の人2006/01/07(土) 21:42:20ID:g5BAJqEs
>>82
RADEONでも動作しますた!
http://gamdev.org/up/img/4293.jpg
0085名前は開発中のものです。2006/01/07(土) 21:47:19ID:taZQWV6G
>>84
ぬおー
うちだと
1・三角にそんなグラデーションかかってなくて真っ黒
2・解像度表示の白い四角の枠がもっと縦長で上が長い

ですた
0086名無しXPG ◆dffLbwc7XE 2006/01/07(土) 22:11:44ID:f+ApONh7
報告ありがとうございます。
やっと初期化できるようになりましたね。orz
>>85
>1・三角にそんなグラデーションかかってなくて真っ黒
3Dオブジェクトの表示にまだ何かバグがあるっぽいです。こちらのインテルオンボードだと真っ黒なポリゴンすら出てきません。
>2・解像度表示の白い四角の枠がもっと縦長で上が長い
多分対応してる解像度が多いだけだと思います。
0087名前は開発中のものです。2006/01/07(土) 22:18:41ID:2AonS+wv
一つしか表示されないのに縦長だけど。
0088名無しXPG ◆dffLbwc7XE 2006/01/07(土) 22:25:01ID:f+ApONh7
>>87
うーんバグってるっぽいですねー。
多分1つのウインドウで表示できる文字数オーバーしてるっぽいです。
0089名無しXPG ◆dffLbwc7XE 2006/01/07(土) 22:33:24ID:f+ApONh7
解像度表示ウインドウと他の文字を同じウインドウとして処理してたので、簡単に文字数オーバーしたっぽいです。
ちなみに1ウインドウあたり256文字にしてます。ちょっと少ないかな・・・。
0090名前は開発中のものです。2006/01/09(月) 00:32:59ID:R8IoRsnG
試してみたけど
動かない・・・・・

pen4 1.6
radon 7500
DX9.0c

画面真っ黒のまま
終了もできんw
0091名無しXPG ◆dffLbwc7XE 2006/01/09(月) 01:13:56ID:Fma2JAH1
今日やったことは、デバイスロスト対策。
ウインドウモード時は簡単に対処できたのですが、
フルスクリーン時はマルチスレッドと相性が悪く、安定させるまで死ぬほど時間がかかりました。orz
でもまだちょっと不安定だったり・・・。

それから、インテルオンボードで3Dポリゴンが表示できない問題の解決。
頂点バッファが使用できないのかと思ったのですが、色々試して実はインデックスバッファに32bit値が使えなかっただけという落ち。

それから、同インテルオンボードで異常に重くなる問題の解決。
これはフォントファイルに使っている2048x2048のテクスチャに対応しておらず、実行時にリサイズしまくっていたためでした。
2048に対応してないのに2048対応を謳わないでほしい・・・。

まあゲームの中身は全然進歩してないわけですが。orz

>>90
報告ありがとうございます。
何で真っ黒なんでしょうねー。ハード的には対応してると思うのですが。
すみませんがタスクマネージャーで終了してください。
0092名前は開発中のものです。2006/01/09(月) 01:24:16ID:gvYBdubK
うちでは起動してますよ 
ただしメニューから終わらせると異常終了のダイアログが
クローズボックスで閉じると問題なし

nforce 3 250 + Athlon 64(Socket 754) + RADEON 9800 Pro

しかしゲームプログラミングってほんと大変だな・・
0093名無しXPG ◆dffLbwc7XE 2006/01/10(火) 02:22:26ID:CDj6YrvR
今日もGUIの設計。あんまり進んでません。
ついにフォントの使用許可が下りました。次のバージョンからはY.Ozフォントになります。
0094名無しXPG ◆dffLbwc7XE 2006/01/14(土) 01:10:14ID:ctHS06hI
なかなかGUIができません。orz
とりあえず今の状況。
ttp://www.geocities.com/nanashixpg/vo20060114.jpg
まだ機能が未完成です。
0095名無しXPG ◆dffLbwc7XE 2006/01/16(月) 01:48:11ID:LUDovloi
今日もひたすらGUIの設計。^^;
やっと内部仕様が決まったので、ひたすらクラス化しております。
0096名前は開発中のものです。2006/01/20(金) 14:30:55ID:z9YkKdRz
保守
0097名前は開発中のものです。2006/02/05(日) 14:33:24ID:9PpDvz4K
ほす
0098名前は開発中のものです。2006/02/16(木) 23:13:19ID:HgwrBgLl
ほせ
0099名前は開発中のものです。2006/02/17(金) 01:05:35ID:oA6tlG6M
ガンガン実装進んでるのか、逃げたのかだけでも言ってくれ
0100名無しXPG ◆NhNPesQ6/M 2006/02/22(水) 15:49:20ID:RMO9ur5L
>>99
多用で、もうしばらくしたら、再開します。
何か更新したらアゲますので、それまでウォッチしないで待っててください。^^;
0101名無しXPG ◆dffLbwc7XE 2006/02/22(水) 15:50:17ID:RMO9ur5L
トリップ間違え。
0102107 ◆a6JcKaYOUI 2006/02/22(水) 23:47:18ID:flZ45hqh
待ってますw
0103XPG ◆dffLbwc7XE 2006/03/03(金) 02:30:56ID:+zVYHQBW
保守
0104名無しXPG ◆dffLbwc7XE 2006/03/10(金) 14:44:31ID:qn6WiK0s
ぼちぼち再開。
GUIの入力フィールド(ここで詰まってた)がとりあえず完成。
スレッド間の通信がごちゃごちゃになってたので、クラス化しつつ作り直す。(←今ここ)
あと、今までクラス化してなかったところを全部クラス化。
それからGUIの実装にC++の機能をバリバリ使って作り直す予定。
でもnewとdeleteを繰り返す設計にはちょっと不安があったり。
0105107 ◆a6JcKaYOUI 2006/03/11(土) 02:34:07ID:BgvmPltm
+   +
  ∧_∧  +
 (0゚・∀・)   ワクワクテカテカ
 (0゚∪ ∪ +        
 と__)__) +
0106名無しXPG ◆dffLbwc7XE 2006/03/15(水) 13:06:49ID:PtQ1eqgn
保守
0107名無しXPG ◆dffLbwc7XE 2006/03/15(水) 19:04:40ID:PtQ1eqgn
どうにかnewとdeleteを繰り返さない設計にできましたが、この先どうなることやら。
というか全然進んでなーい。いや進んでるけど、三歩進んで二歩下がるみたいな。
いつまでGUI作ってるんだろう・・・。
0108名前は開発中のものです。2006/03/16(木) 00:15:50ID:muMln6nM
たまたまこのスレ迷い込んできました。
がんばってね。2chからおもしろいゲームが生まれることを願って。
0109名無しXPG ◆dffLbwc7XE 2006/03/21(火) 00:18:13ID:gvQiYFXU
>>108
ありがとうございます。
0110名無しXPG ◆dffLbwc7XE 2006/03/30(木) 00:25:15ID:+9txOCzF
ついにGUI関連のクラスが完成。
めちゃくちゃ大変だった;;
もうIMEとかエディットコントロールとか日本語処理とか触りたくないw

GUIを作りながらいろいろ作り直したので、ほとんど全てのコードを作り直したんじゃないだろうか。
コード量も1000行ちょっとだったのが5000行超に増加。(実効行数はもっと少ないけど)

今は1月から放置してた通信関連コードとサーバーのコードを書いてます。
それと進行管理用のクラスも作ってます。

3D関連、モデルとかアニメーションとか雲描画とかが全く手付かずなのが気になるところ。
というかモデルのフォーマットすら決まってない!モデリングの知識少なすorz
0111名前は開発中のものです。2006/03/30(木) 03:42:25ID:naVk3D/L
おぉ、俺にはよくわからんが頑張ってくださいな
0112名前は開発中のものです。2006/03/30(木) 14:44:49ID:BzydO9qR
がんばってください。
0113名前は開発中のものです。2006/03/31(金) 08:56:30ID:8LyniwSw
途中のコードうpしてくれたら面白いんだが
0114名無しXPG ◆dffLbwc7XE 2006/03/31(金) 11:30:21ID:E/b3kspf
ちょっとした仕様の欠陥が見つかって(直したけど)今日もGUI関連のコード書いてましたorz
>>113
アップするんで、レビューしてくらはいw
0115名無しXPG ◆dffLbwc7XE 2006/03/31(金) 11:56:09ID:E/b3kspf
ttp://www.geocities.com/nanashixpg/so20060331source.zip(実行ファイル付)
注意事項と説明
・このプログラムを実行して何が起きても私は知りません。
・Windows9x系のOSには対応してないので実行しない方が無難です。
・Escキーを押すと終了ウインドウが開きます。
・Print Screenキーを押すとスクリーンショットが保存されます。
・ログインボタンなどを押しても何も起きないのは仕様です。
・VC++ 2005 + DirectX 9.0cでビルドできます。
・ほとんどのファイルが作りかけなので、ファイルが空でもがっかりしないでください。
・作者はC++初心者なので突っ込みはやさしく(ぉ
・内部スレッドがうまく終了しなかった場合はタスクマネージャーで強制終了させてください。
・全てDirect3Dで表示しているのでDirect3D9が使用できない環境では正常に機能しません。
・他にも罠があるかも知れません。
0116名無しXPG ◆dffLbwc7XE 2006/03/31(金) 11:58:43ID:E/b3kspf
・コメントがほとんどないけどクラス名とか関数名で判断してください。
・命名が適切じゃなくても何とか解読してください。
0117名無しXPG ◆dffLbwc7XE 2006/03/31(金) 12:06:07ID:E/b3kspf
ゲームタイトルはSphere Onlineに改称しました。
その名の通り、ゲーム世界は球面にします。
けど、技術的に不可能だったらやっぱり平面にします。
0118名無しXPG ◆dffLbwc7XE 2006/03/32(土) 14:19:08ID:tmwx2GXP
パケットの圧縮にDeflate/Inflateを使うことにします。
これはPNGの圧縮にも使われている方式で、ついでにPNG画像の保存も実装します。
でもフィルタリングとかめんどくさそうだなー。

球面世界のデータ構造は、頂点と辺と面と動的オブジェクト(何らかのリスト)で構成するのですが、
高さ情報は頂点に、地質情報は面に持たせるとして、
壁とか、木とか、岩とか、鉄とかの資源の情報をどこに持たせるかですね。
頂点と面の数が膨大になるので、とにかく1頂点・辺・面当たりのビット数を少なくしたい。
かといって何でも動的オブジェクトにしてしまうと、座標データを持たせなくてはいけないのでサイズが大きくなってしまう。
また、情報にアクセスする際に検索時間がかかってしまいます。
この選択は、その情報が世界にどの程度の密度で存在しているかにかかっています。(移動するものは動的オブジェクトしかありえませんが。)

ちなみに頂点数は40Mまたは160Mまたは640M、辺数は120Mまたは480Mまたは1920M、面数は80Mまたは320Mまたは1280Mを予定してます。
これは20面体の各面の3角形を4分割していくと、4倍ずつ(頂点数は(x-2)*4+2)に増えていくためで、
4分割を11回した時点で頂点数40M、辺数120M、面数80Mになります。
元の20面体の各面の1辺の長さを2kmとすれば、11分割した面の1辺の長さは大体1mになります。(球面に合わせて膨らませるためにもう少し長くなる)
12分割しても、4GB(OSによって使える領域が違いますが)のメモリ空間に何とか収まりそうなので、分解能は50cmくらいになるのかなー。
64ビットOSにすれば、もっとメモリ空間が使えるのですが、4GB超にするとハードの値段が一気に上がるので、今は4GBで考えています。
0119XPG ◆dffLbwc7XE 2006/03/32(土) 14:21:19ID:tmwx2GXP
でも、20面体の各面の1辺2km(外接球1周12km)の世界では狭すぎないかとか、分解能50cmでは大きすぎないかとか色々考えます。
1周12kmというと、人間の足で1時間あれば1周できてしまう広さです。
船などを使えばもっと早いでしょう。
世界の広さは、対人戦(戦争)になったときに影響が大きいです。
遠征が簡単すぎると、攻守のゲームバランスを取るのが難しくなるためです。
また、弱小勢力がひっそりと国を発展させるのも難しくなるでしょう。
まあ、その辺は建造物を隠す魔法などを考えているので、多少は狭くても平気でしょうけど。

(以下分解能について長々と書きましたが、あまりに長く、冗長なので省略。)
0120名無しXPG ◆dffLbwc7XE 2006/03/32(土) 14:25:45ID:tmwx2GXP
分解能については2mくらいでも十分かもしれません。
まあ、実装してみてから考えましょう。

ちなみに動的オブジェクトはこの分解能の影響を受けません。
0121名前は開発中のものです。2006/03/32(土) 16:12:11ID:+KuBMcP3
>>115
残念ながら、自分の環境
(Win2kPro,日本語,Athlon1GHz,512MB,DiorectX9.0c,GeForce4)では
アプリケーションエラーになります。

エラーが発生したため、Sphere Online.exeを終了します。プログラムをもう一度
開始する必要がありあます。

エラー ログを生成しています。

FWは反応しないので、ネット接続前だと思う。
あとログらしきものは見つけられなかった。
0122名無しXPG ◆dffLbwc7XE 2006/04/02(日) 04:32:11ID:lK9npD53
エラー出ましたかー。
可能性として考えられるのは、
・Windows 2000に含まれていないライブラリをリンクしてしまった。
→今のところ見当たらない。
・アセンブラで書いたコードがAthlonに対応してない。
→調べてみます。orz
0123名無しXPG ◆dffLbwc7XE 2006/04/02(日) 05:04:38ID:lK9npD53
・アセンブラで書いたコードがAthlonに対応してない。
は無さそうです。
原因不明。orz
0124名無しXPG ◆dffLbwc7XE 2006/04/05(水) 19:38:20ID:xzFTzhU2
PNGクラスを作りました。(といっても、メモリからの読み込み、ファイルへの書き出ししか実装してませんが。)
フィルター処理がめんどくさかったけど、(1ラインごとに全てのフィルターをかけた上で圧縮してサイズを比較して適当なフィルターを選ばないといけない。)
実装してみたら思ったよりきれいなコードになりました。

deflate/inflate処理に使うzlibは巨大だったので、必要な機能だけ書き直そうと思いましたが、
元から難しいコードな上、互換性のためにifdefなどのプリプロセッサ命令が多く、
コードの流れが複数のファイルで行ったり来たりしていて、読むだけでも大変だったので、
結局スタティックリンクしてしまいました。でも、処理の効率は良さそうだし、おまけでついてくるCRC32とgzipも役に立ちそうなのでこれでもいいかなと。
0125名無しXPG ◆dffLbwc7XE 2006/04/05(水) 19:39:33ID:xzFTzhU2
話は変わって、ゲーム内容について、だいぶ前に考えたことですが、
プレイヤーがログオフしても、キャラクターは残り続けます。
また、PK有りの世界を考えているので、ログオフしてる間に殺される可能性があります。
なので、ログオフするときには安全を考えなければなりません。

その代わり、ログオフするとキャラクターはNPC化し、あらかじめ指定しておいた行動をさせたり、
村が襲撃されたときに、他のキャラクターに援軍したりできます。
また、これを応用して、1プレイヤーで複数のキャラクターを同時に行動させることも可能になります。
プレイヤー数よりもキャラクター数がずっと多くなるわけです。
0126名無しXPG ◆dffLbwc7XE 2006/04/05(水) 19:49:31ID:xzFTzhU2
寿命と時間と食事について、

キャラクターには年齢と寿命を設けます。
具体的には、ゲーム内時間で、50歳を過ぎると不治の病にかかる確率が上がっていき、
不治の病にかかると、死の宣告をされ、ゲーム内時間で半年から数年以内に死んでしまいます。
もちろん不治の病にかかる確率を下げる方法なども設けます。(逆に上がる方法も。)

キャラクターの死は永久死を意味し、一度死ぬと復活することはできません。
ただし、転生を可能とし、前世までに到達したスキル値は、達成値として継承され、そのスキル値までは数十倍の速度で復帰できます。
また、転生の際には、別の人種や性別を選ぶこともできます。
0127名前は開発中のものです。2006/04/05(水) 19:53:25ID:uuXr/Snz
なかなか興味深いですが・・・
絵はどうするんでしょ?用意できるアテはあるのかい
個人で作るにはちっと理想がでかすぎないかと思った15の夜
0128名無しXPG ◆dffLbwc7XE 2006/04/05(水) 21:07:50ID:xzFTzhU2
食事してたので食事のことを書き忘れましたが、(死
キャラクターは食事をしないと行動できません。また、あまりに空腹が続くと飢え死にします。
採集だけでもある程度食事できますが、人口密度が上がると、農業を始めないと食料が足りなくなります。
また、種族ごとに必要な食料の量が違い、
戦闘は強いが必要な食料も多いゴリラのような種族。
戦闘は弱いが必要な食料が少ない小動物のような種族。
その間の人間のような種族。
を設けます。
0129名無しXPG ◆dffLbwc7XE 2006/04/05(水) 21:09:42ID:xzFTzhU2
>>127
絵、というかモデルは、誰か作ってくれる人がいたら、それを使い、
そうでなかったら、自分で作り、
うまく作れなかったら最悪、四角と丸だけで何とかします。

グラフィックはあまり拘りがないんで(ぉ
でも影表現とかはきっちりやりたいと思います。
0130名無しXPG ◆dffLbwc7XE 2006/04/05(水) 21:39:07ID:xzFTzhU2
個人で作るので、採算を考えなくていいというメリットがあります。
かける予算も極小ですが、収益を上げなくてもいい。(なのでユーザー離れを起こそうが関係ない)
サーバーのスケーラビリティーもあまり考える必要がありません。
せいぜい数百人が遊べれば十分であり、マルチサーバーで数千人規模が遊べるようにする必要もありません。
シングルサーバーで開発できると、いろんなものが効率良くなり、開発の難易度も下がり、サーバーの計算を濃密にできます。
(もちろんIntel CoreやAthlon64X2などで安価に高性能なサーバーが作れる今だからこそですが。)
それから、ゲーム設定が複雑になってもプログラミングの難易度への影響は案外小さいものです。
ただ、グラフィックに拘り出すと、作成労力は無尽蔵に増えると思います。
0131名無しXPG ◆dffLbwc7XE 2006/04/05(水) 21:46:57ID:xzFTzhU2
逆に、回線のコストはとても高いので、通信帯域を湯水のように使ったり、プレイ人数を大幅に増やしたりはできないと思います。
100M使えるといっても、使用率はかなり抑えないとプロバイダに規制されますから。
(数年経てば緩和されるだろうけど。)
0132名前は開発中のものです。2006/04/08(土) 04:42:09ID:H5XGkHlL
結構いいのができそうだから期待してる
がんばれー
0133名無しXPG ◆dffLbwc7XE 2006/04/09(日) 17:44:43ID:+tIPbcVw
>>132
ありがとうございます。
ガンダムのやつみたいにならないようにがんばります(ぉ
0134名前は開発中のものです。2006/04/11(火) 07:23:48ID:JAHRtw+U
ちゃんと作ってる人を見ると嬉しくなるね。頑張って!
作りたいものを作ればいいけど、アクション性など変に凝ると袋小路に入るから気をつけて。、

>>129
ポリゴンモデルをある程度の品質で無料で、それなりの数ってのは難しいかも。
単純化されたモデルも表現しだいでは凄く美しいよ。ピクミンとか。
0135名無しXPG ◆dffLbwc7XE 2006/04/15(土) 08:58:05ID:DdRT1sTv
>>134
アクション性は拘るかもしれません(ぉ
少なくともジャンプとか落下はできるようにしたいなと。

あとアクション性と関係があるか分かりませんが、衝突ダメージを設定したいです。
壁とかにぶつかると止まるだけでなく、ダメージを受けるようにするのです。
もちろんキャラ同士がぶつかったときもです。これを応用して、突進みたいな技ができたら面白そうですね。

モデルはどうなるか分かりませんが、単純化したモデルでいいものを表現できたらすばらしいですね。
0136名無しXPG ◆dffLbwc7XE 2006/04/16(日) 02:23:34ID:XdLD6hH3
すっかり忘れてましたが、UOのエミュ鯖で、SphereServerというのがありましたね。
動かしたことがあったのに忘れてましたorz
名前が被るけどまあいいかな・・・。
0137名無しXPG ◆dffLbwc7XE 2006/04/26(水) 23:32:04ID:9FUyEaSK
保守
0138名前は開発中のものです。2006/04/27(木) 00:27:12ID:9ldUosy/
訴えられる事はないとしても、SphereServerで検索しようとすると、
UO系の参照結果に埋没するんじゃないか?
0139名無しXPG ◆dffLbwc7XE 2006/05/04(木) 00:13:43ID:76q0uEA2
>>138
やっぱり弊害ありますね。
また思いつくかしたら名前変えることにします。

開発は今、全然順調じゃないですが・・・がんばります。
0140名前は開発中のものです。2006/05/04(木) 14:06:51ID:nyBrO9wq
>>125
うおおおお
俺と(少なくとも125については)全く同じ構想を持ってて、既に行動に移してる人がいる!なんかすげぇ嬉しい。
全然行動してない俺が同じなんて言ったら1に失礼だが、すげぇ応援してる!

君みたいな人とRPG製作についてゆっくり話せたら楽しいんだろうなぁ。
とにかくガンガレ!
0141名前は開発中のものです。2006/05/04(木) 17:29:15ID:4+QLzAFN
プレイヤーがログインしていない間、PCがなんかしているのはいいね。
ニートにバランス合わせなくて良いので、プレイヤーの間口が広がる。
むしろログインしていないほうが、成長するとか金が溜まるようにしておけば、
BOTも防止できる。

…なんか違う気もするがw
0142名前は開発中のものです。2006/05/04(木) 19:39:11ID:rr6Cb/1o
何かそれって凄いアイデアのような気がしてきた>ログインしてない方が略
上手くバランス取れば……うーん、でもそれが難しすぎるか?
0143名前は開発中のものです。2006/05/04(木) 20:16:53ID:4+QLzAFN
ログインしているときの効率に上限つければ楽勝でs(ry
0144名前は開発中のものです。2006/05/04(木) 20:41:42ID:nyBrO9wq
>>142
確かにバランスの取り方は難しいね。
ログインしてない方が成長するとか金溜まるかどうかはともかく、
非ログイン状態でも商売してたり生産してたり、何らかの修行してたり…

普段プレイヤーが繰り返し作業ばかりで飽きるようなことを非ログイン状態で済ませることができる。
さらに別キャラで一緒に作業してやることで、ログインしているキャラで商品を集めて
非ログインキャラでひたすら売るとかすると効率も上がったり…

仲の良い人の非ログインキャラと共同作業で、Aさんの非ログインキャラが生産で作ったものを納品してくれて
自分の非ログインキャラがひたすら売る。その間に二人は冒険したり材料を集めたり…
3キャラ作れるのなら、さらに別の非ログインキャラで材料集めもできたりするかもしれない。

まぁど非ログイン状態でどこまでの行動を可能にするかによって変わるけど、
ログインする意味がないほどにしちゃうと本末転倒だしなぁ。
キャラ数は制限は厳しい方がいいかもしれない。…2キャラとか。

そして
非ログインキャラ=NPC化したキャラが常に何らかの行動しているが、可能であるならば…
本当のNPCなんかも固定ではなくて、常に何らかの行動をしていて寿命もある。
常に世界は変動していて、一緒に行動したり、暫く時間を置いてログインすると知ってるNPCなんかいなかったり…


うはwwww俺妄想ばかりでキモスwwwwwwどんだけサーバー負荷かかるんだwwwww
っていうかあまり俺の妄想垂れ流しても邪魔になるのでスルーしてくだされ。
もう書かないよ(´・ω・`)
0145名前は開発中のものです。2006/05/04(木) 20:48:55ID:4+QLzAFN
更に、PC間でアイテム&金銭授受禁止にすれば楽勝でs(ry

どうみてもチャットゲーです。
本当にありがとうございました。
0146名無しXPG ◆dffLbwc7XE 2006/05/06(土) 10:08:14ID:1khE4eot
なんか妙にたくさんレスが付いてる^^;
ゲーム名は「Geosphere Online」にします。
どっかの商標じゃないことを祈りますw
0147名無しXPG ◆dffLbwc7XE 2006/05/06(土) 10:13:08ID:1khE4eot
ログインしてない間に何かしててくれるのはいいんですけど、
PKありの世界を考えていて、
なおかつ、キャラが死ぬとキャラロストなので、(元のスキル値まではすぐ戻る)
それが結構きついかもしれませんw
まあ、隠れ里みたいなところにいれば、安全かな。
0148名前は開発中のものです。2006/05/07(日) 19:54:01ID:2Ky1yKS5
なんか他者との交流がまったくない世界になりそうな希ガス
0149名前は開発中のものです。2006/05/07(日) 19:58:34ID:2Ky1yKS5
あと、ログイン中でもオートで動かせるモードがあるといいかもとオモタ

作業が忙しいMMOだと、会話してる暇なかったりするしね
0150名無しXPG ◆dffLbwc7XE 2006/05/14(日) 12:30:54ID:EYm6f1UY
保守
0151名前は開発中のものです。2006/05/15(月) 03:39:03ID:4K63w+Tr
今来産業
なんか完成したら面白そうなゲームですな
ところで現在の開発状況ってどんな感じですかねぇ?
もしプレイヤーキャラクターのデザインで困っているのならばどこの板で宣伝してみてはどうですか?
システムが面白そうなだけにキャラデザで萎えてしまうのもあれなのでこちらも協力したいのですが役に立ちませんし・・・
アイデアぐらいしか提供できませんが、製作の方頑張ってください
0152名無しXPG ◆dffLbwc7XE 2006/05/24(水) 21:53:25ID:jdqOKft8
保守
ベルアイル面白かった・・・
やっぱり家ほしいなと思いました。
宣伝はまだ先ですね。あまり進んでないのでorz
0153名無しXPG ◆dffLbwc7XE 2006/06/04(日) 07:40:53ID:D3fU24EI
保守
0154名無しXPG ◆dffLbwc7XE 2006/06/10(土) 06:35:51ID:U88/qWwm
保守
0155名前は開発中のものです。2006/06/10(土) 08:22:53ID:1jVugoFC
age
0156名前は開発中のものです。2006/06/10(土) 13:29:14ID:7o0GTMk6
保守
0157名前は開発中のものです。2006/06/11(日) 19:26:05ID:cAD1dXTE
期待阿部
0158名無し2006/06/11(日) 19:46:00ID:8qjeu+9i
すまんけど、いちいちあげんでくれ。
0159名前は開発中のものです。2006/06/11(日) 19:52:36ID:R8DR5Cnu
すいません次から気をつけます。
■ このスレッドは過去ログ倉庫に格納されています