游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9586|回复: 26

你们老是拿语言作比较,我快受不了你们了

[复制链接]

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-7-26 11:23:00 | 显示全部楼层 |阅读模式
我写了很多帖子,发表了很多观点,我要阐述的是一个技术问题,不是语言好坏的争论,老是觉得别人在贬低VB6,实际上贬低它的是我们自己

我重申几点

1、我没有说过VB6不能做游戏,不能做好游戏,flash下也有很多好游戏,flash的语言只不过是个脚本

2、我没有说过VB6跟其他语言比起来怎么怎么样慢,怎么怎么不好用,我用VB6写过的程序,现在很多人即使用汇编也未必能快多少

3、我解释一下大型游戏的概念,大型游戏不在于游戏的大小,我这里说的是代码开发的工程量。这个工程量如何划分,如何定义,我们可以自己稍微放大一点

我提出的观点是面向对象的程序设计对于游戏的重要性,而VB6在这方面存在语言缺陷

这句话不等于VB6不好用,VB6不能开发游戏,VB6不能做好游戏

我们要看到的是,可能我看到的代码有限,主要是论坛上大家贴出来的代码,有多的,有少的

游戏代码中图形部分和逻辑部分混淆不清(可能因为代码比较少),绘图函数和逻辑函数交叉调用,我们不强调一定要分得很清楚,但是必须有这个意识,为什么要有这个意识?如果有一天你的图形部分需要进行扩展,那么你是不是要去修改逻辑部分的代码?我这里说的图形部分并不是说你把那个画图的函数封装以下,传几个参数就完了

我举个例子,比如你做了一个粒子发射器,作一雪花的特效,这里就有3层了,首先你需要写一段函数来绘制图元,然后写一段函数来处理粒子,再写一段程序变成雪花,这实际上是3个对象,对象是一层套一层,一层比一层接近逻辑,但最终雪花出来了并不表示就完了,我们要在游戏中用到雪花,可能有场景需要,有的场景不需要,有的场景一会要一会不要,常规VB6下面我们会把它做成User Class,但这些User Class之间是引用的关系,也就是说粒子中使用了绘图对象,雪花中使用了粒子对象,场景中使用了雪花对象,他们之间是一种包含引用关系,但雪花中使用了粒子对象并不符合我们的逻辑,因为雪花就是粒子,它是一种继承关系,我们为什么要这样来看待雪花跟粒子的关系?这是因为我们可能还需要扩展一个火焰特效,火焰跟雪花他是不一样的,我们为了写一个火焰特效就必须扩展粒子对象使他能够产生一个火焰效果,反过来,火焰特效会影响到雪花,如果我们看作包含引用,我们所要改动和扩展的代码就非常多,但如果看作继承关系,我们就会节省很多代码

还说一个例子,现在大多数游戏都有UI,我还没有看到你们的程序中包含UI,UI就是一个面向对象非常典型的例子,比如我们有一个绘图对象和文字对象,我们很容易把两者结合起来做成一个像VB中Label的对象,VB6中有很多人已经实现用Label对象来模拟TexxBox,Button等控件,这样我们就实现游戏中的形形色色的UI,但是你们想想这个代码量,如果我需要做一个带下划线的超链接按钮,比如我想做一个多行文本的按钮,那么为了实现这个我们就需要回头去修改按钮对象,从而修改Label对象,从而修改绘图对象,但如果我们继承一下进行一下扩展,这个工作量是可想而知的

何况这只是一个游戏,如果你需要做两个或者更多的游戏,这些游戏比较相似或者不相似,那么你能想象,VB6写出来的东西需要修改的部分有多少?需要新增的对象有多少?这么来说,如果你觉得你写出来的代码(我们就称之为引擎吧先)很容易就用于其它游戏,意味着你的引擎需要包含的东西就非常多,因为你的引擎不能继承,不能继承就意味着后来的代码只能调用你的函数去实现功能,而不能修改你的函数去实现功能,如果要修改就必须重写你已经写过的函数,要不就反过来修改引擎

我见过一个用VB6封装的很好的引擎,用起来很方便,但做游戏却非常困难,为什么,因为我要重新去封装他封装过的对象,而且需要封装很多我自己逻辑上需要的元素

大家同时也可以看到,以前我们写VB程序,窗口上画一画,拖一拖控件,frm文件多,而等我们写游戏的时候cls文件多,窗口只有一个,好像也拖不了什么控件,原来VB的强大优势,一点都体现不出来,这一点从一个侧面反映当我们遇到这样的游戏,我们究竟该利用VB做点什么?


我不承认写游戏一定要用这种方式,但是现代游戏就是这么做的,我希望的是大家能够理性的看待游戏开发,从中能学习到一些我们在VB6中学不到的东西

4

主题

106

帖子

106

积分

注册会员

Rank: 2

积分
106
发表于 2005-7-26 13:09:00 | 显示全部楼层

Re: 你们老是拿语言作比较,我快受不了你们了

我?大大呀,?祟}其??可以不用那???永 [em7]
看?你重申的??c以及整篇文章?热莸奶接?
大致上有?到VB6本身的特色在??蛟O?上比????]
而且不管是效率或是延?性都比?有瓶?
但也的?不否?VB6可以拿?碜鲞[?
?然?在?碚f那可能是??I?的,大公司?作相??捅容^不???B6
??就是?言比?真的?]有什?意?
每一??言其??只要用的?用的高?都不是???
?有就是不要限制於VB6有空也可?碛糜?B.NET唷 [em13]
?言也??砷L,技?性???只要有人研究也是能克服的 [em5]

43

主题

229

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
QQ
发表于 2005-7-26 14:55:00 | 显示全部楼层

Re:你们老是拿语言作比较,我快受不了你们了

没看完你的话哦,不过觉得很有道理
还有楼上的能不能不要用繁体字啊

4

主题

106

帖子

106

积分

注册会员

Rank: 2

积分
106
发表于 2005-7-26 15:39:00 | 显示全部楼层

Re: 你们老是拿语言作比较,我快受不了你们了

嗯...不希望我使用繁?字呀@@...
???0.0... ?不到耶,我的系??]有?法打??字
我是台??淼某?T,如果有造成你的困??真是抱歉呀 [em7]

2

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
发表于 2005-7-26 15:44:00 | 显示全部楼层

Re:你们老是拿语言作比较,我快受不了你们了

我?得繁体字?是?好看的,比?有古味 :)
只是??起?硖???罚?蜃????好

6

主题

60

帖子

80

积分

注册会员

Rank: 2

积分
80
发表于 2005-7-27 04:21:00 | 显示全部楼层

Re: 你们老是拿语言作比较,我快受不了你们了

楼上的楼上
...
我也是台湾人阿..
打简体是可以阿..
不过比较麻烦的步骤是..拿到Word里面选择繁简转(工具->语言)
换然后贴上来就行了



某台湾游戏学院的烂学生 留
[em5]

4

主题

106

帖子

106

积分

注册会员

Rank: 2

积分
106
发表于 2005-7-27 11:33:00 | 显示全部楼层

Re: 你们老是拿语言作比较,我快受不了你们了

其??用 Dr.eye ?套??的多??入也可以?到~
但我?得原汁原味比?好@@"
而且我??平常?K不???尤ビ醚?!
?道一???英文的??硪惨??迫?中文??
那真的是太可?z了啦 [em7]
而且之前有碰到大?的同胞和我聊天
他?得我用??中文反而更奇怪
因?檎Z句和??有些不一?勇?..
直接??e人清楚我??是台??淼呐笥堰?比?好 [em10]
?然如果??的大大??都希望我用??中文
那我?是??睦?但?在?得??硬诲e呀 [em13]

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2005-7-29 15:15:00 | 显示全部楼层

Re:你们老是拿语言作比较,我快受不了你们了

微软拼音输入法可以输入繁体和简体。

0

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2005-7-29 21:03:00 | 显示全部楼层

Re:你们老是拿语言作比较,我快受不了你们了

"软体"听起来好奇怪

1

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2005-7-30 10:56:00 | 显示全部楼层

Re:你们老是拿语言作比较,我快受不了你们了

同意楼主观点,大家还是把时间用在学习上!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 23:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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