再比如对于网游,又分客户端引擎和服务器引擎;服务器引擎的架构游戏类型、负载需求息息相关,架构本身和技术基础组件选型(操作系统、开发语言、网络库、数据库、运维工具、运营后台等)相关联,比较灵活。
按问题要求,猜测楼主问的是通用跨平台客户端引擎,参考对象是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):易用的可视化开发工具,如拖拽布局、拖拽游戏资源的使用、代码编辑、集成调试打包功能等。这一块是游戏引擎开发工作量的大头,涉及用户(游戏开发者)密集使用的交互接口,要尽可能满足高效、易用。一般来说如果不是特别有能力驾驭,最好现成的采用跨平台的应用程序开发方案,比如Cocos Creator采用electron框架。
7.调试功能:提供查看FPS,跟踪代码运行,Profile,网络信号模拟,分辨率模拟设置,硬件设备模拟(手机)预览游戏等。建议游戏运行时与编辑器使用同一套或者大致一样的渲染和资源接口(例如Unity),这样方便降低调试和运行结果大相径庭的情况。
8.打包发布功能:简单处理可以生成要打包的对应平台的工程,比如android平台生成Android Studio工程,ios平台生成xcode工程,注意资源、代码库的引用关系,配置文件的有效性、一致性,编译速度等。
9.插件扩展功能:人力因时而穷,引擎功能不必强求一开始就大而全,可以将引擎整体设计为一个易扩展、易修改的结构,提供相应接口暴露给开发者,群策群力迭代和改进游戏引擎。
10.其它功能:这一块可以根据自身引擎特点来进行添加,比如现在主流的几大引擎都有提供官方继承的资源商店、数据统计等服务接口。
真正可用的引擎的实现是一个系统而复杂的工程,有很多脏活累活需要考虑在里头,平台兼容性、性能、效果、易用性、鲁棒性、文档编写……需要耗费巨量的心力;
如果是个人兴趣了解,可以根据上述内容再延伸查询相关内容,也欢迎随时交流。
如果是想做个娱乐引擎可以随意玩,技术如诗,越撸越痴;
如果是想创造一个伟大的引擎,请收下偶的膝盖。
哪些游戏玩物不丧志?
偶是ACG雪碧,群众需要什么雪碧就给大家什么!分享各类游戏、动漫、漫画等,想了解的就来私信雪碧吧!这次问答就让雪碧来为大家解惑吧!
多年前的4399页游——《赛尔号》,即使过了这么久,偶想大家都还记得“高压水枪”“火焰碰射器”“潜水装”的获取方法。赛尔号曾经作为“妈妈放心,孩子欢喜”的一款模拟宇宙类游戏,曾经制作出来后是环绕集科普、环保、娱乐、倡导团结的力量、环保的主题、科学知识的游戏为核心的一款儿童游戏。继《摩尔庄园》后,系统更加完善。大家不仅能把它作为一款游戏来玩,还可以学到一些东西。以往的航行日志每期最后都会有宇宙知识,资料室还有星座小游戏。偶现在还记得小熊星座就是大家口中的北斗七星,还有大熊星座、仙女座、猎户座等等,这点就很像《蓝猫淘气三千问》的栏目,目的就是给玩家一些小知识。还会出一些小游戏,比如2048、数字消消乐这样的益智类游戏。《摩尔庄园》做的就最到位,它可能唯独和《赛尔号》不同的就是一个是专业类知识(警察就应该做警察的事,工程师有工程师的工作),一个是辅助类知识。在游戏中加入知识元素(塔克星沙尘暴游戏:赛尔需要在干旱地区种植植物抵御沙暴的侵袭)。最主要的还是赛尔号的目的,登过船的赛尔都知道,赛尔号是一艘以寻找宇宙“无尽能源”,寻找新星球开发的星球资源的一艘船。当未来能源枯竭(地球不可重生资源)的时候,人们需要找到新的能源代替,开发出正真的“可循环使用的能源、节能环保的能源等等”。还要从新的地方勘探新的能源,《赛尔号》它本身就是从环保、能源这些热点出发的。(曾经年少的偶,也幻想过“无尽能源”,拥有“无尽能源”可能会摆脱自己每天还要背着十几斤重的书包去走着上学……)感谢偶的童年是《摩尔庄园》《赛尔号》,而不是《英雄联盟》。现在偶成功的走上了自己所向往的道路,从游戏中学习,从学习中游戏。当把一件事能坚持8天、8个月、8年的时候,那么,你就已经成为“专家”了,即使是想这样的游戏,玩了8年多过来(现在还在玩),你也会看到一些正真的东西。有的游戏的目的是为了娱乐,而有的游戏是教育+游戏,从游戏中培养乐趣。虽然过了这么些年,能真正靠教知识而火的游戏偶也没见过几个,但是《摩尔庄园》和《赛尔号》一开始的确是为一个口号而起步的。
等今年过完年就去参加it培训班?
游戏编程是比较专业的范围了,通过培训班去学编程游戏还是毕竟困难等,培训机构自己都还没捋清,怎么教你呢?具体游戏编程也有几个方向的:
1、大型网游,像魔兽世界
2、单机或联网类rpg游戏
3、页游,也就是网页游戏
4、手游,像梦幻、天龙八部、王者荣耀、吃鸡手游等
5、小游戏,尤其以微信小程序游戏。
你要学哪个方向的游戏编程呢?每个方向都有一定区别,如编程语言、游戏引擎框架等。
以微信小程序游戏为例,这个可能简单一点,但其实也很复杂的。
你得先学小程序的开发、前端一些基础知识,threejs、coco2d等
你还要学会和服务器交互、前端的交互、性能优化等
如果是手游开发,你可能要学ios或者android,还有游戏引擎,常见的有unity 和cocos等
编程游戏难度以此类推。
如果觉得《电脑编程联机小游戏推荐 游戏引擎怎么开发 – 游戏开发 – 前端》对你有帮助,请点赞、收藏,并留下你的观点哦!