平顶山游戏开发制作作

《游戏编程》第一部 基础篇 -
《游戏编程》第一部 基础篇
文章内容:
  有了一个目标之后,往往人们比较有信心和动力。所以,我重新修改了一下教程的安排,在这儿插入了“零”篇。
  在基础篇里,我们将逐步学习关于游戏制作的基本知识,为后续的开发工作奠定基础。那么,在基础篇结束的时候,我们可以弄出个什么东西呢?我们看图:
  这是我写的一个演示程序的截图,暂时定为我们基础篇教程的目标。
  该演示程序包含了一些基本要素,如: Windows 程序的基本框架、DirectDraw 的基本使用方法、精灵的使用和 一些简单的关于
DirectInput
的东西。但是,这个程序没有对障碍和遮挡进行处理,也就是说,人物会走到任何地方去。因为一些关于地图方面的知识,我将会放到提高篇里。
  本范例在以下环境中通过:VC6.0、DirectX 7.0/8.1 SDK、Win2000/WinXP
  说明 []
  其实现在网上关于游戏编程的技术文章越来越多了,但是我发现关于最基本的了解游戏的文章还是比较少的。大多数文章是以 DirectX
作为开始教学起始的,因此,我觉得花点时间写下这篇文章还是值得的。今天,我就开始介绍一些关于游戏编程的基础东西,以便大家能够真正的开始了解游戏,从而能够很快的转入游戏开发。由于是针对新手的,如果您已经转入程序编写阶段,您完全可以抛开了。我将采用一种不同于网络上现有的教学方法,来讲一下游戏程序开发的奥秘:)
  大家可以看到游戏中主角连贯的出招动作、华丽的场景、震撼的战斗效果,这一切似乎很难让人想象程序是怎么实现的。也许您在上课无聊的时候尝试过在课本的角上画上几个人物动作的分解图,然后一遍又一遍地翻着它,觉得很好玩。其实您已经在无形之中接触了游戏动画的基本原理。其实游戏动画的步骤可以想象成这样:
  手中拿着两张纸,把一张放在后面。其实这个就是 DirectDraw
的两个成员。我们先把一个分解动作画在背后的那张纸上。那么,我们当前看到的就是一个“白屏”而已。然后,我们“快速地”将后面的那张纸拿到前面来。呵呵,你现在看到的是第一个分解动作了吧!那么,怎么“快速地”呢?不要紧张,这些问题都被
DirectDraw
完美的解决了,别急,今后会详细的讲解的。现在,当前的两张纸已经交换了,而且也看到了动作(一个静态的而已),那么后面的“白纸”怎么办呢?我们先拿“橡皮”将纸擦一遍,然后,将第二个分解图画上,接下来?呵呵,自己干吧,应该明白了吧。经过再次的交换,我们已经在屏幕上看到第二个动作了。我们继续把后面的纸擦干净,再画第三个动作,再交换,继续下去......由于我们的“快速地”动作相当快,所以感觉不到有任何问题。
  或许有人会问:为什么不直接在第一张纸上进行“擦-&画-&擦-&画”的动作呢?这个就是为了我们平常所说的“闪屏”问题而进行的解决方案。由于直接进行动作,速度相对较慢,有时用户会在屏幕上看到一闪一闪的现象。我们用“两张纸”的话,就完美的解决了这个问题。(啊?还闪屏?呵呵,你小子把显示器坏了的问题都怪我啊?#¥%……*)
  既然上面的游戏的“内幕”已经掌握,那么我们来看看在上一节中涉及的“武器”和基本知识。或许本篇所涉及的东西是基于理论的多数,但是,这将为理解在后面即将写的程序部分会打下很好的基础的。所以咬咬牙,看完吧!(啊?没有牙了啊?大家应该鼓掌吧!连牙都没有长齐的“3、4点种的太阳”都开始学习了,你们还有理由吗?恩?是大娘啊?那更应该值得学习了!跑题:)
  首先要介绍的第一位主角是 Windows 编程中的必要元素: RECT 。是英语 rectangle
的简写,意思是矩形。它有什么用呢?我们在上面不是讲到了动作的分解动作吗?我们看右图:
  这个图就是一个简单的行走动作分解图,复杂的可能有10帧左右哦:)那么怎么在程序中实现自动在纸上画出正确的图片呢?(其实我一直在考虑是否将这部分内容加上,因为实在太基本了。但是每个人都这么想的话,基础的谁来教呢?算了,让别人的口水淹死我吧!)假设您已经有点
C++ 语言的基础了。这个教我教的话,说不过去吧:)请看下面的代码:
#define m_Width&&
// 每个动作的 宽度
#define m_Height& 48&&
// 每个动作的 高度
void ShowThePic()
&&& static RECT&&&&&&&&&&&&&&
// 矩形对象,用于精确定位所要的当前动作
&&& static int CurrentFrame = 0;&&&
// 当前动作的编号
&&& static int Direction = 0;&&&&&&
// 当前的方向
&&& rect.top = D rect.bottom = (Direction+1)*m_H&
// 对当前矩形的大小定义,数学的问题哦
&&& rect.left = CurrentF rect.right =
(CurrentFrame+1)*m_W&
// 根据英文的意思也可以知道在给谁赋值
&&& BltPicToScreen();&&&&&&&&&&&&&&
// 一个伪函数,作用是将当前矩形内的图形复制到屏幕上。
&&& CurrentFrame++;
&&& if( CurrrentFrame==3 )
&&&&&&& CurrentFrame = 0;
// 这个步骤能够保证动作的循环
  不知道这么个函数你能否看懂。之所以要采用 static 静态变量,是因为我们这个函数程序要循环运行。如果直接写个 int
的话,每次执行都会被赋回原值 0,那么图片就不会变了。
  上面这段代码其实并不是那么理想。因为程序自己在那儿一个劲地运行,完全没有我们控制的份儿。别急!来看下面这份修改过的伪代码:
#define m_Width&& 32&&
// 每个动作的 宽度
#define m_Height& 48&&
// 每个动作的 高度
void ShowThePic()
&&& static RECT&&&&
// 矩形对象,用于精确定位所要的当前动作
&static int CurrentFrame = 0;
// 当前动作的编号
static int Direction = 0;&&&
// 当前的方向
rect.top = D rect.bottom = (Direction+1)*m_H
//对当前矩形的大小定义,数学的问题哦
& rect.left = CurrentF rect.right = (CurrentFrame+1)*m_W
//根据英文的意思也可以知道在给谁赋值
BltPicToScreen();&&&&
// 一个伪函数,作用是将当前矩形内的图形复制到屏幕上。
&&& if( LeftArrowDown() )
// 如果 左箭头 被按下
&&&&&&& Direction = 1;&&&
// 赋值方向为 1
&&&&&&& CurrentFrame++;
&&& if( RightArrowDown() )
&&&&&&& Direction = 3;
&&&&&&& CurrentFrame++;
&&& if( UpArrowDown() )
&&&&&&& Direction = 2;
&&&&&&& CurrentFrame++;
&&& if( DownArrowDown() )
&&&&&&& Direction = 0;
&&&&&&& CurrentFrame++;
&&& if(CurrrentFrame==3)
&&&&&&& CurrentFrame = 0;
// 这个步骤能够保证动作的循环
  经过这么一修改,问题再次得到解决。上面的代码就能够响应用户的操作了。当然,你这么直接在程序里输入这些代码是不行的:)因为是“伪代码”。你得根据实际情况,自己相应地做些修改,才能使程序运行!
  (题外话:不晓得这么进行教学,你是否能够一点一点的积累到知识?这种教程是不是合适?请到论坛内发表意见,我真的很想能够摸索出大家接受的方法,有利教学)
  欢迎回到教程中来!有人或许会问,为什么这么麻烦要把图形放在这么个图片里头,不一个动作一个图啊?呵呵,想想,那要多少图片啊,很难于管理的。况且,这样并不能避免使用这种常用手法,因为
RECT 已经是一个成员。游戏里不能不用他的!
  哇,口水干了。(其实是手累了:)我们下回再见吧。
  下回预告:
  少年侦探柯南为了查清楚事情的真相,他......(?还真的预告啊?)
  不好意思,习惯性用语了:)在下回,我会讲一下,如何将今天的代码整合到程序中去。
  Welcome back!很高兴再次与你相遇教程。废话不多说,继续。
  上次的代码片段,说实在,拿在手里没有用。为啥?因为不能运行的啊:)我们这次就按照上次的安排,讲如何将显示图片的代码片段整合到程序中,让它能够具体的体现出来。
  我将在这儿讨论 Windows 编程,而不是 MFC 。关于 MFC 和 Windows 的不同和各自的优点,我们不多涉及了。 MFC
就是微软的一个封装开发库,极大程度的降低了 Windows 开发的复杂。但是,我们还是继续 Windows 编程,呵呵。
  我们来看,一个基本的 Windows 程序是一个窗口对吧:)我们所玩的游戏,其实也是有窗口的,只不过是看不见的,而且被
DirectDraw 掩盖了而已。那么,如何创建一个窗口呢?我们来看:
BOOL Init(HINSTANCE hInst, int nCmdShow)
&&& HWND hW&&&&&&&&&&&&&&&&&&&&&&&&&&
// 窗口的句柄,就是一个储存窗口的对象
&&& WNDCLASS WndC&&&&&&&&&&&&&&&&&&
// 用于注册窗口的对象
&&& WndClass.style = CS_HREDRAW | CS_VREDRAW;
// 定义窗口的类型
&&& WndClass.lpfnWndProc = WinP&&&&&
// 指定了窗口消息的处理函数 ** 关键!
&&& WndClass.cbClsExtra = 0;&&&&&&&&&&&&
// 没有特定意义
&&& WndClass.cbWndExtra = 0;&&&&&&&&&&&&
// 没有特定意义
&&& WndClass.hInstance = hI&&&&&&&&&
// 窗口的实例
&&& WndClass.hIcon = LoadIcon(hInst, IDI_APPLICATION);
// 指定窗口的图标
&&& WndClass.hCursor = LoadCursor(hInst, IDC_ARROW);&&
// 指定程序的指针
&&& WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
// 指定背景色为黑色
&&& WndClass.lpszMenuName = NULL;&&&&&&&
// 指定菜单为无,游戏不需要
&&& WndClass.lpszClassName = &GDIM_GAME_ENGINE&;
//这个程序注册的名字
RegisterClass(&WndClass);&&&&&&&&&&&
// 注册程序
hWnd = CreateWindowEx(WS_EX_TOPMOST, &GDIM_GAME_ENGINE&, &GDIM_GAME&,
WS_POPUP, 112, 84, SCREEN_WIDTH, SCREEN_HEIGHT, NULL, NULL, hInst,
// 这段代码就是实现了一个窗口的创建
// 我们可以通过来检测是否创建成功。如果失败将返回一个 FALSE 的值。
if(!hWnd) return FALSE;
ShowWindow(hWnd, nCmdShow);&
// 显示窗口
UpdateWindow(hWnd);&&&&&&&&&
// 更新窗口
  好了,到这儿呢,我们就成功的创建了一个窗口。我们回头看我注了“**”的地方,关于这个函数,我们得写个同名函数来处理 Windows
的消息。呵呵,不好意思,再看一个函数:
BOOL bActive = FALSE;&&&&&&&
// 用于判断程序是否运行的变量
long PASCAL WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM
switch(message)
case WM_ACTIVATE:
bActive = TRUE;&&&&&
// 当程序被激活时,赋值 TRUE
case WM_SETCURSOR:
SetCursor(NULL);&&&&
// 设定鼠标为不显示
return TRUE;
case WM_KEYDOWN:
switch(wParam)
case VK_ESCAPE:&&&&
&// 处理按下 ESC 键的反应
&&&&&&&&&&&
PostMessage(hWnd, WM_CLOSE, 0, 0);&&
// 发送一个关闭窗口的命令
&&&&&&&&&&&
case WM_DESTROY:&&&&&&&&
// 在窗口即将销毁时的反应
PostQuitMessage(0);&
// 发送一个结束的消息,必须的!
return DefWindowProc(hWnd, message, wParam, lParam);&
// 一些没有像上面一样具体定义的消息的处理
  这个函数就是用来处理 Windows 的消息的,是一个标准程序必要的。
  再来最后一个重要的函数。不好意思哦,实在是不想这么写,但是想想,在这个函数结束后,你就可以实现一个具体的窗口了哦:)
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR
lpCmdLine, int nCmdShow)
// 定义一个消息的对象
if(!Init(hInst, nCmdShow)) return FALSE;&&&&&&&&&&
// 还记得上面的那个函数吗?
// 程序的循环
if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
// 不要特别注意的
&&&&&&&&&&&
if(!GetMessage(&msg, NULL, 0, 0 ))
&&&&&&&&&&&
return msg.wP
&&&&&&&&&&&
TranslateMessage(&msg);
&&&&&&&&&&&
DispatchMessage(&msg);
else if(bActive)&&&&
// 就是上面的“程序是否激活”的变量判断
&&&&&&&&&&&
ShowThePic();&&&
// 显示人物图片的函数,上节的内容,就是整合在这儿的!
else WaitMessage();&
// 没有消息时,就等消息:)
  其实到这儿,一个简单的程序已经可以出炉了:)编译,运行,你将看到一个黑色的窗口。这个窗口不同于一般的窗口,它没有平常的标题栏,这个才是适合我们游戏的。我在这儿给出完整的代码,但是,无法将上节的内容以程序的形式表现出来,因为涉及到了
DirectDraw 。我不想过多在教程中涉及未讲的知识,因为那样会影响对现有知识的理解。
  下章教程,我将开始介绍 DirectDraw 了,以便能尽快将显示的内容整合,同时我会保持教程和代码的详尽。
  本范例在以下环境中通过:VC6.0、DirectX 7.0/8.1 SDK、Win2000/WinXP
  说明 []
  真的很高兴能够继续我们的教程。大家也一定等了许久了,怪我太懒。
  上次,我们讲到了窗口的建立,并且附带了源代码,不知道大家有没有编译和运行。不是当老师的唠叨哦,大家一定要试试的,因为电脑这个东西,尤其是编程,要不断地实践才能掌握的。
  今天,我们来点轻松的,不涉及代码,我们来一次“纸上谈兵”。我今天是要大家选择适合自己的游戏引擎。曾经有很多网友问我:“引擎
”到底是什么东西?我也回答过许多遍了,但是,我从没有嫌烦过,因为我也是这么过来的。之所以取名叫“引擎”,他就像汽车之类的
Automobile
一样,得有一个家伙驱使他工作。而游戏引擎呢,他就负责接受用户输入,交付自己的内部工作机构,处理,并最终以声音、图像等形式表现出来。
  现在大家在网络上可以看到、并且下载到许多免费的游戏引擎,其中有2D的,也有时下流行的3D。国内有许多网站也在制作各自的引擎,有个别的的确有很高的效率,而且使用很方便,比如
云风 的 “风魂游戏开发库”。这些引擎都是将我们今后会碰到的 DirectDraw、DirectInput、DirectPlay 等等
部件整合,封装,使其便于使用。像我其实自己也在使用别人的引擎来开发自己的游戏制作库,那么,你该选择怎么样的引擎呢?我觉得这个完全取决于你对游戏开发的耐心及专研。
  现在,DirectX 已经发展到了 9.0 ,而且,在 8.1
的开发库中,我们很高兴的看到,微软也已经封装了以前繁琐的步骤,因此,DirectX 8.1b
的开发库,不失为一个比较好的基层函数库。为什么说他还只是一个基层的呢?因为他还没有像著名的 CDX 那样有比较高级的效果封装在里头。CDX
是我比较喜欢的封装库,他不仅使用简便,而且可以实现使用频率比较高的功能,比如 Alpha
混合,虽然他不像其他的引擎来得功能强大,但是,他用于自己的研究和扩充是很好的,通过使用 CDX ,你对 DirectX
可以有个比较理性的认识。
  到这儿,大家应该发现了,我们以前公布的教程目录和今天的对不上号,因为我发现现在其实有好多网站都有关于 DirectDraw
编程的辅导,而且,资源丰富。我相信,大家通过好好的分析这些代码,然后,大量的实践,就会打造你比较坚固的 DirectDraw 编程的基础了。
  我们今后的教程往哪个方向走,我正在考虑,我也很想看到大家的好建议,作为一个游戏编程入门者,你最想看到怎么样的文章?哪怕是一个不明白的地方,都可以提出来,我可以做专题来给大家讲解一下。DirectDraw
方面的,专题在近期是不会出现了,还请大家见谅!
  最后,告诉大家一个可能算是比较好的消息,我们的教程游戏,还在更新和完善之中哦...
本站中所有文章以及图形均为作者本人、公司所有,本站所有资讯仅供参考,若有任何损失本站概不负责,请自行斟酌。
All Rights reserved.
This site is optimized for at least
resolution (hi-color) viewing
with a browser that supports style sheets.虚拟现实游戏该如何制作?_创事记_新浪科技_新浪网
虚拟现实游戏该如何制作?
  欢迎关注“创事记”的微信订阅号:sinachuangshiji  文/台伯河  触乐原创,转载请注明作者、出处。微信公众号:chuappgame  就在3天前,Oculus Connect 2开发者大会刚刚在美国洛杉矶落下帷幕。在会上,Oculus官方再次确认了Oculus Rift虚拟现实头戴设备在明年的第一季度就会真正和消费者见面了,而14款为之量身打造的游戏也将同期上市。  我们一直在讨论虚拟设备的未来,但和游戏发展史上的历次浅尝辄止所不同,这一次虚拟设备的到来更显得是有备而来。此前,在触乐的一文中,我们对VR设备的硬件原理作出了深入浅出的介绍,今天作为该文的姊妹篇,我们再来从软件——即游戏开发的角度来聊聊VR。  虚拟现实(Virtual Reality,以下简称VR)将成为游戏乃至整个消费电子领域的下一波浪潮,这应该是毋庸置疑的,不过对于VR游戏应该如何制作这个问题,目前还有太多厂家和玩家对其有所误解,毕竟它与传统桌面乃至移动游戏场景有着很大差别,以往制作桌面或者移动游戏的经验与思路,不能直接照搬到VR游戏中来。  到目前为止,我们还没有看到任何一款针对VR的游戏正式上架。目前我们所能获得的最优秀的VR游戏体验,就是Valve在Vive上所发布的基于《传送门》的《Aperture Robot Repair》Demo。从这个Demo里,我们可以看到Valve作为一家致力于VR技术多年的公司,对于VR游戏到底应该如何制作所建立起的一系列规范。  Vive相比于目前的Oculus最大的优势,就在于提供了室内(Roomscale)VR体验。玩家可以在一个4×4米的房间内四处走动来体验VR游戏。在Vive安装好基站头显手柄等一整套硬件系统之后,Valve的SteamVR工具会引导玩家先配置整个房间。用户戴上头显,使用手柄确定整个室内空间的大小以及地板高度。一旦确定好室内的可用空间之后,在游戏里当用户接近边缘时,就会出现一道虚拟的墙壁提示用户。  Demo开始,我置身于光圈科技丰富体验中心(Aperture Science Enrichment Center)的一个普通的工作间,广播系统很贴心地引导我四处探索。Valve的新手引导做了这样几件事情:  1. 让玩家拿着手柄移动到一个特定的辐射充电器上充电;  2. 让玩家按下手柄上的按钮,明白手柄的按钮机制;  3. 使用手柄拉开一个抽屉,让玩家明白如何使用手柄与VR环境进行交互。  玩家拉开第一个抽屉看到的是一卷机器人的蓝图,第二个抽屉是一盘坏掉的蛋糕(熟悉《Portal》系列的玩家都知道这是什么意思),第三个抽屉则是一个小小的办公间,《Portal》风格的小黑纸片人正在办公。而当他们看到巨大的玩家之后,就会开始恐慌并且四处暴走,最终自己把抽屉收回去。这里玩家可以好好观察一下Valve带来的极其精细的场景设置,接下来就是这个Demo的主要内容:维修Atlas。抽屉里的小人。“你是他们的神灵”,广播系统如是说  抽屉的背后是一扇门,玩家拉动门旁边的把手,门就会打开,遭遇了严重故障全身冒着火花的Atlas颤颤巍巍地走进来。实际上Valve隐藏了手柄的一个功能:如果玩家的自由移动区域不足以覆盖整个Demo的房间大小,那么按下手柄的触板,游戏中的手柄就可以伸出去一段距离让玩家够到远处的机关。这是一个相当有用的功能,Valve并没有将其包含在教程里,玩家只需要试着按一下触板就能明白。  维修Atlas显然是一个非常复杂的工作,拉开机器人的前面板,无数复杂的零件在面前旋转。广播系统慷慨地给予玩家一分钟的时间来修好机器人,我们大可以慢慢修——等等,一分钟时间怎么够!Atlas被吊起来,玩家需要把它的前面板拉开  就算玩家勤劳地将构成Atlas的那一堆零件在眼前转来转去,Demo里也没有给出任何提示告诉玩家究竟应该怎么修它。友善的广播系统在耳边不停呱噪,一直说“不要急慢慢来”,但是60秒过去了,一下子所有的零件全部掉在了地上变成一堆垃圾。熟悉《Portal》系列的玩家都明白,这是光圈科技一贯的风格—— 一开始就告诉你,手柄需要玩家穿着辐射防护服才能充电,但是紧接着广播系统就说明“没有检测到防护服”。在光圈科技丰富体验中心,人类的地位仅限于“Test Subject”(测试对象)。  “哦,是你。”在玩家毫不意外而悲惨地失败之后,GLaDOS出现了。“我一开始是反对这个项目的,人类怎么可能修得好机器人?”她还是那样的刻薄和毒舌,这也是我们爱她的原因,不是吗?不过这次,我们终于直观地领教到了GLaDOS的体积,她可真是大呀。  “看来以你的智商,只能做这个了。”GLaDOS说着,这个普通的工作间被拆散,玩家发现自己正好是在体验中心的一个轨道平台上。四周的导轨送来新的面板,将整个房间重新组装起来,变成了一个标准的光圈科技实验室的样子。墙面打开,远处就是我们熟悉的按钮,方块和出口。紧接着巨大的铁锤落下,Demo结束。最后GLaDOS果不其然出现了  Valve在这个Demo里展现的是如何引导用户体验虚拟现实。虚拟现实与往常的任何一种游戏体验都不同,它所带来的沉浸感是史无前例的,也带来了全新的对于身体感知的要求。Oculus所极力确保的坐式(Seated)VR体验不太涉及到身体感知,Oculus在CV1的包装里附带了一个Xbox One手柄作为交互方式,这也是玩家早已熟悉的手柄交互。然而一旦涉及到站立的,可以移动的VR体验,那么身体感知立刻就成为一个很大的问题。Valve不但需要在硬件上使用分立的手柄设计,还得在内容上引导玩家习惯使用分立手柄来进行交互,这才是《Aperture Robot Repair》这个Demo的重要意义。而Valve通过之前“Portal”系列向我们展示了,他们在引导玩家进入游戏的能力绝对是大师级。Atlas的零件做得非常精细  就目前来看,VR游戏的引导与传统的游戏差别很大:因为传统游戏只发生在屏幕上,制作方可以限定引导元素只出现在屏幕上。而在虚拟现实中,玩家不一定会盯着事件发生的地方。笔者已经目睹过太多的玩家在进行完一个事件之后就停在了那里:我下一步该去做什么?虚拟现实里没有屏幕,不会有一个大大的按钮告诉你“点这里”。而且,在高沉浸感的虚拟现实中,太过于明显的按钮和提示,会对沉浸感造成一定的破坏。对于已经习惯了探索和强交互的核心玩家这都不是障碍,而对于才进入虚拟现实的玩家来说,引导仍然是一个需要解决的问题。  其实这也意味着,虚拟现实游戏将不再会是现在的快节奏,而是会重新慢下来。在虚拟现实中玩家需要时间探索,太快的节奏以及同时发生太多事情会让玩家无所适从,虚拟现实的游戏比以往的游戏更加接近于现实。  第二个问题则是在虚拟现实中如何移动。虽然Valve使用Lighthouse技术实现了室内VR体验(Oculus也展示过他们已经能够提供同样的体验了),然而这仅仅是在一个有限区域内的走动。传统的主视角游戏基本上需要在大范围场景内移动——像《Portal》这样的,甚至需要在空间里运动。在没有VR经验的人看来,这只需要将传统的移动方式放在VR里就可以了:用摇杆移动!但实测就会发现这不可行,视野的快速运动和身体没有位移会导致晕动迅速出现。《Edge of Nowhere》是一款第三人称游戏,在一定程度上避免了晕动症  所以在Valve的这个Demo里,玩家没有更大的移动范围,始终就在这个平台上“观看”。未来如何能让玩家在一个狭小的区域,或者干脆坐着并在虚拟世界中重新动起来,也是一个让开发者颇费脑筋的问题。不过目前传统游戏开发商Insomniac的VR新作《Edge of Nowhere》则绕过了这个问题:这是一个第三人称游戏,而《EVE: Valkyrie》则是一个飞行模拟游戏,玩家有座舱作为稳定的参考物。在VR平台上我们可能一时半会儿还不会见到类似《使命召唤》或者《半条命》这种传统的第一人称游戏。行走重定向,这是目前VR研究的热门领域之一  如何能让人在狭小空间或者坐着便能在虚拟现实中移动?目前VR业界所采取的一般方法是使用“瞬移”:没有移动的过程,用户就不会头晕。另外一种办法则更高端一些,叫做行走重定向(Redirected Walking),利用人的感知上的错觉让人在虚拟世界中走过比现实世界里大得多的范围。或许未来的虚拟现实游戏就会采用这些手段来解决移动的问题。  让玩家在现实中与在VR中一样移动也是解决方法。于是我们看到了万向跑步机。然而体验过的人都表示这样的体验与真实的走跑跳有很大差别,更别提蹲趴了。而诸如Zero Latency或者The Void则提供了一个真实的开阔场景让玩家能够自如走动,这让VR游戏更加接近于主题公园的体验,或许这样的超重度体验是未来VR游戏的一个主要表现形式。  VR游戏将会是一个什么样的表现形式,现在我们还没有最后的答案,但可以肯定的是:它将和传统的游戏很不一样。把传统的主机或者手机游戏简单地分屏就移植到VR设备上来,是不可能成功的,开发者需要针对VR重新进行游戏开发。
(声明:本文仅代表作者观点,不代表新浪网立场。)
文章关键词:
提供高品质、有价值、有趣的移动游戏资讯
淘宝一直都是一个神奇的地方,有人曾戏称,在深圳华强北你可以买…
在这场前所未有的游戏人口变迁中,“女大学生”成了一个新梗。
他们没有身份证、身背巨额债务、与家人断绝往来、终日在网吧里流…<专注网络游戏工作室赚钱项目攻略!
当前位置: >>
&人参与&&日 16:57&&分类 : 游戏工作室建立&&
做游戏的,人人都有一个作者梦!随着网游赚钱越来越难,竞争加大,市场辅助坑的一比,有很多同学都幻想着拥有一支自己的团队,出金思路自找,辅助自己编写。成就一个真正的内部项目赚钱梦,今天NBE来简单介绍一下按键脚本辅助的学习步骤,有想学习这方面知识的同学,可以参考一下,以便快速入门,少走弯路。提示:技多不压身,如果游戏工作室本身会一些简单的编写,可以大大增强竞争力。为写本文,NBE采访了一位近期在学习按键脚本编写并且已经入门的朋友提供的思路,希望以他的真实经历,给朋友们一个客观真实的学习步骤参考。警告:老A我本身是个技术盲,所以采访了有真实经历的人才写下此文,此文介绍的为简单的按键脚本编写,完全是入门级学习过程。与某些大神想象的控制台式的强大内存辅助(外挂)相差甚远!(关于内存辅助,采访中得知,没有3-5个人,没有几个月时间,一个人去完成,是一件相当艰难的事儿)用处:如果是几台或几十台机器的小型游戏工作室,如果有了编写简单按键脚本的能力,游戏里测试到的简单出金思路,完全可以自己写脚本,在也不用苦恼市面上没有辅助,或是找人写辅助泄漏项目的尴尬问题。(被采访着现在边学边写,已经开发出了自己的简单挂机项目,自己做,相当不错!)关于自己能写按键脚本的好处就不过多介绍了,懂得人自然懂,不懂的人,也就没必要懂了。哈哈。(原谅我这张臭嘴,说话太直!总得罪人!)学习按键脚本编写的入门过程:1,如果对按键脚本与游戏外挂的原理一点都不懂,摸不到头脑,按键精灵是一定要学的,简单是方面,最主要的能让了解一个按键脚本的制作过程是怎么样子的,算法是什么,为什么可以实现打怪,走路,挂机等。如果按键精灵要是都看不懂,别不用往下学了。(一个辅助最关键的就是算法)2,易语言基础,写辅助最常用的那几十个命令必须精通,知道什么时候能用,什么时候不能用!学习资料网上一大堆视频找一个自己愿意看的就行了。NBE推荐世宝的全套教程,本人看过,够清晰,简单易懂,最主要的是不收费。是易语言方面挺好的视频。(一般人差不多1-2个月搞定)3,大漠辅助教程,现在很多按键都是基于这个插件了,关于好坏NBE不过多做评论,避免广告嫌疑。但一个不争的事实是,现在很多按键脚本,都是基于大漠插件写出来的,所以还是建议要看看。(一般人差不多半个月到一个月搞定)4,TC脚本开发工具,采访者没有去学习。(有时间的朋友可以看看)他个人的理解是:按键和TC都是工具,工具大家都能理解,而易语言,是一门语言,是用来生产那种工具的工具,更高级,按键和TC,说白了,套路人家都给你搞好了,但是易语言,架构你需要自己去搞,什么都要自己去架设。(所以采访者重点走向易语言。)5,易语言基础OK了之后,去学大漠的基础教程,也就是大漠插件的基本用法。(前面提到过大漠插件的普遍性,如果你看不起按键脚本,或鄙视大漠插件,全当NBE啥也没说,你就可以走自己的路了,不用往下看了!)采访者表示学习这个耗时5天!6,然后,以上按键熟悉了,易语言熟悉了,大漠插件的用法熟悉了,就要尝试自己写,自己专研,实践是挑战一切困难与真理的铁拳。(采访者表示:捣鼓了10天左右,写出了自己的一个按键脚本,可以自动主线,自动挂机,站街扫拍卖)采访者提醒:以上这些就是按键模拟的学习步骤,写内存挂别想了,没10个人的团队,靠自己,一年也出不来一个!按键模拟的优势就是快速开发,一个主线挂,你边做任务边写,基本上你任务做完了,你挂就写好了!足可以应对小型游戏工作室找到的大部分出金路线。人人都有一个作者梦,想着游戏辅助赚钱容易啊,其实大家走进了一误区。看看市面上的作者?多如牛毛,除了真正有实力的,站着赚钱,不坑不骗的又有几个?同游戏工作室一样,任何行业赚钱都不是一件简单的事儿。在这个行业里混最忌讳三心二意,今天学写辅助,发誓做一个最牛逼的作者,明天又去打金,发誓干到几百台,后天又去带队,打算干掉网易,整死腾讯。学写按键脚本是一件非常枯燥的事儿,与爱看电影,喜欢网游,甚至是认自认为聪明是二码子事儿。如果真的有心去学习,把它当成一个学科去看待,问问自己有没有毅力能把一门技术给学通透了!这是学习,不是切白菜。总结:如果有这方面天赋又有这方面爱好的朋友,还是建议每天抽出一点时间去学习的,所谓活到老,学到老,更何况这个行业竞争越来越激烈,也许自己有了简单的技术以后,在加上个人对游戏的理解,可以开拓出一片新的天地。(辅助只是工具,网游只是载体,真正能赚钱的是人!)特别感谢此文受访者:暴风 crazywind 提供思路相关阅读:
此文&&原创,转载请注明地址:
本文标签:&&&&&&&&
本文作者:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
我就是帅哥
在按键 tc e语言里面强大的是e语言,但是都不是高级编程
按键精灵没法用了 很多游戏检测到按键精灵在运行直接不让进游戏,
我想说按键精灵和TC还有大漠工具都被各大游戏公司严格封杀,学这些还不如学C++ or Python
学这个是需要的耐心,看得你能不能下定决心,还有就是要有自己的思路,要学会思考,学会灵活变通,怎么把学到的用到该用的地方,没有任何基础的,只要肯下心,用心学,半个月到1个月就可以入门写出普通2D 2.5D的游戏的挂。不用心的见过很多,半年一年的还是个菜鸟这种人多的是。
想着游戏辅助赚钱容易啊,其实大家走进了一误区。看看市面上的作者?多如牛毛,除了真正有实力的,站着赚钱,不坑不骗的又有几个?同游戏工作室一样,任何行业赚钱都不是一件简单的事儿。
不管写任何程序,最重要的都是程序逻辑,其次才是其他的。一个程序的运行逻辑不好会影响整个程序的运行,甚至无法运行。多看看别人的源码,学习别人的思路,有助于学习
我就是学按键的,只要你把5级的题真正的用自己的想法都做完(不要去百度),做个2d,2.5d游戏很简单。
用tc写东西感觉痛不欲生,还是按键和易好用,按键和易做到会用就行,其次要精通大漠插件
按键精灵一开就被游戏检测啊。
嗯,值得认真看看,很有学习价值,期待继续更新!!!
自己的一些看法:学脚本其实很简单,关键在于毅力写脚本也简单,关键在于耐性写一个成品软件也很简单,关键在于时毅力和耐性总结:非常累,所以很多作者都是给人一个很懒的印象,老是拖来拖去本人写了几年的脚本了,天天脑袋昏昏的,老感觉睡不够下一步,准备过度到大神级别,三年不开张,开张吃三年再下一步,超脱网游脚本再下一步,自己开一个非游戏的工作室再下一步,一直到老再下一步,棺材本攒够了最后,我会永远记得NBE论坛
英雄之见,略同、累、累死、、昏昏的、、、FUCK
求联系方式
求联系方式
求联系方式啊
多抓几个妹子回来
暴风哥,我去巡山了。。。
相关文章 18:11:11 17:41:20 5:11:1 5:15:2 18:52:41 18:0:40 17:17:54 12:9:7 17:8:8 19:43:45
站内搜索_游戏工作室项目
网游工作室_猜你喜欢
网游工作室_最热文章
关于我们:
【NBE游戏工作室,成立于日】我们一直被采集,但从未被超越过!和NBE的小伙伴们一起做网络游戏工作室吧。痛,并快乐着!
网站内容:
NBE游戏攻略网、国内领先的网络游戏创业者一站式服务平台。本站致力于为游戏工作室打金者、玩游戏赚钱的兼职散人玩家提供动力!
联系方式:
微信公众号:nbeyouxi
NBE客服QQ:
官方1群(收费):
咨询:有问题,
备案号:辽ICP备号-1

我要回帖

更多关于 游戏制作书籍 的文章

 

随机推荐