您尚未登录,请登录后浏览更多内容! 登录 | 加入最MC

QQ登录

只需一步,快速开始

 找回密码
 加入最MC

QQ登录

只需一步,快速开始

查看: 2590|回复: 1
打印 上一主题 下一主题

[资源][全版本][开源]ProjBobcat——下一代C#启动核心,提供完整自由快速的开发体验。

[复制链接]
  • TA的每日心情
    奋斗
    2017-7-31 16:24
  • 签到天数: 102 天

    [LV.6]常住居民II

    跳转到指定楼层
    楼主
    发表于 2020-2-8 17:44:08 | 只看该作者 |0人打赏回帖奖励 |倒序浏览 |阅读模式

    我就是开发者之一,我同意我转载。
    埃里克没有回归,只是来发个贴而已。
    ProjBobcat是一个由老腊肉( @老腊肉726 )主导的日冕工作室开发的高度模块化的MC启动核心


    为什么采用ProjBobcat?
    -  ProjBobcat采用MIT协议发行。这意味着您可以任意以商业和非商业目的使用和编辑ProjBobcat的源代码,只要您保留我们的版权声明。由此,ProjBobcat的第三方修改的合法性就有了保证。(相比之下一些其他的启动核心,如KMCCC,其采用lgpl协议直接限制了您在编辑其源代码后只能以lgpl二次发行。)
    -  ProjBobcat是一个年轻的项目。年轻意味着它还在活跃更新的状态中,每隔一段时间,开发团队都会给其加上新功能并且进行错误修复。
    -  ProjBobcat是高度模块化的。这意味着启动过程中几乎所有的方法、数据模型等都是可以在没有workaround的情况下外置接入的,你甚至不需要编辑本项目的代码,就能实现无数种可能。
    -  ProjBobcat是面向生产环境的。ProjBobcat是CMFL启动器的自研启动核心,并不是凭空开发和测试的,因此,ProjBobcat对生产环境的兼容性较强,部署能力也较强。
    -  ProjBobcat的代码易于研究学习。ProjBobcat的体系结构非常清晰,而且我们正在以中英双语的形式完善整个项目代码的注释体系。
    -  ProjBobcat有只橘猫,其他项目没有。

    安装
    有3种主要方法安装ProjBobcat。
    -  直接clone我们的Github项目:https://github.com/Corona-Studio/ProjBobcat。希望您也能反手给咱一颗星。
    -  在Visual Studio项目的NuGet程序包管理器中搜索ProjBobcat,选择最新稳定版本安装即可,安装过程中可能会要求您同意MIT协议。
    -  直接在Visual Studio的程序包管理控制台输入:Install-Package ProjBobcat

    使用ProjBobcat开发的启动器
    CMFL启动器 - 超级无敌爆炸好用的优良启动器!




    核心特点
    1、高度模块化的启动组件
    2、高度定制化的API,用户可以直接在我们的基础上开发新的启动模型
    3、支持版本隔离、离线,正版验证等特性

    反馈BUG或和我们一起开发?
    如果您想加入我们并和我们一起将这只“大猫”变得更强壮。欢迎您加入我们的讨论组(见下方)。
    如果您有任何改进意见想和我们提出,请在帖子评论区留言或是加入我们的官方讨论组进行讨论~

    联系方式
    • 团队宣传贴:日冕开发组官方宣传贴
    • 老腊肉的QQ:1606305728
    • ProjBobcat官方讨论组:677872263
    • 日冕开发组官方审核群:1040526762


    ProjBobcat 简略使用指南

    功能列表
    功能状态
    离线验证模型
    正版验证模型
    版本隔离
    launcher_profiles.json解析
    Nuget分发【开发中】
    旧版Forge安装模型【开发中】
    新版Forge安装模型【开发中】
    依赖自动补全【开发中】


    使用说明
    ProjBobcat提供了3大组件和一个核心总成来支撑起整个核心框架
    父级接口父类作用
    DefaultGameCoreIGameCoreNG提供默认启动核心所有实现
    DefaultLaunchArgumentParserIArgumentParserLaunchArgumentParserBase提供默认启动参数解析
    DefaultLauncherProfileParserILauncherProfileParserLauncherProfileParserBase提供默认launcher_profiles.json解析
    DefaultVersionLocatorIVersionLocatorVersionLocatorBase定位游戏版本

    基本使用
    初始化核心
    var core = new DefaultGameCore
    {
        ClientToken = clientToken,
        RootPath = rootPath, //.minecraft/的路径
        VersionLocator = new DefaultVersionLocator(rootPath, clientToken)
        {
            LauncherProfileParser = new DefaultLauncherProfileParser(rootPath, clientToken)
        }
    };


    启动游戏前配置
    var launchSettings = new LaunchSettings
    {
        FallBackGameArguments = new GameArguments // 游戏启动参数缺省值,适用于以该启动设置启动的所有游戏,对于具体的某个游戏,可以设置(见下)具体的启动参数,如果所设置的具体参数出现缺失,将使用这个补全
        {
            GcType = GcType.G1Gc, // GC类型
            JavaExecutable = javaPath, // Java路径
            Resolution = new ResolutionModel // 游戏窗口分辨率
            {
                Height = 600, // 高度
                Width = 800 // 宽度
            },
            MinMemory = 512, // 最小内存
            MaxMemory = 1024 // 最大内存
        },
        Version = versionId, // 需要启动的游戏ID
        VersionInsulation = false, // 版本隔离
        GameResourcePath = Core.RootPath, // 资源根目录
        GamePath = path, // 游戏根目录
        VersionLocator = Core.VersionLocator // 游戏定位器
    };

    launchSettings.GameArguments = new GameArguments // (可选)具体游戏启动参数
    {
        AdvanceArguments = specificGCType, // GC类型
        JavaExecutable = specificJavaPath, // JAVA路径
        Resolution = specificResolution, // 游戏窗口分辨率
        MinMemory = specificMinMemory, // 最小内存
        MaxMemory = specificMaxMemory // 最大内存
    };

    确定验证模型
    launchSettings.Authenticator = new OfflineAuthenticator
    {
        Username = "您的游戏名"
        LauncherProfileParser = Core.VersionLocator.LauncherProfileParser // launcher_profiles.json解析组件
    },


    启动游戏
    var result = await Core.LaunchTaskAsync(launchSettings).ConfigureAwait(true); // 返回游戏启动结果,以及异常信息(如果存在)

    启动核心事件列表
    您可以在启动核心内注册以下事件来实现完整的日志记录

    名称方法签名作用
    GameExitEventDelegate(object sender, GameExitEventArgs e)游戏退出事件
    GameLogEventDelegate(object sender, GameLogEventArgs e)游戏日志输出事件
    LaunchLogEventDelegate(object sender, LaunchLogEventArgs e)启动日志输出事件

    打赏

    0

    收藏

    0

    支持

    0

    反对

    0

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
  • TA的每日心情
    慵懒
    2017-2-23 00:08
  • 签到天数: 57 天

    [LV.5]常住居民I

    沙发
    发表于 2020-2-8 17:48:22 | 只看该作者
    York没有回归,只是来回个贴而已。
    (摊手)
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    您需要登录后才可以回帖 登录 | 加入最MC

    本版积分规则