|
|
发表于 2008-5-30 20:03:00
|
显示全部楼层
Re: Re:商业游戏是否采用硬编码释疑?国产游戏开发问题
Miu.C: Re:商业游戏是否采用硬编码释疑?国产游戏开发问题探讨(原创)
使用我的脚本引擎吧,立即告别硬编码。
呵呵,这句话有点说得过头了吧~~
软编码这好象说得太广了,
应用层的东西什么能一句话或一种类型就可以决定的呢?
地图数据文件这个是游戏软编码的典型应用吧~~
但是脚本却又是另一层的软编码技术,
那么也不能说有脚本的游戏就叫软编码了
如果我的游戏中没有脚本,但有地图数据文件,人物数据文件,
关卡数据文件,又可能是有界面的外部文件接口,如是否要全屏显示
又如CS中的加载机器人,等等,现在是应用太广了...
我还是相信前辈说的,每一个游戏之前都会有一个编辑器,
只是这个编辑器不公开,我们无源去使用罢了.
即时游戏中的编辑器一定要去做的,少不了这个工作.
比如在没有工具之前做场景就很麻烦,
想把一个物体显示在某某地方,必需运EXE查看结果,不正确.
又要回到代码里设置,如此不断的循环直到一个大概值或是太累为止,
如是有了编辑器那就不同了,就象VB放控件那样用鼠标拖拖拉拉就完工,
添加修改删除方便又快速.
如果你用记事本打开*.frm文件,呵呵,原来控件窗体都是在这个*.frm里实现的
要是有人了解这个脚本,你可以用记事本来编写frm窗体了~~
没打开过?我发给你看下呵呵:
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX"
Begin VB.Form otdForm
BorderStyle = 1 'Fixed Single
Caption = "游戏编辑器"
ClientHeight = 7320
ClientLeft = 150
ClientTop = 540
ClientWidth = 12150
KeyPreview = -1 'True
LinkTopic = "otdForm"
MaxButton = 0 'False
ScaleHeight = 488
ScaleMode = 3 'Pixel
ScaleWidth = 810
StartUpPosition = 2 '屏幕中心
Begin TabDlg.SSTab SSTab1
Height = 7125
Left = 75
看到了吧?回想到我们的窗体可视界面是不是很恶心?
哈哈~~~
VERSION 5.00
这个可能是版本了
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
这个一看知是加载了部件的控件啦
Begin VB.Form otdForm
这是窗体开始啦
下面的属性完毕就可以看到我们的代码了
Option Explicit
Public angle As Single, eyeX As Single, eyeY As Single, eyeZ As Single, WaterUnit As String
Private elev As Single, vmxz As Single, g_Far As Integer
Private mousex As Single, mousey As Single, mousez As Single, MouseMoveStatus As Boolean, iMouseX As Integer, iMouseZ As Integer
Private mouse_down_x As Long, mouse_down_y As Long, mouse_down_elev As Single, mouse_down_angle As Single, mouse_state As Boolean
Private Keys(256) As Boolean
Private mapSize As Integer, mapCellsSize As Single, MoveCellsValue As Single
Private GameStatus As Integer, YMPos As Single, g_Move As Single
Private Sub cmdback_Click()
cmdSetMapUint.Enabled = True
cmdSetMapY.Enabled = True
cmdPerlinNoiseCells.Enabled = True
End Sub
如果够硬的话,用记事本来写窗体了~~
更重要的是没有软编码的应用,那么一定是做不了大游戏的.
因为软编码技术不但提高了开发的可维护性,同时他是把大量的数据存到硬盘上去
想象一下,如果这个游戏只是一个地关,一个关卡那么直接在EXE上写入这些数据没问题
但是随便一个大游戏成千上万个角色,道具,地图,等,关卡最起码也不少10个,
如果直接把这些数据写在EXE上,呵呵,根本就内存不足,NEW不了东西的. |
|