关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » HTML5 »游戏引擎介绍,架构,设计及实现

    游戏引擎介绍,架构,设计及实现

    2014-09-23 00:00:00 出处:微wx笑
    分享

    从小到大,虽然玩过的游戏不少,但是从写程序开始,目前为此仅仅写过2个游戏。其一是2011年在MTK平台下写的贪食蛇,其二是2010年在嵌入式开发板上写过一个迷宫的游戏。第一个代码量大概有3000行左右,第二个有2000行左右。

    这2个游戏都很简单,而且网上有很多现成的例子可供参考,因此难度也比较低。

    这2天把拖延了好久的《Android应用开发揭秘》的游戏引擎的那一章看完了,收获还是很大,在此写一篇读书笔记。

    关于Game Engine,我能想到的几个问题:

    游戏引擎是什么? Game Engine是为了解决什么问题? Game Engine的架构是什么? 如何设计一款游戏引擎? 游戏引擎包含哪些模块?

    下面就来探讨几个问题:

    1. Game Engine是什么?

    游戏产业在全球来看是一个很大的产业,一款游戏大作包含了非常多的元素。游戏涉及到剧情、人物、任务、关卡、地图、画质、美术、音乐、网络等多种元素。开发一款游戏实际上需要耗费非常多的资源,据说North Star的《GTA V》耗资几亿美元。正因为如此,在开发项目过程中,尽可能复用之前项目成功的东西就非常重要。

    一款游戏中,Game Engine直接控制着剧情、关卡、美工、音乐、操作等内容,将游戏的所有元素捆绑在一起。

    一般来说,一款Game Engine需要包含以下模块:

    基本框架(渲染、逻辑、物理 等等各部分如何组装) 资源管理 渲染 基本逻辑(网游还要解决逻辑的同步问题) 物理(有时候和逻辑合并)
    6. UI 7. 音乐音效 8. 网络 9. 脚本(有些类型的游戏引擎需要脚本和逻辑的关联性非常强,有些脚本则比较独立) 

    2. Game Engine为了解决什么问题?

    Game Engine实际上有效的减少开发者编写程序时的冗余劳动,同时增强游戏的可移植性。

    Engine就是游戏的框架,我们需要往框架中填充内容就可以形成一个游戏。

    引擎,就是一系列的工具和生产链,像Unreal 3,Unity这样的成熟引擎,用起来非常方便,就是因为它的关卡/场景编辑器十分宜用,支持多种脚本语言。这类引擎运用恰当的话,理论上能将关卡调试和物件流水线的大部分工作从程序员那里完全移出。

    3. Game Engine的架构

    游戏 = 引擎(程序) + 资源(图像、声音、动画等) 

    目前的Game Engine的架构都是Model-view-Controller架构,逻辑和显示分开,由一个逻辑控制流来协调Client的请求和Server的行动。

    View: 负责界面回执 Controller:处理工作流程的创建和种植,用户输入,各种事件的处理 Model: 模型、逻辑,程序的功能实现

    消息循环->更新数据->绘制各节点 这是绘制的基本结构基本不会有大的改变。

    各种引擎的变种很大部分是在游戏逻辑上的封装。脚本也好,直接写代码也好。比如较为古老的数据与函数分离,以C语言为代表。大行其道的类结构。以c++为代表。以及现在光环日耀的CBSE,基于组件的架构

    4. 如何设计一款游戏引擎?

    <1>. 结构设计及功能设计

    Game Engine的设计包括结构设计、功能设计及注意事项。

    Game Engine包括图形引擎、脚本引擎、物理引擎、工具模块、音效引擎、网络组件、事件组件等。

    Android游戏主要包括一个Activity类、流程控制类、游戏线程类和游戏对象类。Activity类是游戏的执行单元,负责游戏生命周期的控制。

    流程控制:提供在游戏中多个界面之间切换方法;

    游戏线程:不断监测可能发生的各种事件,计算游戏状态,刷新屏幕。

    <2>. 注意事项:

    手机游戏的主要问题是 硬件限制 及 电池瓶颈。CPU及内存不足,屏幕大小,音效等多方面限制,在设计时需要注意这些方面。

    5. 实现一款游戏引擎

    游戏引擎只是一款炒菜的炒菜锅,但有了好的炒菜锅不一定能保证炒出好的菜。

    游戏引擎的实现就很复杂了,需要按照上一节的架构及功能设计去编码实现,目前绝大部分都是面向对象编程,设计好各种类。比如人物、NPC、道具、动画、动植物等等。有余力的同学可以去研究研究。

    最近流行的一些游戏,其实也并不需要多么NB的游戏引擎,充分发掘用户的痛点才能设计出一款好的游戏。

    目前有很多开源的Game Engine可供大家研究,比如Unity3D, Box2D等,大家可以去网上搜索并研究。

    6. 对手机游戏的展望

    这2年玩过的手机游戏也不少,我也来谈谈一款好的手机游戏应该具备哪些特征:

    上手容易,精通不易,且玩且珍惜。手游面向的是大众,所以上手难的游戏就一律pass,必须保证游戏具有简单性,让玩家一安装就可以玩的; 可中断,时间短。一般玩游戏,都是在公交地铁上等碎片时间里,所以提供的是短时间的娱乐效果,允许在游戏和工作模式之间顺利切换; 必须加入SNS元素:一款好的手游应该具有社交元素,可以加入LBS寻找周围的玩家,或和好友一起玩游戏及互动,抑或者认识新的好友。因为手游都很简单,所以要留住玩家,加入SNS可以留住玩家; 充分利用手机的各项优点:手机的优点比如便携性,私密性,即使抵达。手机是我们身体的延伸,所以一款好的游戏应该充分利用手机的一些传感器、摄像头、网络、蓝牙,找出特点,以便设计出一款优秀的游戏。
    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。