Skip to content

X-LIK 框架

X-LIK 是什么?

X-LIK 是一个魔兽争霸3地图开发框架,可在 windows 平台上运行。它致力于解决过去中发现的问题,合理地优化设计从而得到更优质的体验,它结合了各方运行环境,以独特的概念运行。在游戏运行执行时,尽可能地维持安全的环境,保持稳定。支持更灵敏先进的热更新机制,完善测试流程的各个方面,并包含全局代码混淆加密(甚至是中文),并对音效等进行了全新优化。在引用资源方面更是得到了全面的优化,能更加准确提示用户资源滥用或是资源引用的缺失,更支持多种路径的配置方便外部资源、原生资源、项目资源的引入。在实现高级功能的同时,依然包容支持过去制式的体验。

x-lik

获取框架

x-lik 璞玉版(完全开源,适合自研型的你)

文档、工具、依赖组件

查阅技术文档是入门的正经操作,项目内已包含docs文档目录,你可以直接查看也可以 下载EX阅读器

在项目中引入依赖是必备的操作,你可以查看 GitHub#x-lik-vendor

框架结构

(*)Required 必要性,丢失崩溃

(~)Automatic 临时性,缺少自动构建

(·)Customize 自定义,按需构建

text
├── projects -(~|·)用来放置你的地图项目目录,如 project_demo
│   └── project_demo -(·)
│       ├── assets - 资源引用
│       ├── slk - slk引入
│       └── library(·)项目子库
├── vendor -(·)工具资源目录,你可以放置assets/w3x2lni/we等(当然也可以不放)
│   ├── assets -(*|·)资源库
│   │   ├── war3mapBgm - 放音乐,只支持 mp3、wav
│   │   ├── war3mapFont - 放字体,只支持 ttf(可搭配lua配置)
│   │   ├── war3mapImage - 放图片,如过去lik的图标,只支持 tga、blp
│   │   ├── war3MapLoading - 载入图,只支持单图 tga 或 规则组合 tga
│   │   ├── war3mapModel - 放模型,只支持 mdx,贴图不要扔进来
│   │   ├── war3mapModelNew - 放新的未测试模型,测试完成后再放入war3mapModel(使用命令model -n测试)
│   │   ├── war3mapPreview - 预览图,只支持 tga
│   │   ├── war3mapSelection - 放选择圈,参考已提供格式
│   │   ├── war3mapTerrain - 放地形贴图,参考已提供格式,支持 tga、blp
│   │   ├── war3mapTextures - 放模型贴图,只支持 blp
│   │   ├── war3mapTexturesNew - 放新的未测试模型贴图,测试完成后再放入war3mapTextures(使用命令model -n测试)
│   │   ├── war3mapUI - 放UI套件,已有格式参考
│   │   ├── war3mapVoice - 放vcm、v3d、vwp音效,只支持 mp3、wav
│   │   └── war3mapVwp - 放武器音效配置,只支持 yaml
│   ├── w3x2lni - w3x2lni工具(v:2.7.2)
│   └── WE - 新马仔
├── env.yaml -(~|·)开发环境配置
├── xlik.exe -(*)命令工具
└── .tmp -(~)缓存

安装工具及插件

使用编码工具(仅作参考之用,你亦可以使用其他工具如golang、cursor等工具)

IntelliJ IDEA Community Edition

Visual Studio Code

插件安装

可选插件 EmmyLua,获得lua语法支持

Emmylua

可选插件 Image Icon Viewer,获得目录略缩图支持

ImageIconViewer

可选插件 Color Highlighter,获得颜色代码高亮支持

ColorHighlighter

可选插件 CSV Editor,获得.csv文件编辑优化

CSVEditor

可选插件 Markdown,获得.md文件编辑优化

CSVEditor

可选插件 CodeGeeX/TONGYILingma/MarsCode/Continue 等,获得代码AI助手协助

CodeGeeX

TONGYILingma

MarsCode

Continue

终端操作

打开终端并进入框架根

> cd ./x-lik

创建新项目

> xlik.exe new demo

本地调试、测试调试、构建调试

> xlik.exe run demo
> xlik.exe run demo -l
> xlik.exe run demo -t
> xlik.exe run demo -b

使用历史工具管理项目

你应该使用版本代码历史管理工具(Git、Svn等)来管理你的开发项目。 你可以使用第三方的托管平台(如GitHub、GitLab、Gtiee、Bitbucket),或自建(如Gogs)管理工具,请至少在本地使用工具构建本地版本。 人无远虑必有近忧,没有人会知道自己什么时候会犯错。代码历史可让你查看每一次的修改,回滚版本、备份成果。

对比lik功能结构

下面将以表格列出比较重要或核心的改动。其他部分的细节改动,具体请浏览各个功能模块的代码注释。

功能模块likxlik
命令exe:new依赖vendor/lni不再依赖vendor
命令exe:run以-h启动热更新新的本地模式
-l -t -b 模式都支持热更
assets/war3mapSound存在此模块废弃
assets/war3mapBgm新的声音模块,专门处理BGM,现支持wav音乐
assets/war3mapFont不能配置字体数据模块得到优化,可使用lua配置字体数据
assets/war3mapImage旧模块为assets/war3mapIcon用于图标模块得到优化,变为通用的图片资源,现支持blp图片
assets/war3mapModelNew
assets/war3mapTexturesNew
新的new模块,用于代替assetsNew
assets/war3mapTerrain新的地形贴图模块,专门处理地形16个贴图,悬崖2个贴图
assets/war3mapVoice新的声音模块,专门处理音效,资源文件得到合并与优化,现支持wav音乐
assets/war3mapVwp新的武器音配置模块,以yaml配置武器击打声音
library/ability/crackFly不支持frequency参数支持frequency参数
library/ability/leap支持shake参数不再支持shake参数
支持frequency参数
library/ability/missile支持shake参数不再支持shake参数
支持twist参数
支持frequency参数
library/ability/serpentine新的技能
library/classprop机制
不同类混乱
index+类别机制
Meta类
UI类
Vast类
library/class/meta/process配置过程函数定义过程函数,而不再是配置
library/class/meta/uiKit配置过程函数定义过程函数,而不再是配置
library/common管理通用功能管理更多的通用功能
library/common/effector由Effect管理特效废弃Effect
由effector全权管理
library/foundation存在此模块废弃
部分功能移至common
library/japi存在此模块更精练的Api
library/encrypt以json配置以yaml配置仅支持部分版本
envini配置文件yaml配置文件
支持工具路径配置
vendor核心部分不再为核心部分,可选依赖

各项测试

likx-lik比率变化
array create[100000]0.787 sec0.181 sec23.0%-77.0%
effect create[10000]1.034 sec0.137 sec13.2%-86.8%
Unit create[10000]55.913 sec10.726 sec19.2%-80.8%
Item create[10000]11.682 sec7.625 sec65.3%-34.7%
Ability create[10000]5.005 sec0.221 sec4.42%-95.6%
Timer[100000*3]14.250 sec0.804 sec5.64%-94.4%
Buff[100000]11.025 sec3.147 sec28.5%-71.5%
attr defend modify[100000]1.653 sec0.958 sec58.0%-42.0%
attr attack modify[100000]1.667 sec1.026 sec61.5%-38.5%
attr exp modify[100000]8.905 sec1.347 sec15.1%-84.9%
ConvertWorldPosition[100000]4.057 sec1.775 sec43.8%-56.2%
UI Event register[100000]3.941 sec3.014 sec76.5%-23.5%
encrypt17.925 sec9.474 sec52.9%-47.1%
missile shoot[150]57.3 frames63.4 frames110.6%+10.6%
missile shoot[300]23.1 frames62.3 frames269.7%+169.7%
missile shoot[500]7.8 frames57.2 frames733.3%+633.3%
missile shoot[750]2.7 frames55.3 frames2048.1%+1948.1%
missile shoot[1000]0.5 frames54.1 frames10820.0%+10720.0%
orderRoute at 50frames250 units500 units200.0%+100.0%

All publicly available technologies are released under the AGPL3 licence.