質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

解決済

3回答

2199閲覧

ブラウザ上で動作する多人数交流型のゲームを作るためには

kgma

総合スコア7

0グッド

0クリップ

投稿2016/04/25 12:29

###前提・実現したいこと
基本的には題名の通りです。
私は4月になって初めてプログラミングに手を付けた程度の初心者ですが、学ぶなら意欲のためにも自分が現在一番やりたいことに向けて励みたいと思い、ゲーム制作を志しています。
その中でもチャットや掲示板と言った要素を内包したゲーム…他プレイヤーとの交流が可能なゲームの作成について調べているのが現状です。
こう言っただけではどんなものかわかられないかもしれないので例を出すと、てぃーこんタワムレガキBlindJustice こういったゲームのような方向性を目指しています。

###試したこと
先程挙げたゲームはおそらくはPerlで書かれたCGIで動作している、と言う所まではわかって、ならばPerlをまず勉強してみよう…と思いました。が、図書館(新しいものから古いものまで結構な数のプログラミングの本が揃っている…はずです)に行ってもPerlやCGIの本は殆ど無く、あっても1998~2002年頃に発刊されたものぐらいでした。近所の書店も大体似たような状況です。
もしや今はこれらに代わるより主流なものがあるのでは…と思い調べてみたもののよくわからず、このサイトを見つけ質問に踏み切った次第です。

###結局お聞きしたいこと
・Perlで書かれたCGIと同様のことが、今は他の方法でより簡易的に出来るのでしょうかということ
・題名のようなゲームを作るのに適したプログラミング言語
・他何かあれば何でも

###補足情報
ここの皆様からすると初歩の初歩な質問もいいところかもしれないので、場違いであったら申し訳ありません…。
説明に不十分な点があれば追記致しますので、どうかよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

ナウい方法はよくわかりませんが、いくつか私のわかる範囲で。

「Perl で CGI」というのは先の「ナウい」と同じくらい、昭和の香りのする用語です。今から WEB アプリを勉強するなら存在を忘れていい用語です。
一応補足しますと、CGI は (SSI とともに)、条件によって違う HTML を返す、というサーバ側で動的ページを出力するごく初期からある方式です。WEB における「動き」という面では、今言った「サーバサイド」での処理のほかに、ブラウザに送られてきたスクリプト(プログラム)をブラウザ上で動かす「クライアントサイド」の処理があります。当初から JavaScript がありましたが、まあ、「ダサい」ものの代名詞になるくらい毛嫌いされる傾向にありました。言語処理系の問題もありましたが、ろくでもない使い方をする例が多かったからでしょう。

さて、CGI は必要に応じて WEB サーバが外部プロセスを起動し、その結果を HTML として受け取ってクライアントに返す、というものでした。単純にいれば、プロセスを新たに起こす必要があるし、遅いわけです。今は WEB サーバ自体にスクリプト言語処理系を組み込んだものか、常時起動している WEB アプリサーバとサーバ間通信する、などして、新たなプロセスを起こす必要がなくなっています。あえて CGI を選択するメリットはありません。

スクリプト言語としては、Perl も 10 年くらい前まではまだ一部コアなファンがいて、「それPla」とか Catalyst、MovableType とか賑わっていた感がありますが、WEB アプリ用の言語としてはもうオワコンかな、という気がします。
じゃあ、何を選択すればいいか、というと、PHP が無難なんだろうと思います。私自身は二度と書きたくない言語ではありますが、情報の多さ、初心者の取り組みやすさ、開発環境の作りやすさ、それなりのパフォーマンス、という点では、まあ無難かと思います。他の言語もいろいろありますが、WEB アプリを学ぶ第一歩としては PHP かな、と。

ここまでの「サーバサイド」の話をまとめると、CGI と Perl は忘れてください。とりあえず PHP が無難ですかね、ということです。

また、ゲームなどを作るのであれば「クライアントサイド」の技術も重要です。使われるのは JavaScript です。処理系の標準化が進み、ハードウェアの進歩もあってパフォーマンスが上がり、ライブラリやフレームワークも充実し、かつての悪名とは打って変わって、今や花形の言語と言えると思います。

あと、多人数で「リアルタイムに」交流するような仕組みを作りたいのであれば、Ajax も押さえておいたほうがいいでしょう。WEB アプリにリアルタイム性を与える通信技術には他にもいろいろあるのですが、WEB 初心者が取り組むには Ajax が無難かと思います。

ということでまとめると、「サーバサイドは PHP かな。最初はフレームワークなしで書いてもいいかな、と思いますが、規模が大きくなってきたらフレームワークの導入を検討して(最初からフレームワーク使ってもいいですけど)」「クライアントサイドは JavaScript。こっちは何らかのライブラリ、フレームワークを使うといいでしょう。特に Ajax 周りは素の JavaScript で書くときついので」「HTML5 や CSS3 も勉強するといいよね」かな、と思います(最後、説明していない HTML5 と CSS3 が出てきましたが)。

投稿2016/04/25 22:30

unau

総合スコア2468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kgma

2016/04/27 10:57

まだにっちもさっちもわからぬ身ではありますが、明解な説明により大体理解することが出来ました。 参考にして頑張っていこうと思います。ありがとうございました!
unau

2016/04/27 12:06

お役に立てたようでなによりです。 ちなみに、「にっちもさっちもいかない」と「右も左もわからない」という表現はありますが、「にっちもさっちもわからない」という表現は正しくありませんので、念のため。
guest

0

JavaScriptでフルスクラッチゲーム開発しよう 第1回 準備編

などはどうでしょうか?
第4回まで投稿があるようです。

投稿2016/04/26 08:27

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kgma

2016/04/27 10:28

参考にしてみます、ありがとうございました!
guest

0

こんばんわ。
僕の可能な範囲で質問にお答えします。

・Perlで書かれたCGIと同様のことが、今は他の方法でより簡易的に出来るのでしょうか

webで動作し、かつ例に挙がっているようなゲームを簡単に構築できるような言語や処理系については
聞いたことがありません。perlで作成するにせよ、他の言語で作成するにせよ、作りこみが必要になると
思われます。

・題名のようなゲームを作るのに適したプログラミング言語

PHPはどうでしょう?
webで動作しますし、プログラミングが初めてな方にも習得しやすいと考えます。

・他何かあれば何でも

まずは何か掲示板やチャットを作ってみてはいかがでしょう?
その過程でプログラミングの知識も少しずつ身についてくるのではないでしょうか。

投稿2016/04/25 13:42

srsnsts

総合スコア480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kgma

2016/04/27 10:41

PHPで掲示板を作るのをとりあえずの目標にしてみます。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問