Skip to content

basic frame

dohota edited this page Jan 30, 2026 · 1 revision

文件夹规范:

/build:cmake/vcpkg自动构建的,编译产物,中间文件 /the forge lite:相当于游戏主要依赖的第三方库 /lib:别的第三方库,依赖 /lib/audio: /lib/net: /src:主要的游戏源代码:分引擎(纯客户端),游戏本体(客户端+服务端) /src/util:自己实现类似的std标准库,自己实现内存池(减少对raii的依赖),多线程 各种数据类型都可以自己封装一下(比如判断浮点数相等),自己实现运行时异常的处理,日志功能(借鉴spdlog) 要自己实现字符串,默认是utf-8,并且实现多语言国际化。可以引用stb单头文件库

/test:单元测试,各种测试,如cmake的ctest /test/examples:示例 /docs:全部用md文件————设计文档,架构说明,API 文档,教程。可以与wiki里的内容互相配合 /assets:图片,音乐,字体等。图片一律用.png,字体.ttf,音乐.ogg /tools:内部工具,转换器,打包器。可以放入自己的构建工具和自己的版本控制工具

/include:公共头文件,对外 API /scripts:构建脚本,自动化脚本,工具脚本 /config:配置文件,如JSON / YAML / TOML,可以用.hpp配置 初始化组件

底层库依赖:

游戏/游戏引擎需要依赖现有的底层库,跨平台,封装统一的api给上层程序调用 可以先使用sdl+bgfx,最后换成the forge+miniaudio+可以自己封装udp/tcp/quic,定义一种类似protobuf的二进制格式,实现帧同步状态同步 可参考entt,raknet,boost.asio。并且内置一个内网穿透的工具方便联机

直接编译the forge可能会非常麻烦,所以需要借鉴The-Forge-Lite:把the forge源代码简化一点,支持cmake编译

编译the forge lite: 1.git clone --recurse-submodules https://github.com/boberfly/The-Forge-Lite.git cd The-Forge-Lite 把源代码和第三方依赖都拉下来 2 . 按左下角启动按钮,好像只是初始化cmake 3 . 稍微改一改cmakelists,使其适合我现在的操作系统,硬件环境 4 . cmake --build .:就在当前目录,找构建系统并编译 cmake --build build: 去 build/ 这个目录里,调用已经生成好的构建系统,把项目编译出来

因为这是一个七年前的库了,在m4的MacBook上编译不出来,很烦人。但是上述我说的编译流程没错 所以我还是自己仿写一个the forge lite吧,并且编译成静态库

Clone this wiki locally