网络游戏:为什么失败(转自CSDN之Nightmare的BLOG)

2024-01-17 03:38

本文主要是介绍网络游戏:为什么失败(转自CSDN之Nightmare的BLOG),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络游戏:为什么失败

 

 

继互联网、电子商务、软件培训后,网络游戏是又一个被炒得过热的领域。随着钞票疯狂的砸下来,血拼的优胜劣汰进程也就开始了,如果不能走向成熟,就会走向失败。

 

 

开始的时候依靠的是概念和狂热,或者爆发或者默默消亡。第二批开始有竞争,但出于抢站市场的欲望,不论输赢都可以继续砸钱。第三批就是不理智的stampede,一拥而上,不想被踩死就要跑在最前面。

 

 

常见错误1:包罗万象的目标

有远大的目标是好事,但不是做事的方法。当问到“我们要做的游戏是什么”,如果回答如“我们的游戏将包含游戏A的所有功能,还有游戏B里的新花样,并且还改进了C系统,增加了独一无二的D系统,还有……”,那么这个项目就有这种危险了。如果一个东西什么都是,那么它就什么都不是。在设计如此庞大的体系前,最好先研究一下:

1.         项目的预算有多少

2.         能允许的最长开发时间是多少

3.         人员数量和经验,以及对复杂系统的控制能力

4.         目标用户群是什么样的人,他们喜欢玩哪些东西

5.         竞争对手有哪些,他们的产品的特点

 

 

尤其对资金有限的创业公司来说,预算和开发周期是主要制约因素,必须以尽量小的代价去获取尽量大的成果,盲目开始项目只会让后期进入进退两难的境地。

 

 

常见错误2:显示引擎就是用来显示场景

经常能看到有些客户端的招聘要求里只有对Direct3D和显示特效的强调。也就是说,很多人只看到了3D引擎、在3D引擎里又只看到了模型和特效。但它们只是一小部分,而且并不是最有技术含量的部分。因为3D技术已经发展了很多年,尤其是硬件发展速度快,硬件厂商巴不得软件开发人员用上他们提供的所有先进技术,所有的技术都是开放的,都有详细的文档和样例。到今天已经是几乎每个人都自己写一套3D引擎的地步,开源的引擎都已经一抓一大把了。

 

 

但这并不是说每个3D引擎都一样,相反它们有很大的差别,一个好的引擎是有很多重要而有技术含量的功能的,而一般个人做的引擎都很简单,功能甚少,但它仍然可以叫引擎,可以绘制模型和一些特效。需要什么样的引擎由游戏本身的需求决定,也可能很简单的就够了,也可能要功能相当完整的。这里给出个比较完整的显示引擎功能的单子:

1.         图元绘制

2.         模型绘制,最好支持多种模型格式

3.         模型预览工具

4.         3DSMaxMaya等的模型导出插件

5.         半透明对象的排序

6.         动画(硬动画、顶点动画、骨骼动画)

7.         贴片功能

8.         Billboard支持

9.         Lightmap贴图

10.     至少一种绘制影子的技术,如Shadow Volume, Shadow Map或者简单的投影一个黑圈

11.     至少一种绘制天空的技术,如SphereMapCubeMap

12.     资源滚动装载(在显示资源很多时很重要)

13.     粒子系统,最好是可由脚本编辑的,这样就不再需要程序员干预制作过程

14.     Shader支持和足够的调试功能

15.     Unicode的文字绘制

16.     Scene Graph管理,QuadTreeOctTree或者BSP

17.     大场景会用到LOD的功能

18.     图层支持

19.     GUI系统

20.     资源文件打包支持,最好支持ZIP格式

21.     性能分析支持,至少包括FPS、每帧三角面数、每帧DrawPrimitive的数量

22.     室外游戏会需要Terrain系统的支持

23.     镜头特效,如光晕、震动等

24.     文档,包括针对使用引擎的程序员和使用相关工具的美工人员的

可以发现,一个比较完整的3D引擎是个庞大的系统,它的整体架构的好坏就变得很重要。细心的人会注意到这里没怎么提到特效,也就是很多人最关注的问题。事实上,大部分的特效制作源于美工,而程序提供一个基础的支持,如果等着程序员写出每个特效,那就只能指望延长工期了。

 

 

常见错误3:客户端就是显示引擎

显示引擎只是个基础层,它不是业务层,而业务层才是真正的客户端。好比你有了锤子和钉子,你只是有了工具,钉钉子才是你要做的事情。客户端要做的事情如:

1.         处理网络的数据

2.         声音引擎

3.         维护、预测游戏世界的一个窗口的状态,并聪明地进行图像声音上的表现

4.         输入处理

5.         GUI系统的交互,想尽各种办法改进用户体验

6.         游戏编辑、调试工具

7.         安装、在线更新工具

这里很可能需要把一部分定制的工作交给制作人员,比如GUI界面,因为他们经常需要调整改善设计,因此,设计可定制的GUI系统会增加一些难度。如果3D引擎里已经支持则只需要再提供一些游戏逻辑的接口,否则就要费些心,在这里提供一套配置方案。

 

 

常见错误4:直接向最终目标努力

网络游戏是个大工程,不是几个月就能完成的。早期的设计不可能是完美的。如果直接向最终目标努力,那么可能到后期游戏才运行起来,才会发现问题,但这时已经太晚了,更不用说长时间的看不到效果的工作会让士气低落。正确的方法是尽量早的让游戏运转起来,哪怕只能发几条Hello消息,然后再向里面加入更多的功能。不要等半年之后底层系统完成之后才开始搭建游戏,这时很容易会因发现问题或者需求变化不得不修改底层,如此反复,拖累甚久。

这篇关于网络游戏:为什么失败(转自CSDN之Nightmare的BLOG)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/614772

相关文章

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

CSDN:OpenStack镜像制作教程指导(全)

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录,涉及基本环境准备、常见类型操作系统的镜像制作。 让你可以从零开始安装一个操作系统,并支持个性化制作OpenStack镜像。 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows

搜狗浏览器打开CSDN博客排版错乱问题解决

之前发生过几次,不知道什么原因。 今天一直用着好好的,打开一个csdn连接,显示404,博文被删除了,于是就用百度快照打开试试,百度快照打开显示的排版很乱也没找到有用信息。 后面再浏览CSDN博客就排版错乱,显示一个大大二维码图片。 尝试删除IE缓存无效,使用谷歌浏览是好的。 基本锁定就是搜狗缓存导致的,于是找如何删除搜狗缓存   清除后恢复正常

用Java抓取CSDN主页上的图片

一,步骤一:获取网页源码 1,定义要爬取的页面的URL对象 //定义即将访问的链接String url="http://www.csdn.net";//获取CSDN的URL对象URL realURL = new URL(url); 2,获得这个链接的一个连接对象 URLConnection connection = realURL.openConnection();

ssh版本升级导致连接失败

公司系统使用的是第三方ssh插件jsch-0.1.39.jar,之前采集正常的,但是厂家服务器ssh升级成2.0版本,然后程序就报错,异常如下: com.jcraft.jsch.JSchException: Algorithm negotiation failat com.jcraft.jsch.Session.receive_kexinit(Session.java:510)at com.

利用PL/SQL工具连接Oracle数据库的时候,报错:ORA-12638: 身份证明检索失败的解决办法

找到相对应的安装目录:比如:E:\oracle\product\10.2.0\client_1\NETWORK\ADMIN 在里面找到:SQLNET.AUTHENTICATION_SERVICES= (NTS) 将其更改为:SQLNET.AUTHENTICATION_SERVICES= (BEQ,NONE) 或者注释掉:#SQLNET.AUTHENTICATION_SERVICES= (N

Java应用对接pinpoint监控工具的时候,应用名称长度超出限制而导致接入失败

一、背景 java应用需要接入pinpoint,同一个虚拟机上的其他应用接入成功,唯独本应用不行。 首先排除是pinpoint agent的问题,因为其他应用都正常。 然后,我就对比二者的启动脚本。 -javaagent:/opt/pinpoint/pinpoint-bootstrap.jar -Dpinpoint.agentId=DA301004_17 -Dpinpoint.applic