みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ゲーム用Linuxサーバー構築

現在C言語でオンラインゲームの製作をしている者です。
ネットワーク部分を作成しようと思ったのですがあまりに知識がないために書籍や検索の方向すら分からない状態です。
自身で分かりうる範囲内で調べたところ私が目指す形態は「サーバー型」のネットワークシステムだと分かりました。
速度的にLinuxに軍配が上がるということを知り、ゲームを実行するOSはWindowsですがTCP/IPという規格のおかげでサーバーとクライアントのOSを一致させる必要がないようなので、オンラインゲーム用Linuxサーバーを構築することを目標としました。
(目標内容としては30人くらいが同時にチャットできるシステム)

しかしこの先、多種多様な情報から必要なものかどうかを判断できずに困っております。

知りたい情報は以下の通りです。

・サーバには種類?があるらしいのですが(SSH、DHCP、Samba、DNS、Mail、Web、FTP、プロキシ)ゲーム用途に使うサーバーはどれにあたるのか?またこの考え方自体が間違っているのか?

・ネット通信の例をみたところ、当たり前ですがサーバー側にもプログラムというものが存在するようです。このプログラムはLinuxのOS上で作成するものなのか?また言語は何になるのか?またその言語の中で速度的に有利なものはなんなのか?開発ソフトが存在するのか?デバッグはできるのか?(果てしなく続きます)

上記の内容を理解したうえで参考になる書籍を購入したいと考えています。
「参考URL」「書籍名」「検索に必要なワード」「ライブラリ名」
手がかりになる情報を少しでも頂ければ幸いです。

自身の検索能力が低いことでお手を煩わせていることは重々承知しておりますが、何卒よろしくお願いいたします。
こちらも再度調査していく姿勢であります。

失礼いたします。

投稿日時 - 2009-08-04 13:18:43

QNo.5180975

困ってます

質問者が選んだベストアンサー

ゲームには詳しくないのですが、今の段階で分かる範囲で。

・ゲーム用途に使うサーバ

サーバは、「サービスを提供する側」なだけです。SSHならSSHクライアントにSSHサービスを提供します。
ゲーム用途には、他のどのサービスも不要です。
ゲームサーバというものをあなた自身で作る必要があります。専用サーバになるので、ゲームクライアントも必要だと思いますが。
作りようによっては、何か別のサービスを使用するかも知れませんが、作り方なのでなんとも言えません(たとえば、通信を暗号化したい、というのであれば、てっとり早くSSHトンネルを使おう、と言うことでSSHサーバを使うかも、ということです)。

・サーバ側のプログラム
もちろんLinux上で稼働するものを作ります。
言語は何でも構いません。全部自分で選べます。
処理速度、開発効率、拡張のしやすさ、メンテのしやすさ、その辺を考慮して言語を選んでください。
処理速度が一番なら、C言語あたりじゃないでしょうか?
ゲーム用の開発環境というかゲームエンジンは存在します。
ゲーム開発はしたことがないので、どこまでこの辺りを使うのかはすみませんが分かりません。

とりあえず、参考になりそうな書籍
http://www.amazon.co.jp/dp/4797328460

あとは以下などどうでしょう?
実際にゲームサーバを立てているので、流れは理解できるような気がします
http://www.geocities.jp/htmdoc/l2j/index.html

失礼ながら、現段階ではゲームサーバ開発に至るまでの基本的な知識が足りていないように思います。
最初は誰でもそうなので、目標を達成するため、少しずつ学んで行って下さい!

投稿日時 - 2009-08-04 13:59:41

お礼

回答ありがとうございます。
本を早速注文しました。

私の提示したサーバーの種類というのはどうやら「サービス」を指していたのですね。
このサービス自体を作ることが今回の目的に必要な作業のようです。
言語はどれでも良いということなのでCを使うことにします。

さっそくこれらのワードで検索したところ思ったようなサイトが沢山見つかり感謝しております。
またライブラリ(サーバ側もクライアント側も)も存在するようなので導入の検討をすることにします。
WindowsでいうところのVisualシリーズのような開発環境を探してみたのですがこちらは見当たりませんでした。もう少し検索してみたいと思います。
ゲームエンジンについても検討してみますがライセンスと安全性の兼ね合いで使用しない可能性が高いです。

頭の中を整理してみると

クライアント部分(Windowsで開発)
↓↑
APIがありそうだった(なければライブラリ自作)
↓↑
TIP/IP規格のデータ?としてやりとり
↓↑
サーバー部分(Linuxで開発)

脳内でこのような図式が完成しました。
あとはクライアントが複数になっても処理に無理がこないようなシステムを構築していけば良いわけですね。

Linux上でC言語は動かず、未知の言語を勉強しなければならないと想像していたので少し前が見えました。
また簡易HPサーバー用の本は沢山出版されているようなのでこちらもLinuxに慣れる意味も含めて注文してみました。
2つ目に提示していただいたものでも練習できそうなのですが、商品開発元の気持ちを考えると合法違法抜きにして今回は遠慮させていただくことにします。

Linux自体起動したこともなく、質問の内容が浅すぎで何を聞いているのか分かりにくいにも関わらず的を射て頂き感謝します。
ありがとうございました。

投稿日時 - 2009-08-04 16:23:56

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ちょこちょこと。

>WindowsでいうところのVisualシリーズのような開発環境を探してみたのですがこちらは見当たりませんでした。もう少し検索してみたいと思います。

一番近いトコだとEclipseかNetBeansでしょうね。

Eclipse:
http://eclipsewiki.net/eclipse/

NetBeans:
http://ja.netbeans.org/

VisualシリーズはWindows「だけ」のものなんで、今後の事考えると乗り換えた方が良いような気がします。EclipseもNetBeansもマルチプラットフォームなので。

>Linux上でC言語は動かず、未知の言語を勉強しなければならないと想像していたので少し前が見えました。

LinuxはUNIXクローンですが、元々C言語はUNIXを書く為に開発された言語です。従って、Linux上でC言語が動かない、って事はあり得ません。
(そして、Linux自体がCで書かれています)

ちなみに、「使える」言語の数から言うと、Linux対応言語数はWindowsの比じゃないです。
従って、#1さんが仰る

>言語は何でも構いません。全部自分で選べます。

と言うのは恐らく貴方が想像しているモノ「以上」の候補対象数がありますよ。
凄いヘンチクリンな言語さえLinuxでは「簡単に」見つかりますからね。

投稿日時 - 2009-08-07 04:00:20

お礼

ご回答ありがとうございます。

本も届きシステムの全体像が見えてきたところであります。
開発環境の紹介までして頂き感謝します。

URLを参考に環境の乗り換えも視野にいれながらじっくり検討してみたいと思います。

本当にありがとうございました。

投稿日時 - 2009-08-07 11:42:18

あなたにオススメの質問