关闭 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可以留住玩家; 充分利用手机的各项优点:手机的优点比如便携性,私密性,即使抵达。手机是我们身体的延伸,所以一款好的游戏应该充分利用手机的一些传感器、摄像头、网络、蓝牙,找出特点,以便设计出一款优秀的游戏。
    上一篇返回首页 下一篇

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

    别人在看

    电脑屏幕不小心竖起来了?别慌,快捷键搞定

    Destoon 模板存放规则及语法参考

    Destoon系统常量与变量

    Destoon系统目录文件结构说明

    Destoon 系统安装指南

    Destoon会员公司主页模板风格添加方法

    Destoon 二次开发入门

    Microsoft 将于 2026 年 10 月终止对 Windows 11 SE 的支持

    Windows 11 存储感知如何设置?了解Windows 11 存储感知开启的好处

    Windows 11 24H2 更新灾难:系统升级了,SSD固态盘不见了...

    IT头条

    Synology 更新 ActiveProtect Manager 1.1 以增强企业网络弹性和合规性

    00:43

    新的 Rubrik Agent Cloud 加速了可信的企业 AI 代理部署

    00:34

    宇树科技 G1人形机器人,拉动一辆重达1.4吨的汽车

    00:21

    Cloudera 调查发现,96% 的企业已将 AI 集成到核心业务流程中,这表明 AI 已从竞争优势转变为强制性实践

    02:05

    投资者反对马斯克 1 万亿美元薪酬方案,要求重组特斯拉董事会

    01:18

    技术热点

    大型网站的 HTTPS 实践(三):基于协议和配置的优化

    ubuntu下右键菜单添加新建word、excel文档等快捷方式

    Sublime Text 简明教程

    用户定义SQL Server函数的描述

    怎么在windows 7开始菜单中添加下载选项?

    SQL Server 2016将有哪些功能改进?

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

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