- ベストアンサー
「VisualBasic」と「JavaScript」の違いを尋ねたい
興味がてら急がず焦らずでファミコンレベルのアクションゲーム (スーパーマリオやロックマンや魔界村など)を作る為に プログラムを勉強しようと思っています。 ここ数日自分で色々調べてみたところ どうやら、自分みたいな初心者は「VisualBasic」で やって行くことした方がいいかなと思いました。 「VisualBasic」は初心者からも入り易く、使いこなせば どんなゲームも制作出来る言語だそうで。 ただ自分には将来 同人ソフト、フリーソフトなりで 作ったゲームを世に出してみたい気持ちもあります、、 そこで質問させて頂きたいのですが 作ったプログラム言語によって、 そのゲームの動作環境(対応機種)というのは 完全に固定されてしまうのでしょうか? 例えば、同人、商業問わず winでゲームを開発、動作出来る話は「常識」になってるくらい目につきますが、 でも、C言語やC++はMacの環境でも使えるはずなのに、 なぜmacで動くゲームが世の中に少ないのでしょうか? 「VC++」はwin専用で、それが浸透してるからでしょうか? だとすると、C++で作り、WinMac両方に対応させた方が良いとも思うんですけど、、 「VisualBasic」で制作したゲームもwinしか遊べないんでしょうか? 自分としてはFlashゲームのように win、mac分け隔て無くプレイ出来るゲームを作りたい気持ちがあります。 ちなみにそのJavaScriptで組んだゲームは Wii本体からネット経由するとWiiでも遊べるみたいですね。 それこそすごく興味あるんですが、Java言語だと スーファミレベルのゲーム制作は無理ですよね? 簡単なゲームしか見た事無いんで、、、。 とりあえずネットだけで無く、リアルの友人達にも 容易にプレイしてもらえるゲーム開発言語を選びたいんです。 「VisualBasic」で大丈夫でしょうか? 「JavaScript」のが良いでしょうか? また、もしかしたらその先C++を学ぼうとした時 「VisualBasic」「JavaScript」のプログラムで学んだことは 生きてきますか? それともプログラムはまったく変わってしまうのでしょうか? 「最初からこっちを選んでおくべきだった」という 後悔だけはしたく無く、今すごく悩んでおります。 とりあえず、ごちゃごちゃ書いてしまったんで 自分の要望と質問をまとめます。 ●初心者におすすめ。 ●制作環境はMacでもwin行けます(BootCamp環境なので)。 ●未来永劫に2D(ドット)のゲームしか作る気が無い。 (しかもどこまで凝ってもスーファミレベルで満足) ●音楽が大好きなのでサウンド周りもしっかり対応出来る言語が良い。 ●最終的にはwin以外でも遊べるゲームを作りたい。 (友達みんながみんなWin持ってるわけじゃ無いので) ●欲が出て、難関C++に移行したくなった時に 少しでも活かせられる言語が良い。 以上のような自分にとって、 それぞれ「Java」と「VisualBasic」を選ぶ上での メリット、デメリットを聞かせてください。 自分は「JavaScript」の「Action Script」に魅力を感じています。 ですが、「VisualBasic」の方がゲーム制作には特化してて、 またこちらの言語のが多様性があるかな、と。 んー、悩みます。無知だからこそ、さらに。 ぜひアドバイスよろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
いくつかポイントを。 >そこで質問させて頂きたいのですが作ったプログラム言語によって、 そのゲームの動作環境(対応機種)というのは完全に固定されてしまうのでしょうか? VBを選べばほぼ「固定」と考えて間違いないでしょう。 以下のメーリングリスト http://www.freeml.com/programming/300 を参照して欲しいのですが、元々VB自体は確固とした「共通規格」ではありませんし、あくまでMicrosoftが作ったWindows専用の言語だ、って考えてた方が無難です。「Windowsだけで」じゃなくって「マルチプラットフォームで」と考えておられるのなら、VBは止めた方が良いでしょう。 >C言語やC++はMacの環境でも使えるはずなのに、なぜmacで動くゲームが世の中に少ないのでしょうか? これは単に商売の論理でしょう。 Mac向けのゲームソフトをリリースするより、Windows向けのゲームソフトをリリースしたほうがマーケットが大きいから、です。 昔(80年代後半~90年代初頭)はWindowsはグラフィックが弱かったので、グラフィックを徹底して使ったゲームはまずはMacでリリース、と言うケースが多かったんですが、時代が下るとWindowsのグラフィック能力が上がって来たんで、そう言う差別化も無くなりました。 後は、Macは比較的、購買目的がハッキリした、例えばDTP等の「マジメな用途の為のマシン」と思われている、って事もあるんでしょうね。つまり、Macのユーザー層にはアピールし辛い、等とも思われているのでしょう。 >そのJavaScriptで組んだゲームはWii本体からネット経由するとWiiでも遊べるみたいですね。それこそすごく興味あるんですが、Java言語だと スーファミレベルのゲーム制作は無理ですよね? ここは完全な勘違い、です(良く見かけますが)。 JavaとJavaScriptは全く違う言語です。 従って、 >スーファミレベルのゲーム制作は無理ですよね?簡単なゲームしか見た事無いんで、、、。 「簡単なゲーム製作」はどっちの言語を指してるか知りませんが、基本的にどっちでも可能ですよ。どっちかと言うとJavaScriptは「Webブラウザで動く」前提なんで、簡単にならざるを得ない、とは言えますが、反面、Javaは「改良版C++」と言って良いほどの言語ですし、「スーファミレベル」がどの程度の、また、どのレベルで言ってるのか知りませんが、作れると思います。 例えば、スーファミで出ていたゲームで「ダンジョンマスター」 http://www.super-famicom.jp/data/ta/danjon.html (元々はアメリカのパソコン、ATART STでのゲームでしたが)をリメイクした「ダンジョンマスターJava」 http://homepage.mac.com/aberfield/dmj/screenshots.html と言うゲームもあります。 なお、スーファミ時代はそのゲームソフトの殆どはアセンブリ言語で書かれていた、と思います。それに比べれば今のパソコン環境で作る方が幾分簡単だとは思いますよ。 >「VisualBasic」で大丈夫でしょうか? >「JavaScript」のが良いでしょうか? >●最終的にはwin以外でも遊べるゲームを作りたい。 3番目の要件を満たすなら、二つの選択肢の中では「VisualBasic」は止めておいた方がいい、としか言いようがないです。ただし、二つの選択肢、としましたが、恐らく質問段階では「Java」と「JavaScript」を混同してるでしょうから、だったらJavaの方がいいでしょう。 ただし、Javaはそれなりに難しいので、 >●初心者におすすめ。 と言う要件は満たしません。 さて、どうしたものか。 良い事を教えましょう。 >●制作環境はMacでもwin行けます(BootCamp環境なので)。 と言うことはMacユーザーですよね? 黙って端末(ターミナル)起動して「Python」と入力してみてください。恐らく「Macにビルトインされた」Pythonと言うプログラミング言語が起動する筈です。 これが貴方の要求、 ●初心者におすすめ。 ●制作環境はMacでもwin行けます(BootCamp環境なので)。 ●未来永劫に2D(ドット)のゲームしか作る気が無い。 (しかもどこまで凝ってもスーファミレベルで満足) ●音楽が大好きなのでサウンド周りもしっかり対応出来る言語が良い。 ●最終的にはwin以外でも遊べるゲームを作りたい。 (友達みんながみんなWin持ってるわけじゃ無いので) ●欲が出て、難関C++に移行したくなった時に 少しでも活かせられる言語が良い。 を満たす言語です。 Mac OS Xは実は「UNIX」なんです。従って、Linux等のUNIX系OSと同じように「殆どのプログラミング言語(Microsoft系除く)」が問題無く動き、かつ、「マルチプラットフォームで動く言語の」環境を手に入れてるのと同様です。わざわざVBを候補に上げる必要性がありません。 PythonはMac生まれですが、現時点、Linux等のプラットフォームでもほぼ標準で入っていますし、またWindowsでも使えます。ハッキリ言うと答えは「貴方のMacの中にあった」と言う事です。それ以上考える必要はありません。 なお、Pythonを利用したゲーム製作に関しては Pygame入門: http://www.halb-katze.jp/pygt/ どんなゲームが作れるかに関してのサンプルは Pygame: http://www.pygame.org/news.html に山ほどあります。
その他の回答 (5)
- cametan_42
- ベストアンサー率62% (162/261)
>gvimとEmacsについてはそれぞれ同類のテキストエディタとお見受けしました。 はい、基本的にはその通りです。 >これは両方共勉強した方がよろしいのでしょうか? いや、片方だけ、でいいです。 恐らく、十中八九Emacsの方を薦める人の方が多い、とは思いますが、割にディープなvi系テキストエディタのファンも多いので、取りあえずどっちも触ってみて、「感触」を調べてみることが大事だ、と思いました。 この辺、どうしても「相性」ってのがあるんですよ。 基本的にEmacsが合う人の方が多いとは思いますけどね。 (反面、vi系エディタに慣れれば神業的なタイピングスピードを得られる、と言う話もチラホラ聞きます) >Pythonをやりながら、テキストエディタにはどちらかを選ぶということなのかな、と思いまして。 そう言う事、ですね。 >現時点の知識は「プログラム言語」というのは機械に命令するための機械語であり、それを実行するものが「テキストエディタ」という感じです。 あながち間違ってもいないと思います。 と言うか「端末自体を」Emacs上で(または例えばvimで)走らせる事が可能です。つまり、テキストエディタでPythonでのプログラムを書き、それをテキストエディタ上で開いた端末で直接走らせてみて動作を見る、と言うのが流れです。「統合開発環境」とはそう言う意味ですね。いちいち他を開いたりする必要が無いんです。 なお、本当はPythonを新しくダウンロードしたらIDLEと言う「Python専用の」統合開発環境が手に入れる事も出来るんですが、Mac版はどうだったか不確かですし、また、GUI関係を呼び出したりするとバグったりするんです(若干不安定)。 そんなワケでEmacsが無難だと思います。 >もしかして、ゲームプログラミングというのはひとつのプログラム言語と多数のテキストエディタで制作するのでしょうか? いや、逆でしょうね。最悪(?・笑)のケースだと「たくさんのプログラミング言語」と一つのテキストエディタだと思います(もちろん、最初はPythonだけに集中した方がいいでしょうが)。 Emacsは別に「Python専用」ではありませんし、C言語だろうと何だろうと、メジャーどころの言語の大部分はEmacsで書くことが出来ます。基本的に「拡張子自動判別機能」があって、ファイルに適切な拡張子(例えばPythonだと.py)が付いていれば「Pythonに特化した」改行/オートインデント(これはPythonでは特に重要!)/関数名色変え表示、等を行ってくれます。仮にマイナーな言語でもWeb上探せば「カスタマイズ用のファイル」やらHow toの情報は転がっていますし、ないしは将来的には自分でカスタマイズする事も可能です。 なんせ、1975年前後に登場した最古参のエディタのうちの一つ(もう一つがvi)ですんで、歴史的経過を見ても対応可能な言語はそれこそ「山のように」あります。いまだ最大のユーザー勢力を持ったテキストエディタがEmacsなんです。 今後、Pythonに飽きて「他の言語(例えばC++等)を勉強したい」と思った時でもEmacsだったらその「他の言語と共に」使える事でしょう。
No.1です。 No.4様のおっしゃる「python」の手は一理ありですね。 私はあまり知りませんが、そういやぁ、アクションゲーム系制作の 好きな友人が最近熱中しているのもpythonでしたし。 海外のゲームをやったとき、pythonで作られていると見たことが あります。 ちなみに、そのゲーム制作の友人の場合は、 Director -> Flash -> Java -> C++ -> Python とやっているようで した。 なんとなく。 余談まで。
お礼
yama-taku様 回答を頂き、ありがとうございます。 当方はmacなのですが、 No.4のcametan_42様のアドバイスにあります 「python」でやってみることに決めました。 ですが、yama-taku様の回答で大変勉強なったこともあり すごく感謝致しております。 ありがとうございました。
- cametan_42
- ベストアンサー率62% (162/261)
おっとちょっと補足です。 >端末(ターミナル)起動して「Python」と入力してみてください。 「python」ですね。全部小文字じゃないとダメです。うっかりしていました。 例えばMacでも端末(ターミナル)を起動すると、 $ と言うプロンプトが出る筈ですが(昔のMacには端末なんて無かったのにな・笑。時代の流れは凄い。)、ここで $python と打ってEnterキーかリターンキーを押せば $ python Python 2.5.1 (r251:54863, Mar 7 2008, 04:10:12) [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> とPythonが起動する筈です(上はLinux版ですが、情報がMacに置き換わるだけなんで殆ど同じでしょう)。 1+2とか入力すれば >>> 1+2 3 と反応して返ってくると思います。 また、Mac OS Xは前出のようにUNIXなんで、開発環境に関してもUNIXに入っているモノは一通り入っているでしょう。 例えば端末で $emacs と打てばUNIX等でお馴染みの統合開発環境のハシり、Emacsが起動するでしょうし、また $gvim と打てば、ある意味悪名高い(笑)、ヘンチクリンなテキストエディタ、gvimが起動すると思います。 (しかしながら、割にMac OS Xを使いこなしているMacユーザーはvi系テキストエディタのファンが多いような気がする) つまり、Macを持ってる、って事は「余計なモノは買わなくて良い/インストールしなくて良い」って事ですね、ある意味。まあ、古来からのUNIXですね、中身は。 まあ、この辺は、最近電器店に行って(笑)、Mac触ってみて確認しています(笑)。Linuxとほぼ同様の使い勝手だと思いました。 (他にもbashで色々出来るでしょうし、「コンピュータを知りたい/プログラミングを学びたい」と言う意味ではMacはある種最高の環境かもしれません) Emacsの場合、Emacsを起動した後、[Ctrl]キーと[h]を同時に押した後、[t]を打てばEmacsのチュートリアルが出ると思います。それを見て基本的なEmacsの使い方を勉強して下さい。 Emacs Beginner's HOWTO http://www.linux.or.jp/JF/JFdocs/Emacs-Beginner-HOWTO.html Emacsクイックリファレンス: http://www.unixuser.org/~euske/doc/emacsref/ また、vimにもチュートリアルがあります。 端末(ターミナル)のプロンプトで $vimtutor とすればvimの使い方に付いての30分講座が表れます。それを使えば大体のトコは分かるでしょう。 より深いgvimの情報に付いてはコチラ。 KaoriYa.net http://www.kaoriya.net/ なお、日本のPython公式サイトも紹介しておきます。 Python Japan User's Group: http://www.python.jp/Zope/ 中にはPythonのチュートリアルなんかが置いてあるので、取りあえずそれを見てPythonの使い方を学んで下さい。
お礼
すみません、こちらに書くべきでした。 cametan_42様 回答ありがとうございます。 灯台下暗し状態だったようでほんとにびっくり致しました。 まさか自分のパソコン内に自分の希望に添った言語がすでにあったとは。 せっかくなので「Python」を勉強していきたいと思います。 で、プログラム未経験者なので今も色々調べている状況なのですが 疑問に思ったことがひとつあったのでお聞きしてよろしいでしょうか? Pythonを勉強することに致しましたが、 cametan_42様の内容に出ましたgvimとEmacsについては それぞれ同類のテキストエディタとお見受けしました。 これは両方共勉強した方がよろしいのでしょうか? 素人考えなんですが Pythonをやりながら、テキストエディタには どちらかを選ぶということなのかな、と思いまして。 それとも、それぞれに一長一短あり、両方勉強、利用してこそ 「Pythonを使う」といえるということなのでしょうか? なんか変な質問でほんと申し訳ございません。 自分がプログラムというものをどこまで認識出来ているかは わからないのですが、現時点の知識は 「プログラム言語」というのは機会に命令するための機械語であり、 それを実行するものが「テキストエディタ」という感じです。 もしかして、ゲームプログラミングというのは ひとつのプログラム言語と多数のテキストエディタで制作するのでしょうか? 自分が認識不足でものを言っているのもあるので 失礼がありましたらすみません。
補足
cametan_42様 回答ありがとうございます。 灯台下暗し状態だったようでほんとにびっくり致しました。 まさか自分のパソコン内に自分の希望に添った言語がすでにあったとは。 せっかくなので「Python」を勉強していきたいと思います。 で、プログラム未経験者なので今も色々調べている状況なのですが 疑問に思ったことがひとつあったのでお聞きしてよろしいでしょうか? Pythonを勉強することに致しましたが、 cametan_42様の内容に出ましたgvimとEmacsについては それぞれ同類のテキストエディタとお見受けしました。 これは両方共勉強した方がよろしいのでしょうか? 素人考えなんですが Pythonをやりながら、テキストエディタには どちらかを選ぶということなのかな、と思いまして。 それとも、それぞれに一長一短あり、両方勉強、利用してこそ 「Pythonを使う」といえるということなのでしょうか? なんか変な質問でほんと申し訳ございません。 自分がプログラムというものをどこまで認識出来ているかは わからないのですが、現時点の知識は 「プログラム言語」というのは機会に命令するための機械語であり、 それを実行するものが「テキストエディタ」という感じです。 もしかして、ゲームプログラミングというのは ひとつのプログラム言語と多数のテキストエディタで制作するのでしょうか? 自分が認識不足でものを言っているのもあるので 失礼がありましたらすみません。
No.1です。 続きです。 ま、何がしか、このようにプログラム言語というのは多岐にわたり。 言語が作られる当初の目的の違いから、得意不得意が絶対にあります。 万能なものは、存在しません。 C言語は、全部可能な言語とはいえ、その原因はポインタ操作であり ・1つのプログラムを作成するのに膨大な文章量が必要。 ・ライフラリという命令文セットを活用すると、作る側は楽できるが 結局、そのライブラリの依存するOSなどでしか動作しなくなる。 ので、これもまた万能ではありません。 ということで。 万能がない=今はFlashかな?と思えるわけです。 ちなみに。 我々ITで飯食べている人間はそうなんですが。 あまり言語というものをさほど重視しません。 なぜなら、どの言語も、基本的な制御構文や変数扱いの方法などは 似たり寄ったりで、別に1言語使えりゃ、どの言語も大体感覚が 一緒だからです。 それよりは、「作りたい対象」=「その時代では何言語がお勧め」 =「じゃ、それをやろうか」という感じですかね。 ですので。 入門以前で、あまり難しいこと、後先を考えずに。 FlashやDirector、HSP、ゲームツクール系(今はあるのかな?)の ような結果となるゲームを作りやすいツールを使って、まずは形を 作ってみるのがいいと思います。 何言語かやれば、組み合わせでいろいろなソフトが作れます。 ちなみに、弊社は業務用ソフトを作成していますが。 言語数では、それぞれの機能を一番実現しやすい方法をとって おりますので6言語ほど…。 ま、慣れれば、どうということはないです。 頑張ってみてくださいね。
IT屋の者です。 左様、おっしゃるように。 確かに昨今の言語体系はややこしく。 選択肢がおおくて言語を選びにくくなりましたネ。 PCの操作言語と言いますのはいろいろありまして。 主には、 1.OSに依存し(代わりに周辺機器の操作が可能で)比較的高速で 動作するもの。配布が必要なもの。 2.IEやFireFoxなどインターネットブラウザ上で動作するもの。 (代わりに周辺機器の操作ができない場合が多い)配布が不要 でWebサーバにアップし、URLを叩かせて動作するもの。 があります。 貴方は商売・業務系ではなく、エンターテイメント系の成果物を 作成したいようですから。 多分、Flashがお勧めだとは思います。 理由は、 ・癖があるが初心者でも入りやすい。 ・MacでもWinでも携帯でも可能。(ブラウザでの動作) ・2DもOK。サウンドもOK。 ・描画が得意。 ・ゲーム作成という意味では、必要ソースコードが比較的短い。 ・仕様がオープンなためそう簡単に廃れない。 ×C++には…ちょっと遠いが、配布の手間が不要で多くの人に 試してもらえる。 ×大容量のゲームには向かない。 で最強にゲーム向きです。 ちなみに、JavaScriptとVisualBasic(.NETを仮定)のケースを 列挙しますと。 Javascriptは。 ・現在AJAXというWeb上の動的スクリプト技術で注目を受けている。 ×初心者は若干入りづらい。 ・MacでもWinでも携帯でも可能。(ブラウザでの動作) ×2DはOK。サウンドは微妙。描画は微妙。 ×ゲーム作成という意味では、必要ソースコードが長い。 ・仕様がオープンなためそう簡単に廃れない。 ・C++にまだ近い。配布の手間が不要で多くの人に試してもらえる。 ×大容量のゲームには向かない。 VisualBasic(.NET)は。 ・主に業務向け、データベース処理、Web向け。 ・初心者はまだ入りやすいが、できることが多い分、ライブラリが 巨大で、若干難解になった。 ・Winのみ(OS上で動作) ・2DはOK。サウンドはOK。描画は微妙。 ・ゲーム作成という意味では、必要ソースコードは短いが動作速度が 遅いのが難点。 ・比較的仕様がよく変わる。 ・C++にまだ近い。配布の手間あり。 ・大容量のゲームは可能。 …回答長いので続きます。
お礼
回答ありがとうございます。 とてもわかりやすく説明して頂けたので、 自分がやるべきことがはっきりと見えました。 これからがんばって行こうと思います。 このたびは本当にありがとうございました。