Giter Club home page Giter Club logo

indieframework's Introduction

IndieFramework

A Simple Framework for Unity Engine 一个简单的基于Unity引擎的游戏开发框架

简介

IndieFramework是一个简单的基于Unity引擎的游戏开发框架,特点就是轻量化,虽然已经有许多开源的强大且功能丰富的游戏开发框架,但强大的同时也意味着臃肿和较高的学习成本,而如果你本来只是希望实现一些中小型的项目的话,那么IndieFramework比较适合你,我将它命名为IndieFramework的原因就是出于将来实现自己的独立游戏或者一些中小型的手游项目,特别适合小型开发团队,它帮你实现了开发游戏所常用的最基本的模块,例如AssetBundle的打包,加载,资源加载器,UI管理器,事件分发器,Excel配置加载工具,定时器,等几乎游戏开发都要用到的最基础的功能。而很多可能需要因为游戏类型不同,而实现不同的模块,我都不打算将它涵盖在内。目前常用的功能已经存在,还在逐步完善中。

适合以下人群:

1.独立游戏开发者,或者小型开发团队,不想花太多时间在常用的例如资源的打包、加载等这种和实际游戏业务无关的功能上。想寻找一个能快速用来开发实际游戏的框架的开发者们。

2.正在学习Unity开发,想要自己学习实现一个框架的人,因为IndieFramework非常轻量,总共代码也没有多少,方便阅读和学习一些模块的实现思路作为参考。

不适合的人群:

1.正在寻找一个MMORPG或者MOBA等某个具体的大型游戏项目的开发框架或者解决方案的人。

框架目录介绍

1.IndieFramework目录

是框架存放的目录,其中Core目录为一些核心的基础类存放的目录,包含如基于MonoBehaviour的单例,和基于纯粹C#类的单例,对象池等。

Modules目录下为各个模块存放的目录,基本做到见名知意,如AssetBundle模块,事件模块,UI模块等。

Util目录下存放一些常用的工具类。

2.Res目录

提供给美术和策划存放项目资源存放的目录,其中的Art存放美术用的资源,Design存放策划用的资源,如Excel配置等。

BundleAssets目录

这个目录被设计为需要打包成AssetBundle的资源的存放目录。目前AssetBundle打包工具设置的目录应该都存放在这个目录下,其中的ExcelConfigs里存放策划Excel配置文件导出的二进制文件存放的目录。UI目录用来存放UI的Prefab,图集等资源,UIMananger会使用这个目录下的prefab来加载UI。

Example目录

用来存放一些框架的使用示例

框架工具介绍

1.AssetBundle打包工具

这个工具基于Unity官方的AssetBundleBrowser进行了增强,新增了一个用于配置AssetBundle打包策略的页签,以及增量式打包和打包指定版本的功能。

目前打包策略支持3种配置:

1.PackByFile:指定一个目录,该目录下每个资源打成一个包,每个包名为资源的名字。

2.PackByDirectory:指定一个目录,该目录下的每个目录打一个包,每个包名为每个子目录的名字。

3.PackTogether:指定一个目录,该目录下的所有资源打一个包,包名为指定的目录的名字。

2.Excel配置转换工具

见菜单栏的Tools/Excel/ConvertAllExcel,该工具会把Res/Design/Excel目录下的所有.xlxs文件转换为二进制存储在BundleAssets/ExcelConfigs的目录下,并且会根据Excel里的配置自动生成对应数据的C#类。也可以通过选中想要转换的Excel文件右键选择Excel/ConvertSelectionExcel来执行。

关于为什么没有集成热更新功能的说明

首先,目前存在多种热更新解决方案,如XLua,puerts,ILRuntime,HybridCLR等,而每种的接入方式都不一样,一旦接入,都需要和框架耦合,而且关于到底使用哪一种热更框架,恕本人才疏学浅,他们的孰优孰劣也看到过许多争执,我无法给出自己的选择。所以选择权交给使用框架的人,而且他们的实现都非常容易接入,即使想要引入对应的热更功能,我觉得只需要在我的框架的基础上稍加改造即可实现。

其次,我并不认为热更新是必须包含在游戏开发框架中的功能,一款游戏的成功与否与是否有热更新功能基本无关。

indieframework's People

Contributors

fantasytianyu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.