/CXEngine

CXEngine是一个方便大家使用lua+imgui做游戏的游戏引擎,目前主要整合了vscode lua调试器,网络库,还有lua imgui,以及2D回合制MMORPG的框架

Primary LanguageC++

通知:

未来本项目会转移到Unity开发,地址:https://github.com/oceancx/CXEngineUnity

关于这个项目:

CXEngine是一个方便大家使用lua+imgui做游戏的游戏引擎

编译版运行(目前只有Windows)

  1. 下载data文件夹 链接: https://pan.baidu.com/s/1r3Sh91JkgaC0rNGlTGRGqQ 提取码: upt8

  2. 下载项目Release里面的dist.rar

  3. 解压data文件夹里面的资源到dist/data下

  4. 运行launcher.bat,点击“启动服务器”,点击“重连服务器”,点击界面上新生成的按钮“simulator:1581930144”,成功即可进入游戏。

构建方法:

  1. git clone --recursive https://github.com/oceancx/CXEngine

  2. 构建external工程。用cmake.exe打开CXEngine/external/CMakeLists.txt,配置构建的binaries目录为CXEngine/external/build, vs版本请选择Visual Studio 15 2017 之后的64位版本,之后全部采用默认配置,点击生成,直到vs工程生成。然后用IDE打开工程,构建INSTALL目标,这个构建完成后会自动安装libs还有include文件到CXEngine/external/dist目录下

  3. 构建CXEngineAll工程。用cmake.exe打开CXEngine/CMakeLists.txt,配置构建的binaries目录为CXEngine/build。 vs版本请选择Visual Studio 15 2017 之后的64位版本,之后全部采用默认配置,点击生成,直到vs工程生成。然后用IDE打开工程,构建CXEngineAll目标。成功构建完成后,CXEngine/bin/Debug或者CXEngine/bin/Release下会生成CXEngine.exe, CXServer.exe, cxluax.exe。

  4. sh launcher.bat。即可打开launcher,从而启动服务端客户端或者配置资源目录。

源码介绍

externals目录下的库全是作者引用的外部库,外部的意思是作者并不打算对其做任何修改。每个引用的外部库都有自己的介绍。这里不再赘述。

internals目录下的库全是作者引用的内部库,意味着作者随时有可能对其进行修改。下面对内部库作一一介绍。

  1. lua-cmake,luacjson-cmake,为标准的lua库的cmake版。

  2. nlohmann c++json库,单.hpp文件包含

  3. NESupport 梦幻西游资源读取库,单一.h&.cpp文件包含

  4. cxlua 依赖lua,luacjson,nesupport,nlohmann,glm。cxlua包装了基础性的c++接口,让其可以被lua调用到。CXEngine,CXServer以及launcher都依赖cxluax。

  5. luadbg 提供了lua调试器,包含了vscode的lua调试器适配器,以及嵌入到被调试程序里的调试相关功能的支持(例如断点,步入,步出)

  6. miniaudio-cmake 修改自https://github.com/dr-soft/miniaudio 使其支持播放相关音频文件。

  7. imgui https://github.com/ocornut/imgui ,游戏必备,本项目也提供了imgui的lua binding生成。

  8. nanovg 2D矢量图形库 https://github.com/memononen/nanovg

下面是CXEngine/下剩余目录的介绍

  1. .vscode保存的是项目的lua调试器配置,关于本项目调试器的构建安装请看launcher里的说明
  2. bin/目录 是默认的exe构建生成目录
  3. common/目录下的.cpp/.h文件会同时参与CXEngine和CXServer的构建。
  4. client/仅用于CXEngine的cpp/h
  5. server/仅用于CXServer的cpp/h
  6. data/梦幻西游资源存放目录
  7. cxluax是launcher项目
  8. assets/目录下是一些其他资源,例如字体,图标,tsv行列表
  9. scripts/是CXEngine用到的所有lua文件,scripts/share/目录下的lua文件共享于launcher/CXEngine/CXServer,scripts/client/仅CXEngine使用,scripts/server仅CXServer使用

CXEngine,CXServer,以及launcher主要逻辑都由lua实现,其lua入口为各自的main.lua文件。

enums_protocol.lua 定义了所有客户端服务端之间的协议

目前CXEngine开发介绍

ALT+E 可以给自己染色,更换形象,更换武器

ALT+W 可以编辑场景里玩家以及召唤兽的属性,包括玩家属性点,玩家级别,玩家技能等级,玩家门派,玩家修炼,召唤兽属性点,召唤兽等级,召唤兽修炼,玩家携带的召唤兽信息,以及玩家的队伍信息。

ALT+R 仅战斗中会显示/隐藏,可以编辑当前战斗中所有对象的战斗指令。攻击/法术/防御/逃跑等

欢迎对此项目感兴趣的朋友加Q群讨论:983630090