スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

オンラインゲームを作りたいので、学習を始めてみた。

オンラインゲームを作りたいと思ったので、
色々とネットや、本屋などを回ってみました。

そしたら、
WinSock2とか、
node.jsとか、
JAVAとか、
ActiveXとか、
HSPとか、
Perlとか、
ActionScriptとか、
なんか色々とヒットしたのですが、結局何だか良く分からない。

ネットの通信の根本のイメージがつかめてないので、
"マスタリングTCP/IP"(書籍)とかの、ネット関連の本でも読もうかと思う。

とりあえずvisual studioで使えるらしいWinSock2とやらで
ソケットプログラミングをやってみようかと考え中。


【追記】
ソケットプログラミングって実は大学でやった記憶があるんですが、
その頃は大学2年生で、ロクにC言語も扱えないレベルだったので、
内容を良く覚えていない・・・。
(ソースコード丸写しレベル。)

誰かが、PCの電源を落とした後も、半永久的に、無限にメッセージを送信し続ける
ウイルスみたいなプログラムを組んでたのは印象に残ってるんですけども。
(おかげで、大学側のサーバがパンクしてました。
スポンサーサイト

テーマ : 日記 - ジャンル : 日記

コメント

お久しぶりです。

ご無沙汰してます。
1年ほど前にスキンメッシュについて教えてもらった者です。
覚えていますでしょうか??

スキンメッシュの描画速度が遅くて、シェーダを扱わなくてはならないということがわかり、だんだんと違った分野に興味を持つようになってしまい、中途半端な状態となっています。(ですが、3Dの自作ライブラリのオープンソース化に振り切ってしまいました。。)
それで、現在はOS開発に興味を持っています。

オンラインゲームに興味を持っていらっしゃるとのことですが、私もちょっと前に自宅のLAN内でちょっとしたネットワークゲームを作ったことがありました。
そのときはWinSock2での実装でした。
で作った結果、反応が遅い。。。
リアルタイムに動くゲームだと、なかなか難しいですよね。
キーボードのキーコードを送信するか、現在の状況を送信するかとか。
前者だと転送量が少ないが、パケットロスすると修正が困難で、後者は転送量は多いとか、1対1のゲームでもなかなか考えさせられます。
オンラインゲームとか、通信対戦とかってどのように実装されてるのでしょうね。。

No title

お久しぶりです! 覚えておりますv-290
( コメントを投稿する方が何百人、何千人いる訳ではないので、
誰が誰やら分からなくなるという状態にはなっておりませぬ(・ω・)+  )

HPの方は 以前の状態よりも更新されていらっしゃるようですねv-411
自分も更新を頑張ろうと思います・・・!(`・ω・´;)

そして、スキンメッシュは遅いですね(++)

むしろ、スキンメッシュじゃなくても、
32×32くらいの立方体のオブジェクトを、
縦17横24 (合計408個)表示
させただけも
動きがカクカクし始めます。
(自分のPC側に問題があるかもしれませんが)

ネットワーク通信も同様に、速度がよろしくなかったのですかe-260

パケットロスや同期などの問題は非常に厄介ですね。
(それでもオンラインゲームが存在しているので、何らかの対処法はあるとは思うのですが・・・。)

ひとまず、今 自分は「オンラインゲームを支える技術」とかいう本を購入して読んでます。
色々とオンラインゲームの問題点の解決法などが書いてあったりして、
役に立ちそうだと思いましたv-290

この本を参考にしながら、ちょっと作ってみようと思いますe-76

【参考URL】
 http://www.amazon.co.jp/dp/4774145807/

No title

ネットワークゲームは、きちんと基礎知識がない状態で作ったのでパフォーマンスが出なかったのかもしれませんね。

「○○を支える技術」という系列の本を前にも読んだことがあるのですが、良書ですよね~。
全体的な知識を身につけられるところがいいですよね。
完成したら、是非遊ばせてください!

立方体の件ですが、それは頂点を常に移動させているのですか?それとも止まっている?
私が知っているゲームでは、OpenGLを用いて4000個程度表示+移動させても普通に動作していました。(シェーダを使っていたかどうかまではわかりませんが。)

No title

結構 細かい事まで載っていて役に立ちますよねv-290
完成したら公開したいと思います! (`・ω・´)+

立方体の件ですが、
立方体 + キャラの動きになります。

マリオで例えると、こんな感じです。
------------------------------- 
立方体 = ブロック
キャラ = マリオ

------------------------------- 
キャラの動きは「→」を押したら右に1ドット動くという単純な物だったので、
負荷がかかるような処理ではなかったと思います。

遅かったのは、
DirectXの直接的な関数の使用が非常に面倒くさかったので、
間に仲介するクラスを挟んでいたのが原因かもしれません。
--------------------------------------------------
MyDrawObject(int x, int y, int handle) ;
//座標の場所に画像を表示してくれる関数
--------------------------------------------------
↑上記のように面倒くさい処理を隠蔽する関数を作り、
それを呼び出す形式にしていました。

ともかく、また今度 負荷テストでもやってみようかなと思ってますv-411
コメントの投稿
管理者にだけ表示を許可する



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。