【总结】游戏框架与架构设计

【Unity 脚本】整体架构图 unity 阅读详情

使用框架开发游戏

 

优点:耦合性低,重用性高,部署快,可维护性高,方便管理。提高开发效率,降低开发难度

缺点:增加了系统结构和实现的复杂性,需要额外花费精力维护,不适合小型程序,易影响运行效率

 

常见框架

MVC 

  • 表现层(View):游戏画面。UI
  • 逻辑层(Controller):数据接口,操作控制,AI
  • 数据层(Model):数据保存,图片、声音等资源

 

我的SFramework中,View层是单独的,Model我放在基类中,Controller则在派生类,实现了MVC的分离(如果要重构的话我可能会用组合代替继承)

举例: PlayerHUD+PlayerCtrl(PlayerYuka)+IPlayer

 

注意图中的调用关系

MVC

优点:实现了层次化设计,是一个基础常用的框架

缺点:MVC如果没有用好,容易出现某一层过重的现象(如View)。MVC更适合横向铺量的项目。游戏(非UI部分)则不太合适。

 

MVVM

MVVM 模式将MVP中的 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。

MVP中,View 与 Model 不发生联系,都通过 Presenter 传递。

唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel

 

SFramework中,View不能直接修改Model,他们之间通过事件通信

 

uFrame&MVVM

uFrame框架模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分)

在uFrame中,使用Element这个概念将业务分拆成三部分:

  • ViewModel:保存游戏中对象的数据结构,例如血量、经验、金钱等等。
  • Controller:处理游戏业务逻辑。例如加血、减血之类的。
  • View:游戏世界中可以见的对象,和ViewModel绑定,以在游戏中进行展现。

 

uFrame是可视化的,功能似乎方便实用,但是由于收费,我没有深入过,不便过多评价

 

PureMVC

pureMVC框架引入了多种设计模式、消息机制(使用观察者模式,发布/订阅模式)来解耦各个模块

 

我曾使用过PureMVC框架开发过一个demo,它通过ApplicationFacade,Mediator,Proxy,Command架设项目,由SendNotification()进行交互

 

优点:强解耦,实现了MVC高度分离

缺点:增加代码量,降低执行效率,函数调用层次较深,容易找不到消息发送源。Facade作为单例接口,本应管理MVC,Model、View、Controller却提供了 getInstance()方法,让人奇怪

 

MVCS

框架与架构

 

StrangeIOC支持依赖注入(即控制反转(Inversion of Control,缩写为IoC)),可以有效降低耦合度

但是IOC复杂而缓慢,而且是基于Mono的,所以我没有选用

 

ECS

Entity Component System 

Unity本身的组件开发就是ECS框架,ECS很适合游戏开发,在游戏引擎中比较常见,谷歌曾在Github上发布了一个名叫Entitas的ECS框架,下面我们就来介绍

 

  • Entity就是只有数据的GameObject对象,不包括方法
  • 每一个Entity拥有Component组件,负责Entity数据处理
  • Group是拥有相同Component的Entity集合
  • Context就是创建销毁Entity的工厂
  • Collector收集器提供了简单的方法来处理Group中Entity变化的反应。

 

ECS的教程现在还比较少,详细的我也不方便介绍了,感兴趣的可以在这些框架中选一个深入

 

其他

TRAP框架

TRAP是一个学长制作的单机游戏,他在这个游戏中使用了自己原创的框架,SFramework也从中参考了不少设计思路。TRAP有分UI部分和游戏部分,封装了Unity事件和输入控制,使用单例、Manager和NotificationCenter进行消息传输,不过目前未开源

 

GameFramework

基于 Unity 5.3+ 引擎的游戏框架,国人原创,开源

详情可以去官网查看 简介

 

SFramework

Sunset Game 制作组自主设计研发的一款Unity通用游戏框架,设计思想类似MVC+ECS。简介

 

还有更多优秀框架可以在GitHub中找到~

 

CocosCreator游戏开发框架XForge:工程化与架构设计实战指南 在游戏开发领域,前端架构与工程化管理是提升团队协作效率和项目质量的关键。一套优秀的开发框架能够通过模块化设计、状态管理和资源优化等核心原理,解决代码组织混乱、资源耦合和团队协作冲突等常见痛点。其技术价值在于提供标准化开发范式,降低维护成本,并支持性能优化。在CocosCreator生态中,XForge框架以轻量核心和插件化架构为特色,通过UI管理系统、ECS架构支持以及自动化分包等工程化实践,为游戏项目提供了清晰的解决方案。该框架特别适用于需要规范协作的中大型团队项目,能有效管理UI界面、游戏状态和资源加载 阅读详情

相关推荐

Unity游戏开发框架集成:GameFramework与YooAsset协同架构设计与实战

在Unity游戏开发中,资源管理与项目架构是决定工程化水平与长期维护性的核心。资源管理系统负责资产的加载、卸载与生命周期管理,其原理在于通过异步加载、依赖分析与内存池等技术,优化运行时性能并避免内存泄漏。而游戏框架则定义了模块化、组件化的代码组织规范,通过事件驱动与状态机管理,提升代码的可维护性与团队协作效率。两者的技术价值在于将复杂的底层细节封装,为上层逻辑提供稳定、高效的开发范式,广泛应用于中大型商业游戏、需要热更新的移动端项目及长期运营的在线服务型游戏。本文聚焦于将GameFramework这一模块化

weixin_29015051的博客 300

解构C#游戏框架uFrame兼谈游戏架构设计

https://www.fgba.net/sitemap.xml

woliuqiangdong的博客 1682

基于due框架的分布式麻将游戏服务器架构设计与实战解析

分布式系统是现代高并发应用的核心架构范式,其核心原理在于通过服务拆分与协同,将单体应用解耦为多个独立部署、可水平扩展的服务单元,以提升系统的整体吞吐量与可用性。在游戏服务器领域,这一技术价值尤为凸显,它能够有效解决传统单体架构在应对海量用户实时交互时面临的性能瓶颈与单点故障问题。具体到麻将、棋牌等房间制强状态同步游戏场景,分布式架构需要精细处理服务发现、节点通信、状态分片与一致性等挑战。本文聚焦于due这一专为游戏服务器设计的分布式框架,深入剖析其如何为麻将游戏业务提供底层“兜底”能力。框架通过内置的节点管

weixin_42549723的博客 351

【总结】游戏框架与架构设计(Unity为例)

使用框架开发游戏 优点:耦合性低,重用性高,部署快,可维护性高,方便管理。提高开发效率,降低开发难度 缺点:增加了系统结构和实现的复杂性,需要额外花费精力维护,不适合小型程序,易影响运行效率 常见框架 MVC 表现层(View):游戏画面。UI 逻辑层(Controller):数据接口,操作控制,AI 数据层(Model):数据保存,图片、声音等资源 我...

weixin_30650039的博客 1099

网狐6603游戏服务端框架:架构设计、部署实战与问题排查

游戏服务端架构决定了在线平台的稳定性与扩展性,其核心涉及长连接管理、消息协议设计、数据库访问与状态同步等基础问题。理解这些原理,是评估和优化各类网络游戏框架的前提。在实际工程中,Socket通信负责可靠传输,自定义协议通过包头+包体解决粘包问题,而业务模块按账号、房间、游戏逻辑分离,则便于独立部署与扩展。这类设计思想广泛适用于棋牌、休闲游戏和实时对战场景。本文以网狐6603为经典样本,从整体架构、环境部署、核心业务流程到常见故障排查,系统拆解一套完整游戏服务端框架的实现脉络,帮助开发者快速建立从代码到运行的

weixin_32050773的博客 284

Unity插件:uFrame Game Framework 1.6.2f2

Requires Unity 4.6.1 or higher. uFrame is an MVVM/MV* framework designed for the Unity Engine. It comes with a load of features including a graphing/diagramming engine that will generate code and even process some re-factorings. The graphing drastically increases the speed at which you can develop and enforces a consistent coding model for all of your team members. With Microsoft holo-lens on the rise and unity's cross platform capabilities, uFrame is the ultimate solution for building your next big app or game. What you get: - High quality graphing engine - Editable Code Generation Templates - uGUI Bindings - IOC/Dependency Injection - Complete MV* Implementation - Event Aggregation - Scene Management ( Loading scenes as prefabs with additive loading ) - Complete default project to get you started in no time - Battle tested run-time on extremely large projects - A very actively developed framework and tool-set - Incredible community of highly intelligent developers - An Open-Source framework - Support for all platforms - A big virtual hug from the Invert Team

Unity3D框架插件uFrame实用参考手册(二)

5.创建属性和命令 本小节主要内容包括: 在Element节点上创建属性数据 在Element节点上创建命令数据 5.1.在Element节点上创建属性数据 在这里,我们首先为Login节点中的属性(Properties)部分添加一个新的属性,该属性为String型,名为UserName。首先选中Login节点,点击Propertie...

weixin_34191734的博客 567

一个游戏开发的框架(非常详细,尖端技术)

一个游戏开发的框架(非常详细,尖端技术)

基于GameFramework的塔防游戏框架:架构设计与工程实践

在Unity游戏开发中,模块化架构与数据驱动设计是提升工程效率和项目可维护性的核心原理。通过将游戏逻辑分解为高内聚、低耦合的功能模块,并结合配置表驱动运行时行为,开发者可以构建出易于迭代和扩展的健壮系统。这种工程实践的技术价值在于,它能显著降低重复开发成本,提升团队协作效率,并支持游戏的长线运营与热更新。在塔防这类玩法模式固定但内容多变的游戏品类中,一个优秀的框架能将这些通用技术价值转化为具体的生产力。本文探讨的塔防游戏框架,正是基于GameFramework这一成熟的Unity工程框架,深度融合了实体组件

weixin_31497453的博客 252

LMX2820即时校准实战:从失锁到稳定锁频的完整指南

本文详细解析了LMX2820锁相芯片在高频段(11.3-22.6GHz)易出现随机失锁问题的根源,并提供了即时校准(InstCal)的完整实战指南。通过寄存器编程、Index例程和校准配置的关键步骤,确保从失锁到稳定锁频的高可靠性,大幅提升射频合成器在通信与测试测量应用中的性能。

bert9linguist的博客 958

word 2013 长篇文档排版案例教程

office 2013 制作长文格式模板

1万+

深度解析:behaviac游戏AI框架的工程化架构设计与技术实现

behaviac是腾讯开源的游戏AI开发框架,它不仅仅是一个工具集,更是游戏AI工程化实践的典范。作为支持行为树、有限状态机和分层任务网络的多范式AI框架,behaviac在技术实现上展现了现代游戏AI开发的核心理念:如何在保持高性能的同时,提供灵活的可视化编辑和跨平台部署能力。 ## 技术定位与价值主张 behaviac的核心价值在于解决了游戏AI开发中的三个关键问题:开发效率、运行性能和跨

gitblog_00829的博客 642

Simulink中通过MEX与MinGW实现C/C++结构体变量的高效导入

本文详细介绍了在Simulink中通过MEX工具链与MinGW编译器,高效导入C/C++结构体变量的完整流程。文章从需求背景出发,逐步讲解了MinGW环境配置、.h文件编写规范、核心导入命令Simulink.importExternalCTypes的使用,以及如何在MATLAB Function模块和总线创建器中调用自定义结构体,旨在实现模型与代码的无缝对齐,为后续仿真和代码生成奠定坚实基础。

weixin_29056781的博客 343

Unity游戏本地化架构设计:XUnity.AutoTranslator的多框架适配与扩展方案

面对Unity游戏多语言本地化的复杂挑战,开发者常陷入框架兼容性差、翻译服务集成困难、性能开销大的困境。XUnity.AutoTranslator作为一款专业的游戏自动翻译插件,通过模块化架构设计解决了多插件框架适配、实时翻译性能优化和资源重定向等核心问题,为技术爱好者和开发者提供了完整的本地化解决方案。 ## 架构设计哲学:解耦与扩展 XUnity.AutoTranslator的核心设计遵循

gitblog_00223的博客 186

LED单元板驱动(HUB75接口)

开始之前先吐槽一下,搜这个的资料。要么都是Arduino,要么单片机的收费。小小的一个LED单元板,凭什么? 用Arduino是你速度快还是我ST,树莓派不好用?收费更离谱,这点东西还藏私?给你个中指凸。把原理都写出来看你怎么收费。 一、接口定义及原理 如图,有两个RGB通道,共占用6个IO。剩下的ABCDE为地址通道,LAT为行数据锁存通道,CLK为数据时钟,OE为低电平使能LED显示。图片这里没有E,证明它是16扫的,有E就会把B上面的地改为E。这样就是5位,2的5次方32扫。1.

a3748622的博客 3万+

Java + Selenium + TestNg + Allure Web UI 自动化

我们知道,在Python中针对Web UI自动化有Python + Selenium + Pytest/Unittest +Allure的技术栈。那么对于Java而言,也有其独特的Web UI 自动化技术栈。相同的,我们同样的运用Selenium框架,测试报告同样运用Allure。不同的是,我们运用的语言由Python转化为了Java,测试用例管理框架从Pytest转化为了TestNG。

qq_45594960的博客 1913

(转载)【总结】游戏框架与架构设计(Unity为例)

使用框架开发游戏 优点:耦合性低,重用性高,部署快,可维护性高,方便管理。提高开发效率,降低开发难度 缺点:增加了系统结构和实现的复杂性,需要额外花费精力维护,不适合小型程序,易影响运行效率 常见框架 MVC 表现层(View):游戏画面。UI 逻辑层(Controller):数据接口,操作控制,AI 数据层(Model):数据保存,图片、声音等资源 我的SFra...

woshixinyou0的博客 964

华为od 面试八股文_C++_01_含答案

华为od 面试八股文_C++_01_含答案

MISAYAONE的博客 5588

Go语言游戏服务器框架bgo:高并发架构设计与工程实践

游戏服务器开发的核心挑战在于高并发、低延迟和资源高效利用。Go语言凭借其轻量级goroutine和channel的并发模型,为构建高性能服务端提供了理想基础。其原理在于通过用户态协程实现海量连接处理,配合高效的垃圾回收机制,在保证开发效率的同时兼顾执行性能。这一技术价值在于,开发者可以更专注于业务逻辑创新,而非底层网络和并发管理的复杂性。在应用场景上,尤其适合多人在线游戏、实时交互应用等对并发和响应要求极高的领域。开源项目bgo正是基于此理念构建的游戏服务器框架,它通过模块化设计,如网络层、协议编解码、消息

weixin_33691817的博客 498

【x265编码器】章节1——x265的lookahead模块分析

目录一、模块功能二、lookahead模块分析1.调用流程2.代码分析Lookahead::addPicture()Lookahead::checkLookaheadQueue()Lookahead::getDecidedPicture()Lookahead::findJob()Lookahead::slicetypeDecide()PreLookaheadGroup::processTasksLookaheadTLD::lowresIntraEstimate()Lookahead::slicetypeAn

vcvdv123的博客 4万+

2ED2410-EM:12v / 24v智能模拟高侧MOSFET栅极驱动器

12v / 24v智能模拟高侧MOSFET栅极驱动器。2ED2410-EM具有输入CPP和CPN的电压比较器。该比较器可用于基于任何模拟电压触发SAFESTATE模式,甚至是外部电压2ED2410-EM。CPP为比较器的正输入,CPN为负输入。VcPREF可以通过微控制器进行调节,也可以通过板载电源芯片(如英飞凌SBC)或简单的分压器在限制VcP(REF)内进行固定,以保持稳定性。使用此比较器允许2ED2410-EM进入SAFESTATE并独立于微控制器关闭MOSFET。

让学习成为一种习惯 2188

BepInEx架构设计:Unity游戏插件框架的深度解析与最佳实践

BepInEx是一款面向Unity Mono、IL2CPP和.NET框架游戏的专业插件与模组框架,为游戏模组开发提供企业级解决方案。作为跨平台的游戏插件框架,BepInEx通过其高度可扩展的架构设计,解决了游戏模组开发中的依赖管理、程序集加载和运行时修补等核心问题,为技术决策者和中级开发者提供了稳定可靠的技术基础。 ## 问题分析:游戏模组开发的核心挑战 ### 实战场景:多插件协同工作时的冲

gitblog_00340的博客 172

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

YimMenu深度解析:GTA V游戏增强框架的技术实现与架构设计

YimMenu是一个基于C++开发的GTA V游戏增强框架,专注于提供稳定可靠的游戏功能扩展和防崩溃保护。该项目通过DLL注入技术实现游戏内菜单系统,为技术爱好者和开发者提供了深入了解游戏逆向工程和Hook技术的绝佳案例。 ## 技术架构深度剖析 ### 核心设计理念与问题定位 在GTA V游戏增强开发中,开发者面临的主要技术挑战包括游戏稳定性保护、内存安全访问和实时功能注入。YimMenu

gitblog_00520的博客 360

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

深度解析BepInEx插件框架:3大核心架构设计与Unity游戏扩展实战

BepInEx是一款强大的Unity游戏插件框架,为游戏模组开发者提供稳定可靠的扩展平台。本文深度解析其技术架构、多运行时支持机制以及实战优化方案,帮助开发者掌握现代化插件框架的设计哲学与实现原理。 ## 🔍 项目概述与核心价值 BepInEx作为Unity游戏生态中的关键技术基础设施,通过创新的注入技术和分层架构设计,解决了游戏插件开发中的核心痛点。其核心价值在于提供统一的插件加载和管理框

gitblog_01113的博客 754

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Unity游戏开发:基于Lua的热更新框架架构设计与工程实践

在游戏开发领域,热更新技术是解决频繁内容迭代与多平台发布审核痛点的核心方案。其原理是通过动态加载和替换脚本资源,在不更新客户端主包的情况下实现功能迭代。这项技术的核心价值在于大幅缩短更新周期、提升开发效率,并降低用户流失率。在Unity引擎中,Lua因其轻量、高效和易于嵌入的特性,成为实现热更新的主流脚本语言选择。通过构建分层架构,将C#作为底层引擎接口层,Lua作为业务逻辑层,开发者可以搭建支持热更新的游戏框架。这种架构模式广泛应用于中大型移动游戏项目,特别是需要频繁更新活动、UI和数值系统的MMO、卡牌

weixin_27070451的博客 235

OneDragon:基于计算机视觉的游戏自动化框架架构设计与实现

OneDragon是一个面向《绝区零》游戏的全功能自动化解决方案,采用模块化架构设计,通过计算机视觉技术实现游戏界面的智能识别与操作编排。该框架基于Python技术栈构建,核心依赖包括OpenCV-Python(4.10.0.84)进行图像处理、PySide6(6.8.0.2)构建用户界面、ONNX Runtime DirectML(1.18.0)提供深度学习推理能力,以及PyAutoGUI(0.

gitblog_01145的博客 124
上一篇: 【总结】操作系统的重点
下一篇: 程序员如何进阶成为大神
wang2021wang
博客等级 码龄15年 6粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值