1read 100read
2011年11月2期ゲ製作技術43: なぜVBは扱いが低いのか (133)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
なぜVBは扱いが低いのか
1 :10/09/14 〜 最終レス :11/11/21 よく考えてみよう
2 : VBランタイムをわざわざインストールしないと動作しない時代があったから
3 : VBだから
4 : VBはよほど上手く作らないと遅いからな…… うちの会社の人が機械連動でVB動かして、速度上げると動かないとか言ってた アナログの高速反応に対応するには厳しいだろって(ry
5 : ツクールと同じで「手軽に誰でも簡単に」が売りの言語だからね。 元々敷居が低い事を狙って使い始めた連中が多いので、「動けば良いや」というレベルに留まりがち。 その上、凝った事をやろうとするとそこらの言語よりも数倍苦労しなくちゃならない。 フォームにコントロールを配置して記述していくという武器を取り上げられる事になる。 もちろんフォームを使ってゲームを作る事もできるものの、そもそも Windows GUI はゲーム向きじゃない。 結果的にそれらのゲームは見た目もしょぼく、操作性も悪いという烙印を押される事になってしまう。
6 : クイズゲームやノベルゲーム、選択肢式アドベンチャーなどは作れるかな。 DirectXでアクションやシューティングとなると、VBでやるのはマゾ行為でしかないな。
7 : VB というと今でも VB.NET じゃなくて VB6 以前になるんかな
8 : ゴメン表現がおかしいな VB と記述した場合、今でも VB.NET じゃなくて VB6 以前を指すのかなぁ
9 : VBは、ランタイムが別で配布されることが多くて、わざわざ自分でこんな無駄にサイズが大きいものを追加で入れなきゃ動かんのか!みたいな受け取られ方しただけでしょ。 VCだって、C++のランタイムとMFCのDLLを合わせただけでも、結構なサイズなんだけど、静的リンクしてたりアーカイブ同梱で勝手にインスコするから、素人は気づかないだけ。 あと、ゲーム云々に関して言えば、VB5までは、DXが標準で使えなかったけど、VB6以降は普通に使える。 パフォーマンス的にも、2000年代に入って、ポリゴンの頂点計算とかハードにやらせるようになってからは、よほど限界ギリギリの領域でもない限り、C++で書くのと大差なんてなかったよ。 使う奴が少ないのは、単に参考資料が殆どないから誰も使わない、というだけ。
10 : さてっとおいらがVBでゲーム作りますよってゲ製なんでゲーム作る話題にしようぜ とりあえず課題スレにある15パズルから作ろうとおもたけどいきなりは大変なので9パズルに挑戦な んで、下記はピースの動きのコード下にしか動かんけど、いい感じだフォームとピクチャーボックスでいける Sub picDown() Dim nowX As Integer = PictureBox1.Left Dim nowHeight As Integer = PictureBox1.Height Dim newY As Integer = PictureBox1.Top + nowHeight Dim idouY As Integer = nowHeight / 6 For i As Integer = 1 To 6 PictureBox1.Top += idouY Threading.Thread.Sleep(10) Me.Refresh() Next PictureBox1.Top = newY Me.Refresh() End Sub Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown If (e.KeyData = Windows.Forms.Keys.Down) Then 'MsgBox("↓", MsgBoxStyle.Information, "Form1_KeyDown") picDown() End If End Sub Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress MsgBox(e.KeyChar, MsgBoxStyle.Information, "Form1_KeyPress") End Sub
11 : SFC・メガドラ・PCエンジンのSTGを語るスレ http://yuzuru.2ch.net/test/read.cgi/gamestg/1206538342/779 > 779 名前:名無しさん@弾いっぱい[] 投稿日:2010/09/15(水) 13:08:43 ID:9cI7/JLI0 > PCEでもMDでもSFCでもないが、それっぽい(昭和っぽい)画面の > ゲームがある。 > はっぴぃしゅーたーVB6 > ttp://homepage1.nifty.com/shifu2/main.html > なんとなくPCE版究極タイガーやガンヘッドあたりを参考に作ったようだ。 > PC用だが、試しにやってみるといいかも? これ、ソースが公開されていればもっと良かったのにとか身勝手な事を言ってみる。 Visual Basic でシューティングとはなかなか頑張ってるね。
12 : おっす、おいら10 ちょっと進歩したぜ!あぁ>>11 さんオイラシューティング苦手だから無理な ちょっとソース長くなったからここに貼らないほうがいいかな どこかUPローダーない?
13 : あぁみっけた http://gmdev.xrea.jp/st/up/125.txt とりあえず、上下移動ができるようになった キモはピクチャーボックスオブジェクトを配列にいれて処理してるとこだな こりゃ楽勝だぜ
14 : VBだからフォームに操作ボタンはりつけるのかと思ったら、 そこまで原始的じゃなかったかw
15 : おっす!>>14 見てくれてうれしいぜ 終了判定いれてみた Sub EndOfGame() For i As Integer = 1 To 9 If Not (obPicsWin(i).Name = obPics(i).Name) Then Label1.Text += ":No" Exit Sub End If Next Label1.Text += ":End" End Sub キモは配列に正解を入れておくとこだぜLOAD処理でやってる これで最初のならびに達したかどうかがわかるぜ! ReDim obPics(10), obPicsWin(10) obPics(1) = PictureBox1 obPics(2) = PictureBox2 obPics(3) = PictureBox3 obPics(4) = PictureBox4 obPics(5) = PictureBox5 obPics(6) = PictureBox6 obPics(7) = PictureBox7 obPics(8) = PictureBox8 obPics(9) = PictureBox9 For i As Integer = 1 To 9 obPicsWin(i) = obPics(i) Next 既にゲームぽいけどもっと進化させるぜ
16 : おはよう!オイラ10 ちょっと工夫して画像を自分で設定できるようにしてる んで画像読み込んでコピーするまで出来た!フォームとピクチャボックス2つとダイアログ1つで簡単にできる これ組み込んだら完成だな 次のがコピーのコードだ、結構厄介だったぞ Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim img = New Bitmap(PictureBox1.Image) 'PictureBox1のGraphicsオブジェクトの作成 Dim g As Graphics = PictureBox2.CreateGraphics() '元の画像の(10,10)-(100,100)の部分を切り取って表示する '座標(0,0)に表示し、単位をピクセルとする Dim rect As New Rectangle(PictureBox2.Top, PictureBox2.Left, PictureBox2.Width, PictureBox2.Height) g.DrawImage(img, 0, 0, rect, GraphicsUnit.Pixel) Dim newBMP As Bitmap = img.Clone(rect, img.PixelFormat) PictureBox2.Image = newBMP.Clone 'Graphicsオブジェクトを破棄 g.Dispose() End Sub
17 : 深夜にオッス!おら10 ちょっといい感じになったのでソースアップ 画像)http://gmdev.xrea.jp/st/up/126.bmp ソース)http://gmdev.xrea.jp/st/up/127.zip TOOLはVS2008のVB2008 起動してそのままでも動くけど、背景を選択してBMP画像選んでくだちい ピース部分だけカラーであとは白黒になります で動かして、元の場所になると全部カラー表示します (背景が小さいとエラー起こすのは愛嬌 無駄ゲ処理とかミスとか修正したから結構遊べるお! キモはほとんどWebから見つけたソースってとこだなw 楽勝
18 : >11 はっぴぃしゅーたーVB6 を作ったモノです。 自分のゲーム名でぐぐったらここに出てしまいました。 ソースの公開は不可能ではありませんが、コード量が膨大で、 まず初見でいやになります。 クラスモジュールだけで87個です。いやになったでしょ。 VB6とVB.netではポインタの扱いが違うので .net開発者がみてもあまり参考になりませんし、私も.netは素人です。 ゲームの基本的な事は相談に乗れるとおもうので、>11のホームページにある メールアドレスから相談してもらってかまいませんよ。
19 : ども はっぴぃしゅーたーの作者です。 はっぴぃしゅーたーの代わりに、昔作った簡単なシューティングの ソースをあげました。参考にしてください。 ttp://homepage1.nifty.com/shifu2/DL/SH.zip 古いプログラムなのでウエイト3万くらいかけないと速すぎて遊べませんよ。 ウエイトに234567と入力すると無敵モードになります。 これはその昔、私がマイコンベーシックマガジンに投稿したものに、 多少手を加えたものです。
20 : >>19 わわ、これはすごい。 私は Visual Basic ってもう扱ってなくてインストールもしてなかったりなんですが、 こういうサンプルがあれば何か色々応用できそうですね! また Visual Basic 触ってみようかな〜。
21 : こんばんわ!10です! >>19 ダウンしました!S藤さん、すごいお!こういうのあると触発されちゃう いまVB2008にうpぐれどしたけど、さすがにそのままじゃ動かん>< ちょっと動くようにしてみる 9pzlは難易度とシャッフルを実装した、後は出来上がりまでの動いた回数記録すればゲームになりそうです
22 : ども はっぴぃしゅーたーの作者です。 >>21 簡単にはいかないでしょうね。 作り直すぐらいの覚悟は必要でしょう。 私も.NETで何か簡単なモノでも挑戦してみようかな?
23 : わんばんこ!10です 9pzl難易度と回数いれて完成! ttp://gmdev.xrea.jp/st/up/128.zip 実行は上下左右の矢印キーのみ こうやってVBの地位を上げていかんと扱い低いままっしょw >>22 さん是非是非何かお願いします私は.NETとかあまり意識せずに作ってますのでソースはひどいですが何もしないよりましかなw
24 : 地位ってなに?VBがゲーム作製にあまり使われてないって意味?それならそれなりの理由があるんだろう。地位とか関係ないと思うよ
25 : VBは入門用の言語と思われているが、慣れればかなりの事ができる。 C系の言語にかなわない部分もあるが、それは、かなり高レベルでの話である。 だから、トップクラスのCプログラマーに言われるのは仕方ないが、 まだ未熟なCプログラマーにVB使ってるってだけでバカにされるのは面白くない。 それにゲームの場合は、開発言語よりも、ゲームデザインやバランスの方が、 ずっと重要だ。私個人としては、一人でゲーム作るなら、むしろVBの方が 作りやすいと思う。
26 : >開発言語よりも、ゲームデザインやバランスの方が、ずっと重要だ。 自分でこう言ってるのに言語に執着してるのはあなたじゃないの?
27 : そりゃまあAPI呼べば何でもできるだろ 定義が面倒なのと処理が遅いのに目をつぶれば
28 : だから、そこいらのヘボCプログラマがVBを馬鹿にしなけりゃ、 こっちも何も言わねーよ!
29 : うは書き込み増えてると思ったらくだらねぇぇwwwwww 何も作れない奴が暴れてるwwww
30 : 普通5,6程度の言語は使いこなせるだろw
31 : バイリンガルかっ!
32 : ども はっぴぃしゅーたーの作者です。 私が>21で上げたシューティングは、初代ペンテアムの133MHzで開発 したモノでした。今では考えられない低スペックですね。当時は、いろいろ工夫して、 どうにか遊べるモノにするのがやっとでした。現在のPCスペックは当時からみて、 かなり余裕ができました。はっぴぃしゅーたーは、VBではかなり快適に動く シューティングなので、システム的に工夫してる部分も含めて、まだ遊んでいない人には、 プレイしてみてほしいな。VB6の底力を見せた一作です。 ttp://www.vector.co.jp/soft/winnt/game/se485994.html さてと、VB2010インストール完了。そろそろ始めますか。
33 : まあ、相当気合いを入れないと作れないということね
34 : ども はっぴぃしゅーたーの作者です。 VB6のプロジェクトが開けない!!あわててVB2005をインストールして やっと開けた。VB2010はアップグレードウィザード使えないのか。
35 : ふと思ったんだけど、テキストエディタでコーディングしてる人っている?
36 : んな不便なことするかよ
37 : だよね。 秀丸エディタに Visual Basic 用の設定ってのがあって。 それを使っている人が結構いるんだろうかと思った次第。
38 : >>19 ベーマガ。懐かしい。
39 : ども はっぴぃしゅーたーの作者です。 VB2005用の簡単なシューティング作成用のサンプルを作りました。 多くのモジュールはVB6からアップグレードしてちょっと修正しただけなので、 汎用モジュールとしての動作保証は、まったくできません。 本気にせず、遊びだと思って、ちょっとやってみたら、あとは軽くスルーしてくださいね。 ttp://homepage1.nifty.com/shifu2/DL/shsmp.zip
40 : ども はっぴぃしゅーたーの作者です。 ずいぶんたったけど、反応も無いし、このスレも死んだかな? 19と39のダウンロードは終了しました。 希望があれば、また上げてもいいですが、このスレ、もう誰もいなくなった?
41 : VBはね〜〜〜〜
42 : Dim a, b, c as Integer aとbがVariant型になるクソ仕様
43 : Cだって int* a, b, c; だとb,cがポインタにならないクソ仕様だろ。
44 : VB4の時代はVB製のフリーソフトで溢れてたのにな netになったら空気になった
45 : IDEを使うことがおもちゃ感覚だったから、 スレタイのようになった。
46 : 今はおもちゃとしても使われていない気がするが
47 : Basic でないとしたら、最近の入門用言語の主流はなんだろう? みんなどの言語から勉強した?
48 : javaとかだとおも。用途にもよるけどな。
49 : ちょっとしたゲームならHSPじゃない?
50 : Cだろ。
51 : FORTRANから入ったぞ 変数名は6文字までとか、信じられないような制限がついていた
52 : 私が学生の頃、うちの工業大学では、FORTRANとZ80アセンブラの授業があった。 アセンブラから入ったヒトいますか?
53 : アセンブラってゲームに使うの?
54 : >>51 昔のBASICは実質2文字だったぞ
55 : >>53 8biit時代のゲームはアセンブラが多いよ
56 : スーファミぐらいまでのゲーム機のCPUは、パイプライン処理とか関係ない から、アセンブラが一番速い。当時のゲームプログラマはアセンブラ必須だった。 Cで作るようになったのはPSぐらいから。PCではもう少し早くCが出てきていたな。 詳しくは知らないが、Basicにアセンブラを埋め込むことができたから、 それでゲームを作ってる人もいたようだ。
57 : VB6製のプログラムって、XP以降だったらランタイムいらないよね?
58 : たぶん問題無いハズ。例外もあるかもしれませんが…。
59 : たしかWindows98SecondEditionくらいから、VBランタイムはデフォルトでインストールされてたと思う。 それ以降のOSで「ランタイムが不要」なのか「ランタイムは必要だがデフォルトでインストールされてる」なのかは……どっち?
60 : XPって入ってたっけ? 自分でインストールした記憶があるんだが…
61 : >>59 そんなことないと思うが・・・。
62 : 自作PCにWindows2000SP4インストール直後にVB6ソフトを動かしたときは、 ちゃんと動いたよ。
63 : Windows 9x 系 (Me 含む) にはランタイムは入っていないよ。
64 : 98からはVB5のランタイムが標準になって XPはVB6のランタイムが標準になったんだよ、たしか。 5で作っておけば、やり方次第でEXEひとつだけのアプリが作れた。
65 : >>64 そいや、9x 系で 5 のランタイムをインストールした覚えがない。 したのは 4 と 6 だけだね。5 だけ入ってるのかな、なるほど。
66 : VB6SP6のランタイムは入ってなかったと思うが。
67 : >>53 DXライブラリなどのライブラリのソースを眺めてごらん。 インラインで使われてることがまだまだ多いよ。
68 : 今から思えば、VBってのは偉大だったな。 プログラミングの敷居を一気に下げた。 誰でもチャレンジしやすくなるってのは重要なことだ。
69 : VB.NETは、VB6と比べてWin32APIの使い勝手が、抜群に悪い。 先日もAPIでフォント作って表示しようとしただけで、どえらい苦労した。 .NETでは「APIは使うな」と言っているようにしか思えん。 そこらへんもVB6から.NETへの移行に失敗した原因だと思う。 マルチスレッドの為に仕方無く移行してるけど…VB6は偉大だったに同感。 C#のユーザーさんは、C#でのAPIの使い勝手をどう思っているのかな?
70 : 遅いから。。。
71 : .netになってから完全に空気になったな
72 : C#の方が使い勝手いいし。
73 : けど、タイピング時に大文字小文字を区別しない。…とか、変数の型変換を わりと自動でやってくれる(爆弾つきだけど…)など地味にいいところも残って いたりする。特に大文字小文字…は目が悪い人でもフォントサイズ大きく しなくていいから作業画面が広く使えて便利。
74 : VB.netは失敗だったね。もう過去形で語っちゃうくらい。 あそこまで変わると、自然とC#への移行になっちゃう。 まあ、それを意図してたのかもしれないけど、量産プログラマの多くは Java案件の方に行ってしまったのではなかろうか。 Webアプリ化の流れと重なったし。
75 : .netになってから、vb.net c#どっちだっていいって感じですけど。
76 : 大文字小文字が一緒だとなんか気持ち悪い気がするんだけどなぁ。 まぁ大文字と小文字で別変数を作る訳でもないんだけどね。 あと文字列の結合やらエスケープやらコメントアウトやら制御構文やらBasicのはなんか違和感ある。 Basic使い慣れた人にはいいんだろうけどね。 C#、C++、Java、Javascript、Action script、Perl、PHPと似たような感じなのにVBだけ全然違うから、たまに使うときに戸惑う。
77 : VBのコメントって、シングルクォート打つと、そのあと改行までがコメントになるんだよね? 複数行コメントアウトってできたっけ?
78 : >>77 できないと思う。ただ選択した複数行全部にシングルクォートをつけるボタンと、 同じように複数行のシングルクォートを一斉に外すボタンがツールバーにある。
79 : >>76 多くの言語がCをベースに考えられたから似たんだろうね。 Basic は、Cより古いから似てないんだろう。 これからできるであろう言語も基本C系のプログラマが考えるだろうから、 Cに似た構文になると思う。
80 : バーチャルボーイのスレかと思った。
81 : もともとC言語の最大の利点はポインタの導入で、それまでアセンブラの独壇場 だったハードウェアレベルの処理を高級言語で可能にした事。…C++ではオブジェクト指向 を導入して最強の言語になったが、C#やJavaでは、ポインタの排除(または制限)、 オブジェクトの多重継承も無くなるなど、むしろ弱体化している。 話は突然変わるが、VBは入門用の言語としては、一定の価値はある。…が、 問題は次のステップへの移行である。VB6時代には、VBも上級者になると APIをどんどん使うので、ポインタなどは自然に身に付く。そこからVC++ に進む事も可能だった。 だが、.netになってAPIは使わなくなり、VC++へのハードルは高くなった。 C#への移行は楽だが、同じフレームワークで動作する限り、性能的なメリットは少ない。 やっぱ前の方が良かった。VB7.0とか出ないかな。
82 : 多分、6までのVBにマルチスレッドの機能が付けば、 最強になるんだろうね。
83 : VB++になれば幸せになりそう
84 : http://www.geocities.jp/courant_de_console/main_street/
85 : >>84 それはVBスクリプトの後継ってことなのかねぇ?
86 : QBasicの後継かも?
87 : ちょっと見てみた。 「プログラミング入門」というPDFを見つけたもんでね。 http://msdn.microsoft.com/en-us/beginner/ff423682.aspx HSPをはじめとする、フリーBASICモロモロに似た感じだな。 プログラムの実行は「F5」キーで行う。 Forの対がEndFor、Whileの対がEndWhileだったりと、 言語仕様は少々異なるが、Goto文を堂々と書くなど、 昔ながらの雰囲気を醸し出してるねぇ。
88 : 位置づけがよくわからんな VBSの後継なのか、入門用なのか 入門用つーとLOGOってあったな 定着しなかったが
89 : >>52 まじめにコンピューターを扱う学科ならアセンブラやCPUアーキテクチャの講義はやるよ アルゴリズムの講義ではモダンな言語を使うけどね 同時並行で進む感じ 両方ある程度進んだところでプチ言語コンパイラを書くんじゃないかな 関数型言語も学ぶのが普通だからその辺は楽だけど やっぱりVB(.NET含む)が流行らないのはC系と記法のスタイルが違いすぎるからだと思う。 違和感ありまくりw 今は入門でもJavaあたりになるしね
90 : COBOLなんかは、今でも需要があるらしい。銀行のオンラインシステムに かなり生き残っていて、COBOLプログラマーが足りなくて困っているようだ。 しかし…COBOLってBasicなど比べ物にならないほど、異世界の言語の ようだね。
91 : コボルねぇ・・・ 桁が多い10進数を正しく扱える言語って、 意外と少ないもんねぇ。 CやJavaで、金額を扱う変数にdoubleを使ってるのを見るけど、 恐ろしくて恐ろしくて・・・ VB6にはCurrencyがあったけど、.NETにあったっけ?
92 : んーと、ググレカしてみたら、 どうやらdecimalてのがそうか。
93 : demicalが十進整数だね 相応に遅いけど
94 : decimalって固定小数点だよね?
95 : >>93 寝ぼけていた。そのとおりです
96 : orz >>93 じゃなくて>>94
97 : VB6では64bitのint型が無かったので Currency で代用するという裏技 があった。
98 : 可変長配列があれば1桁につき1つのintを割り当てて10を超えたら次の要素に代入するって方法でどうにか実現できるんじゃね 速度? 知るか
99 : まるでアセンブラだなw
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲