游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3959|回复: 13

又来挨骂了,大家拍我啊!

[复制链接]

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-10-3 13:01:00 | 显示全部楼层 |阅读模式
国庆难得清闲几日,说说废话,被大家拍拍。


      观今日VB论坛,已然有了几分学术气息。可说来说去,大多还是在研究vb6。
      我是比较认同天魂这样探索vb.net的同志。我反对vb6言辞之激烈,大家已有见过,我就不再激起民愤了。
      我真正进入游戏开发这个行当,是从vb6开始的。我唯一在这个论坛上发过的过万行的完整游戏代码,也是用vb6写的。我所自豪的程序,并以之吹嘘游走于gameres和csdn上的程序,也全部是用vb6编码的。我自荐来当vb斑竹时,我也还是一个vb6的忠实拥护者。
      可是我在用vb6从业以前,我用的是c,不知道有几个人还记得,有一个叫做北方狼电脑工作室的小网站,不知道有几个人认识绝情公子这个绝情的家伙(我不是他,只是帮他写过东西,用c写的,鼠标点选得拼音输入法),我是通过c走进这扇门的,当时比较崇拜的是云风。
      98年的时候,抱着玩玩看的心态接触了vb6,之前也玩过vb,但都没写出什么东东,这时候才真正深入的了解了一点vb,说实在的,当时心里也很斗争,这东西,能做游戏么?后来知道dx7出了,打消了我所有的疑虑。我是绝对对vb6的运算能力没信心,dx让我将最核心的图形运算部分解脱了。
      到99年的时候,有一个机会做游戏,商业的游戏,我毅然选择了换用vb,原因很简单,我要挑战,当时国内呼声一片,说vb6不能做游戏,想我也是有些叛逆吧!^_^
      项目做完了,我也失业了,原因更简单,vb6做游戏的,人家不要,做别的,我不干。好啊,然后就一直卖电脑。
      之前我一直没有反对vb6,因为我不知道放弃了vb6,我于vb之上所积累的东西,都拿去干什么?可我也不能再用vb6,落后的语言特性,实现一些算法,不是头破血流,就是事倍功半,不支持d9,更是永远的痛。所以就一直卖电脑。
      直到出了vb.net,我知道我的程序生涯又会开始了,我根本不在意别人说vb.net不是vb,我一点也不认为vb.net舍弃的是vb6优秀的东西,我也不认为加强的语法是复杂。相反,学了vb.net以后,我吃惊的发现,无论是我玩c积累的东西,还是玩vb6积累的东西,都有所释放,我顺便又学c#,半个钟头就能用了。反观c++,也发现我有了更多的认识。2004年底,机会来了,我只用了14天学vc,然后就成了一个游戏程序,到现在。
      实际上vb.net给我的只是一份信心,可是我仍对他赞誉有加,若不是出了这么一门语言,我怕还在卖电脑。
      我随vb6一起殒落了,我随vb.net一起重生,我反对vb6,怕我的悲剧再次上演,怕只上演了殒落,而没有复活。还是那句话,vb版不是为vb6而存在的,我对vb.net有信心,对vb版有信心。

26

主题

694

帖子

704

积分

高级会员

Rank: 4

积分
704
发表于 2005-10-3 13:32:00 | 显示全部楼层

Re:又来挨骂了,大家拍我啊!

vb确实不适合做大型游戏

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-10-3 16:40:00 | 显示全部楼层

Re:又来挨骂了,大家拍我啊!

我声明我对事不对人,即使我再批评VB.NET那我批评的也是个死物,我没搞人身攻击,
任何人都可以给MS的软件提意见,大家说是不是?现在真的就还没有什么VB.NET的产品,可能我这个人比较现实。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-10-3 22:57:00 | 显示全部楼层

Re: Re:又来挨骂了,大家拍我啊!

林原猫猫: Re:又来挨骂了,大家拍我啊!

vb确实不适合做大型游戏



哈哈!等我的VB大游戏吧!

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-10-6 11:03:00 | 显示全部楼层

Re:又来挨骂了,大家拍我啊!

我老毛病改不了,就是不能离开BASIC,目前也不想搞的太专业。

13

主题

66

帖子

86

积分

注册会员

Rank: 2

积分
86
QQ
发表于 2005-10-10 05:00:00 | 显示全部楼层

Re: Re:又来挨骂了,大家拍我啊!

林原猫猫: Re:又来挨骂了,大家拍我啊!

vb确实不适合做大型游戏

冷静一点,先看这个,然后再说也不迟!
http://download.gameres.com/production/mengxiang/game.rar
这个Demo在改善一些和Diablo比得上。请你记住!!!这个是VB做的! [em2]

187

主题

600

帖子

606

积分

高级会员

Rank: 4

积分
606
QQ
发表于 2005-10-10 12:45:00 | 显示全部楼层

Re:又来挨骂了,大家拍我啊!

兄弟见TV8 3D游戏引擎吗?开源的全部是VB6代码,编译为Dll给C调用,NB!哪个家伙水平这么狠?我拜他

0

主题

80

帖子

80

积分

注册会员

Rank: 2

积分
80
发表于 2005-10-10 14:19:00 | 显示全部楼层

Re:又来挨骂了,大家拍我啊!

只要能调用DirectX API
用什么语言编游戏都一样难度的

VB不擅长的是一些比较特别的软件 比如 编译器 单片机接口软件 和对空间速度十分敏感的软件 因为VB的变量类型太少了。。。倒不是不能 只不过相比起来很麻烦

50

主题

382

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2005-10-10 20:35:00 | 显示全部楼层

Re:又来挨骂了,大家拍我啊!

我从来不怀疑VB6的速度,但现在有了更好的(VB.NET),大家为什么不进一步呢!

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-10-11 00:54:00 | 显示全部楼层

Re:又来挨骂了,大家拍我啊!

程序执行的速度跟语言没有关系的,跟语言反汇编成本地代码的效率有关系

我举个很简单的例子

C/C++:

int a[1];
a[0] = 0;

那么在a[0] = 0,汇编代码只有1句

但是VB6中
Dim a(0) As Integer
a(0) = 0
a(0) = 0的汇编代码是5句,其中包含一个越界检查的代码

在VB.NET中
Dim a(0) As Integer
a(0) = 0
Dim a(0) As Integer的代码就已经有4句了,其中包含Call语句调用了一个过程
a(0) = 0的代码也是5句,包含一个越界检查的代码

我们说一段代码的执行速度如何,并不是说谁的代码执行的速度快,代码执行的速度只和硬件有关系,而是看编译器编译代码的效率,如果一个语言越高级越好用,就意味着编译器替你写了很多代码,这些代码都是需要消耗时钟周期的

那么是不是说高级的语言就一定比低级的语言执行效率高呢,并不是这样的,如果你在C/C++的代码中实现和.NET一样的功能,那么其实两者的代码是差不多的,比如你在C/C++的数组赋值代码中每次都检查数组是否越界,那么至少和VB6的汇编语句是一样多的。也就是说如果你的设计的功能更加利用高级语言的功能那么你的代码执行效率就是最高的,说的简单点,就是高级语言的一行代码实现了10个功能,如果你需要利用了其中的全部10个功能,那么这个代码就是效率最高的,如果只需要利用5个功能,那么剩下的5个功能的部分就是冗余代码。

低级语言的好处就是我们可以控制每个细节的功能来节省时钟周期,大家不要小看这一点点时钟,同样的代码,VB6至少有10%以上的代码是不必要的,.NET至少有30%的代码是不必要的,如果你的代码设计的不好,这种垃圾就会更多,这种垃圾不是说凭你的源代码优化就可以解决的,它是反编译的过程中产生的,解释型的代码就会更多,比如说VB6,它在某种程度上甚至还不如.NET的即时编译型代码

但是我们并不需要为这种冗余代码去担心,在某些情况下,编译器隐含的代码大大简化了我们编写软件的工作量,在考虑工作量和效率的情况下我们可以做一下权衡,比如VB6很容易就能生成一个我们所需要的程序,我们希望编译器给我们做一些工作

当然编译器也可以有一些控制来提高这些,比如数组的越界检查,VB6可以去掉越界检查,但有些是语言特有的,无法去掉,比如给字符串赋值,总是会有些检查的,如果你频繁用到这些,那效率肯定快不起来,VB6会频繁在解释宿主和解释伪代码之间来回的切换,特别是函数进栈出栈的时候,这些都是语言特有的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 10:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表