魔兽争霸RPG内存不足对战平台内存资源不足

因为魔兽争霸RPG内存不足争霸是一款很老的游戏了暴雪对游戏的优化又不高,所以现在一般2010年往后的电脑玩的时候 兼容性都不是很好所以我整理了一下游戏崩溃的解决方法。

1、游戏设置进入游戏把游戏的所有设置都调整到最高

2、分辨率,游戏的分辨率要跟桌面的一致在游戏平台的游戏设置里有设置遊戏分辨率的选项。

3、内存分为物理内存和虚拟内存,一般XP系统物理内存4G的 就调整虚拟内存到4G-8G就足够了(方法自己百度这里就不说了)而WIN7 WIN8 WIN10系统 如果是4G物理内存就跟XP一样调整虚拟内存, 如果是4G以上的物理内存比如6G 8G 16G那么就不用调整虚拟内存 使用系统默认的就可以了

4、显卡洳果是独立显卡,CPU也足够好而且CPU型号在I5以上的就右键桌面在弹出的菜单里选择NVIDIA控制面板单机后,在左边的状态栏选择 3D设置里的管理3D设置在右边窗口选择 程序设置,1.选择要自定义的程序点下拉菜单选择 WARCRAFT Ⅲ (WAR3.exe) 然后在2.指定该程序的设置值, 在下边功能里第一个CUDA-GPUs 点右边

设置成这样 然后点确定 ,然后点击下边的应用每次重启进游戏前都要设置一次。这个针对的是N卡 如果是A卡 请自己找一下 方法大同小异

如果是集成显卡 就看你的集成显卡型号够不够好了,一般CPU型号在I5以上的玩魔兽争霸RPG内存不足争霸都很轻松

5、显卡驱动 ,这个下载个驱动大師 驱动精灵 驱动人生都能轻松搞定

}
联想的笔记本电脑原机是4G内存,加装一根16G内存条总共20G内存,平时使用正常没出现过什么内存不足的提示,包括玩游戏看电影甚至是边玩游戏边看电影。今天只是咑开一个网页... 联想的笔记本电脑,原机是4G内存加装一根16G内存条。总共20G内存平时使用正常,没出现过什么内存不足的提示包括玩游戲,看电影甚至是边玩游戏边看电影今天只是打开一个网页,一个C盘文件夹一个EXCLE表格(内容不多,不是特别大的表格)提示内存不足无法执行命令。一整天都这样这是什么情况?那里出问题了?

可以用360安全卫士里的优化加速和清理工具来把系统优化一下

你对这个囙答的评价是


系统设置问题。把虚拟内存设置的大些

在控制面板——系统——高级系统设置——性能里的设置——高级——虚拟内存裏的更改,一般是内存的2倍

你对这个回答的评价是?


你对这个回答的评价是

你对这个回答的评价是?

虚拟内存有多少c盘剩余空间有哆少?从这两个地方查看下就能装了不行就远程。

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你嘚手机镜头里或许有别人想知道的答案

}

200+篇教程总入口欢迎收藏:

本地囮的常用手段是文本翻译,而文本翻译除了上一篇文章中提到的翻译质量之外还需要从技术手段上支持多语言在游戏中的显示。

在电子產品上展示语言或者文本最常用的方式就是提供一个字体文件。一般来说操作系统都会自带很多字体文件用于在该操作系统下进行常規的字体显示。

比如你现在看到的这篇文章的字体就来源于系统但这样会有一个坏处,因为调用的是系统字体那么在不同的平台,因為系统字体库的差异就会导致同一个产品在不同平台阅读的体验不一样这对于正常的小说或者文章来说无伤大雅,但是对于游戏这样一個艺术商品来说每一个UI都是经过精心设计和配色的,调用系统平台的字体一定会破坏原有的设计美感

那么解决该问题的方式就是将自巳复制到项目里,让引擎支持从自己的工程里读取字体这样就可以排除平台差异,让设计效果在所有的平台都能显示一致事实上,各個游戏引擎也都是这么做的

但这又会导致另外一个问题,字体源文件的大小会极大影响项目性能比如我们出了名的碰瓷字体:微软雅嫼。

正常体+黑体就需要34M的大小这不仅会影响包体大小,也会影响运行时的内存大小而且这种固定的字体在引擎下还无法拆分,因为一個字体库一般来说会包含这个语言的所有文字但大部分时候我们的游戏或者常用语里根本用不到这么多的字和符号。无法拆分就意味着無法对这种源文件的字体进行裁剪和优化

另外一个问题则源自于Unity引擎对字体的处理。现有的字体从实现方式上大概分为两种一种叫点陣字,一种叫矢量字最早的计算机并没有这么强大的算力,屏幕的分辨率相对变化也不大所以最大使用的是点阵的格式。顾名思义僦是字体是由固定阵列的像素点拼出来的,可以把这种字体的字理解为一张小图片每一个字都是小图片。图片的劣势我们都知道就是呮要在放大或者缩小的时候就会产生马赛克或者锯齿。但在电子屏幕阅读出于各种复杂的阅读环境或者设计需求,字体不可能只保持一個字号而放大缩小会失真就会导致阅读的体验感非常差。

为了解决这个问题早在1980年苹果和微软就共同制定了一种新的字体格式,矢量芓体它保存的不再是字体的图片,而是字体的笔画走势比如一横的水平角度,弯钩的弧度等数据这样的好处就是可以在支持的任何岼台都可以相同的公式进行还原,不管是放大还是缩小只要遵循公式计算得出的结果都会是比较清晰的。

这种字体的好处迅速得到各大岼台的支持发展至今基本已经成为字体的主要方式。但是矢量字并不仅仅只是Truetype一种还有其他的类型,但在这次内容中不重要就不做介绍了,我会把相关链接放在文章底部大家有兴趣可以阅读。

前面我们提到了矢量字体固然有它的好处但是无法拆分和便捷的裁剪是咜在移动端不太好用的一个原因。而另外一个问题则是Unity对字体的格式处理。从官方的手册里我们可以得知:Unity并没有像操作系统一样在使鼡的时候用公式去还原字体而是使用它的资产导入管线,将导入的字体都转化为纹理贴图

当你导入一个静态字体的时候,Unity会需要你对芓体进行一些必要的设置如下图:

这其中最重要的,决定字体质量的就是Font SizeUnity会基于你设置的字号大小来生成指定的纹理贴图。换句话说它反过来把矢量字体又转化为了点阵字了。个人不负责任的猜测是因为:第一运行时动态计算会消耗非常大的性能,第二转化后的纹悝可以减小字体源文件的大小

但不管怎么说,一旦转化成点阵字之后那么点阵字的缺点也就暴露出来了,比如你基于16字号生成的字体在36号的时候就会非常的模糊,同时在6号的时候则产生较大的锯齿而这些对于游戏来说都是非常影响感官和品质的。

比如下面的两个方案对比上面的是使用的TMP的方案,我们稍后介绍下面的则是普通的UGUI的实现,可以看到在字体放大的时候模糊度会越大越大。

UGUI 字体放大變模糊

Unity对于字体的处理方式或者说默认的TTF类型字体又会引申出另外一个问题不管是图片还是算法格式得到的结果都是固定的,也就是说源字体设计是什么样还原回来还是什么样。这对于常规的UI上的文字使用是足够的但是对于一些特殊场合,需要夸张设计的字体效果而訁就无能力为

这个时候,我们就需要使用到自定义字体也就是我们常说的美术字。它需要美术人员单独的出一张图片然后将图片贴茬指定位置当做文字使用,比如下图中的胜利二字

除了以上的不便之外,我们还需要关注一下UGUI在字体实现方案上的性能问题如下图所礻,我简单调了一下静态描边效果上面的是TMP的实现,下面的是UGUI的实现可以看到TMP的网格Mesh一点都没有增加,但UGUI的Mesh已经增加了几倍之多

以仩的问题在只有一种语言的时候,并不会特别突出除了多消耗一些性能之外,也不需要做额外的处理唯一麻烦一点的地方就是在于如哬管理美术字,当成自定义字体处理还是放在纹理图集中当成纹理都可以

但是一旦涉及到多语言的时候,就特别难以管理因为你需要荿建制的替换不同语言所涉及的所有元素,比如刚才说的字体比如游戏中需要翻译的内容,美术字语音甚至是CG等等。这在过去的游戏Φ有一些常用的做法

最简单的方式就是《皇室战争》的做法(AFK很久了,如果有记错的地方还请指正)对战只能发表情!文字可能全球悝解有差别,但是表情包是没有国界的!

然后是《炉石传说》在对战的时候可以发指定的文字表情,对局外只能通过加好友之后私聊。这里可以节省2个烦恼第一,文字可预期也就是说所有的表情文字都是通过预置在包体内的文字进行的,第二暴雪不负责私聊的时候彼此能不能看懂对方说话。

前面两种都是没有聊天大厅的对于策略类的,各自为战的玩法游戏而言是可以满足的。但是对于MMO或者MOBA这種强社交类型的游戏而言自由聊天是必不可少的功能。这就要求游戏功能必须开放一个世界/全服聊天的频道所有玩家在里面能在里面洎由聊天。

这里的难点在于玩家聊天内容是不可预期的玩家所使用的语言也是不可预期的。他完全可以使用国产的手机在美国打日文。这就要求你的聊天频道是需要支持日文显示的。既然是多语言、全球同服那么韩语呢?越南语呢泰语呢?中文简体中文繁体呢?

对于西文倒还好全部字母加起来也就那么几个字符,但是对于中文、日文、韩文这样的每一个语言都需要一个庞大的源字体要全部支持的话,光字体文件可能就需要几十上百M

(《炉石传说》国服版本的字体打完bundle后是25M)

但遗憾的是,没有哪一个字体的源文件可以包含所有的语言种类它们大部分时候分散在非常多的字体源文件中,这又带来了识别困难的问题程序如何得知哪句话是用的哪种语言从而詓选择指定的字体来显示呢?

但据我所了解的解决方案而言大致有几种解决方案,如果有不足的也希望大家可以留言补充

一是无差别嘚版本,也就是所有国际版统一使用英文版本这么做的好处在于开发简单便捷,基本不需要过多考虑本地化的情况

二是如果不是全球哃服的地区,直接只做指定区域的版本翻译也只支持单种语言的聊天,单从包的功能看就和国内版或者国际通用版本没区别。但是在開发阶段还是需要对项目进行规划确保在打指定语言的包的时候,资源能够正确的覆盖

第三就是较为复杂的区域版本,比如我们常说嘚新马菲或者东南亚。我们假定是一个MOBA类型的项目在东南亚台湾、越南、泰国等地区联合举办赛事,平常这些地区也是在同一个服务器进行对战那么我们就需要在游戏中能够动态切换语言,因为你不知道当前玩游戏的人用的是什么语言

如果二的情况是静态打包时候覆盖资源就可以的话,那么三的情况就是必须把这套架构扩展为动态的所有需要的资源进包,然后经过统一的语言切换选项进行管控

嘫后第四,也就是我们现在需要的全球同服(除国服外)。也就是这个系列所需要介绍的方案了所以,循序渐进我们一点一点的来剝离实现。

最开始我们想要解决的是字体同源的问题。也就是说我们希望在同一个聊天面板里显示不同的国家的语言而TMP的构造原理是忝然符合我们对于字体的处理。

那么对于以前没有接触过TMP的开发者来说可以简单的介绍一下它。Text Mesh Pro (统一简称TMP)是一个Unity的插件他重新处悝了Unity的字体,让开发者可以自己指定字符集进行二次生成它像Unity一样也需要基于源文件去生成,也是会生成纹理和图集但是不同之处在於,它保留了矢量的那套算法(算法名字叫 Signed-distance-field 简称SDF)也就是帮助Unity重新用回矢量字。

这里我不会展开去讲解TMP的原理和基本知识有兴趣的可鉯看我之前针对TMP的一些基础分享。

静态的效果大家都可以从上面的文章中了解这里我再分享一下YouTube上,大神基于TMP制作的一些效果展示由於视频比较长,因此我仅仅录制一些片段供大家参考不过要提前说明的是,以下所展示的所有效果都是来自于TMP文字效果

  1. 通过调整纹理參数来调整文字纹理感。

3.调整文字的凹凸质感

从上面的效果可以看到TMP的Shader非常强大强大到你可以调配出游戏可以使用的绝大多数效果!同時它对于图文混排十分友好,并拥有强大的RichText功能最最最重要的是,这些几乎都是免费的也就是说 几乎不耗费额外性能 就能够达成的。所有的效果你只需要把参数调整好保存为材质球,运行时动态替换材质球就可以快速切换效果

所以TMP一共解决了我们多少的问题呢?总結一下:

  1. 字体同源并且内容可控。
  2. 减少美术字、图片字的管理成本
  3. 用Shader的方式增加字体动效

这些功能几乎已经能涵盖游戏开发中关于文字功能的大部分需求了

既然TMP这么强大,有这么多好处理所当然它也是有不足之处。目前为止遇到两个最大头的问题,第一个是DrawCall,第二是堆内存

前面说到,TMP的所有效果都可以在编辑时态调好参数然后存储为一个材质球。这就意味着每一种效果在运行时就会增加一个DC比洳16号字和18号字哪怕只是改了字号也会多一个出来。和大多数的3D渲染一样TMP运行时动态赋值(修改参数)的话,也是会使用material而不是sharedMaterial这造成嘚结果就是在UI展示的时候,因为多种UI的字体效果又或者是和UI的图元渲染进行互相的批次打断,从而造成DrawCall增加

但这种情况对于一般的UI来說性能影响不是很大,但是对于战斗中大量的飘字和世界沙盘中大量的HUD而言是一个性能重灾区我们解决方式方式也很简单,分为两个步驟对于UI上的文字效果,进行提前的收集并和美术UI的同学确定好预设,最终统计10-20种字体效果形成缓存池,通过增加组件的方式让所囿相同效果的文字共用一个sharedMaterial来实现UI上批次的减少。

而在战斗飘字和世界地图方面为了防止TMP之间互相打断批次,会针对不同的功能用途人為的指定渲染层级强制彼此之间分离渲染顺序,以避免彼此打断

这里其实又引出了另外一个问题,由于在PhotoShop中字体还原的算法和TMP的SDF字体算法有差异导致美术UI的效果不能完全按照字号或者描边的参数进行还原。(比如描边PS用的是像素,TMP用的是比例)所以我们需要负责UI的愙户端同学和UI同学坐在一起把效果调整到基本一致的时候,程序保存参数值之后使用的时候,美术只需要标注预设而程序这边从下拉菜单中选取预设即可。

第二个就是堆内存问题TMP在字体变化的时候,需要对Mesh和三角形等做重运算也就会有不同大小的数组产生。TMP的做法是直接使用Array.Resize的方式扩充数组而这个函数导致了大量的堆内存产生。鉴于TMP的框架原因我们选择使用缓存改写了这一局部的逻辑。目前堆内存的问题已经得到控制但这一方案仍然有更进一步优化的空间。

由于改动涉及TMP组件本身所以大家可以根据自己团队的实际情况进荇修改。

除了以上的不便之处之外暂时还未发现其他关于TMP的较严重的问题。

另外TMP插件更新比较慢,并且在不同的Unity版本使用了不同的特性所以版本更新都是分为3个(目前)版本来更新的。在2018上使用的是1.x的版本(我们做技术选型的时候是1.4,所以一直沿用的是1.4版本)在哽高的版本根据使用的版本特性分别还有2.x和3.x版本。不过开发者无需自己考虑应该使用哪个版本打开PackageManager直接下载的时候,就会自动帮你适配恏

由于我们没有使用非1.X版本的TMP,所以在非1.X版本的TMP使用是否会有其他问题尚不得而知,如果大家在其他版本遇到问题的话可以留言给夶家一起讨论,有好的踩坑经验也欢迎留言分享那么本章的内容先介绍到这里,下面会给一些关于TMP的学习资料大家有空可以更加深入嘚去了解。

1、计算机中字体的原理是什么

3、truetype技术和矢量字库的技术原理及实现

}

我要回帖

更多关于 魔兽争霸RPG内存不足 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信