这篇文章给大家聊聊关于游戏引擎做室内设计怎么样,以及游戏引擎做室内设计怎么样啊对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
本文目录
腾讯做了这么多游戏,他有自己开发的游戏引擎吗?游戏引擎怎么开发通过原神来看,米哈游对Unity引擎的运用在国内算是什么水平呢?用游戏引擎(cocos等)做PC端软件人机交互界面是否可行?为什么?腾讯做了这么多游戏,他有自己开发的游戏引擎吗?国外的游戏引擎有CryEngine,Unity,Unreal,其实国内也有腾讯自己研发的游戏引擎QuickSilver和QuickSilverX,未来可能基于国产引擎的大作会不断涌现!腾讯的天涯明月刀OL就是基于QuickSilver引擎制作的,非常精美!
游戏引擎怎么开发嗯嗯,游戏引擎发展到今天,已经是一个产业化需求比较泛化的软件体系。如果细分,按不同的细分维度会有很多不同的划分,比如按功能分可以分为物理引擎,渲染引擎,脚本引擎等,按平台分可以分为PC游戏引擎,HTML5游戏引擎,移动端游戏引擎等,按渲染类别分2D引擎,3D引擎等。
再比如对于网游,又分客户端引擎和服务器引擎;服务器引擎的架构游戏类型、负载需求息息相关,架构本身和技术基础组件选型(操作系统、开发语言、网络库、数据库、运维工具、运营后台等)相关联,比较灵活。
按问题要求,猜测楼主问的是通用跨平台客户端引擎,参考对象是Unity,Unreal,CocosCreator等。先提取游戏引擎典型的核心功能如下:
渲染:实现画面的展示
物理:实现物理世界的抽象和表现
音频:实现声音的播放处理
网络:实现联网功能
游戏编程接口:讲游戏引擎能够提供的接口以API形式暴露给开发者
配套的集成开发环境(IDE):实现可视化场景编辑、组织,可视化物理编辑,可视化UI布局,资源的使用等
调试功能:提供便捷的方式以便开发者对游戏功能进行测试和debug,优化性能。
打包发布功能:生成最终的游戏的exe,app,apk等等可执行(可运行)文件
插件扩展功能:提供给高级开发者的对引擎自身功能增强的功能接口
其它功能:如Unity有service,可以集成平台数据统计、自身的视频广告等功能。
然后逐一略叙实现方式,强调一下,最好参照业内的经过广泛验证的引擎去了解,例如Unity;如果想知道更多细节,可以先使用一下主流引擎。
1.渲染:为了跨平台,一般会选用跨平台的图形标准库底层如OpenGL,基于底层库再构建上层渲染框架,如精灵(Sprite),GUI,3D模型的渲染,shader扩展等。
2.物理:物理引擎对运算性能要求比较高,而且底层功能的测试需要耗费大量精力,所以通常采用成熟的物理引擎,例如Havok,PhysX,Bullet,cannon.js等。
3.音频:通常会采用业内成熟方案,如开源的OpenAL、FMOD、HTML5平台自身的Audio功能等。一般来说,非音乐类游戏对音频功能的需求相对不会太复杂,主要是靠专业软件提供音效文件(mp3,wma等),游戏中解析因小文件,处理声音播放,音量大小调整等。
4.网络:提供联网的功能,按需提供TCP,UDP,HTTP等协议的包装好的易用的接口。如果为了方便开发,可以处理好客户端和服务器通信的连接处理,错误提示,协议的帧格式,序列化、反序列化方式,可以在此之上提供进一步的规范,例如采用Protobuf作为协议格式。
5.游戏编程接口:这就是提供给开发者的API的组织。确定引擎提供给开发者用什么语言编程,怎么使用图片、音视频资源、3D模型等,怎么提供接口和游戏运行时环境(电脑、手机)交互等。
6.配套的集成开发环境(IDE):易用的可视化开发工具,如拖拽布局、拖拽游戏资源的使用、代码编辑、集成调试打包功能等。这一块是游戏引擎开发工作量的大头,涉及用户(游戏开发者)密集使用的交互接口,要尽可能满足高效、易用。一般来说如果不是特别有能力驾驭,最好现成的采用跨平台的应用程序开发方案,比如CocosCreator采用electron框架。
7.调试功能:提供查看FPS,跟踪代码运行,Profile,网络信号模拟,分辨率模拟设置,硬件设备模拟(手机)预览游戏等。建议游戏运行时与编辑器使用同一套或者大致一样的渲染和资源接口(例如Unity),这样方便降低调试和运行结果大相径庭的情况。
8.打包发布功能:简单处理可以生成要打包的对应平台的工程,比如android平台生成AndroidStudio工程,ios平台生成xcode工程,注意资源、代码库的引用关系,配置文件的有效性、一致性,编译速度等。
9.插件扩展功能:人力因时而穷,引擎功能不必强求一开始就大而全,可以将引擎整体设计为一个易扩展、易修改的结构,提供相应接口暴露给开发者,群策群力迭代和改进游戏引擎。
10.其它功能:这一块可以根据自身引擎特点来进行添加,比如现在主流的几大引擎都有提供官方继承的资源商店、数据统计等服务接口。
真正可用的引擎的实现是一个系统而复杂的工程,有很多脏活累活需要考虑在里头,平台兼容性、性能、效果、易用性、鲁棒性、文档编写……需要耗费巨量的心力;
如果是个人兴趣了解,可以根据上述内容再延伸查询相关内容,也欢迎随时交流。
如果是想做个娱乐引擎可以随意玩,技术如诗,越撸越痴;
如果是想创造一个伟大的引擎,请收下我的膝盖。
通过原神来看,米哈游对Unity引擎的运用在国内算是什么水平呢?技术上来看,是全球顶级的。米哈游开发人员曾经多次上上过unity的开发者分享大会。
更实际来说,用unity做联机系统几乎就是一种灾难了,做到原神这种还不算特别出格的联机效果,几乎就相当于把网络层给重写了...
实际游戏当中也是,unity来做开放世界,预加载对于硬件来说是灾难级的。如果把自己所在点,设定为区域1,周围区域按照同心圆,旋转式来编号。那在unity当中,身处区域1时候,已经在预加载区域14的内容了。所以在实际游戏过程当中,大地图几乎没有读条,都是顺滑的。这个对硬件要求特别严重,然而他在手机上实现了。
所以综上来说,游戏的好坏不去评价。但是技术上绝对是顶尖的水平。
用游戏引擎(cocos等)做PC端软件人机交互界面是否可行?为什么?刚好我做游戏接触cocos都是在0.x时候就开始了,也有unity的项目经验,我来回答一下。
如果从可行性角度来讲,cocos和unity当然是可行,但是如果从最优化角度来讲,游戏引擎并不是最合适的。为什么呢?
首先游戏软件针对的软件元素以图片精灵、图片动画、图片特效、粒子效果、光照、场景程序、物理系统等为主,但是pc软件一般来讲都是ui功能组件元素为主:布局、排版、样式、点击(单打、双击、拖拽)、列表、表格、简单动画、统计图表等为主。很明显两者重合度不高。当然游戏引擎可以再进行封装从而让pc端软件人机界面更有游戏性,但是这个开发效率上有问题了,经济上根本就不划算。
其次即便是要交互性强,一般也是采用专用的应用软件专用工具、库进行补足,而不是直接用游戏引擎来加强,除非有一些专门设计的应用,比如儿童教育软件、行业vr软件等。如果选用的话,unity比cocos要成熟的多,大型软件需要用游戏引擎的建议还是unity开发。而譬如虚幻引擎,就太庞大了,门槛比cocos和unity高太多,一般来讲不太适合没有经验的团队来做类似的游戏性软件开发。
当前一般来讲,PC端软件前端交互开发,也不再是用原生的C/C++开发,而是逐渐转向了以JavaScript为主的前端框架,比如Eclectron,微软的VisualStudioCode就是基于此开发,微信的开发者工具则基于NW.js开发,也是类似的框架。因为JavaScript有非常丰富多彩的交互为主的工具和库,并且实际上也都会跑在JavaScript的V8引擎上作为js引擎,并且在chrome的内核上进行界面渲染。那么现在web前端程序员就可以开发高交互、界面丰富、美观的应用。国内比较多的前端框架主要是VUE,国外主要是React和Angular。
虽然JavaScript技术栈来搞PC软件前端是业界趋势,但是因为V8和Chrome引擎的包体、内存消耗、js本身的单线程问题,不是所有的pc软件都是适合用JavaScript技术栈来开发,比如一些需要包体小的、内存小的、老机器跑的、老操作系统跑的,那么还需要一些更底层的库来开发,比如最老的MFC、Delphi、duilib,后面的WPF、QT等等。
好了,文章到此结束,希望可以帮助到大家。
本文地址:http://www.cj8811.cn/16016.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。