【V0.1B5】从零开始的2D游戏引擎开发之路

更新类型: 代码清理与构建系统优化


概述

Build-5 是继 Build-4 之后的一次精细化维护更新,主要聚焦于代码减负构建系统优化。本次更新移除了尚未使用的功能代码,简化了头文件包含结构,并解决了调试符号文件问题,使代码更加精简、编译更高效。


详细变更

1. Utils 工具模块精简

移除未使用的纹理加载功能:

移除项 移除原因
loadTexture() 函数 当前渲染仅支持纯色网格,纹理功能尚未集成
loadCubeMap() 函数 立方体贴图在当前2D引擎中无使用场景

影响分析:

  • 代码减负: 减少约35行冗余代码
  • 编译加速 : 减少 SOIL2 库的链接依赖
  • 清晰度提升: 类声明更专注于当前实际使用的功能

2. 头文件包含保护重构

移除冗余的外部包含保护

四个核心类文件移除了外层 #ifndef/#define 保护:

文件 变化说明
Tanxl_DataBase.h 简化保护层次
Tanxl_GameState.h 简化保护层次
Tanxl_GameEvent.h 简化保护层次
Tanxl_GameState.h 移除结束标记
增强的包含保护

Tanxl_OpenGL_Draw.h 添加更严格的包含保护:

Tanxl_OpenGL_Draw.hL5-L19

复制代码
#ifndef TANXL_DATABASE_H
#define TANXL_DATABASE_H
#include "Tanxl_DataBase.h"
#endif

#ifndef TANXL_GAMESTATE_H
#define TANXL_GAMESTATE_H
#include "Tanxl_GameState.h"
#endif

设计理念转变:

  • 从"每个文件独立保护"转向"依赖文件自保护"
  • 减少编译预处理开销
  • 遵循现代C++项目的包含最佳实践

3. 构建系统修复

修复 SOIL2 库 PDB 文件缺失问题:

问题描述:

  • 在 Debug 构建配置下,SOIL2 库缺少调试符号文件(.pdb)
  • 导致调试时无法跟踪 SOIL2 库内部调用栈
  • 影响开发者的调试体验

解决方案:

  • 调整项目配置,确保正确链接 SOIL2 的调试版本
  • 验证第三方库的符号文件完整性
  • 优化构建过程中的依赖解析

技术影响:

  • 调试时能正确显示 SOIL2 库调用栈
  • 内存调试工具能跟踪纹理加载过程
  • 异常发生时能精确定位到库内部错误

4. 代码质量提升

统一代码风格
  • 保持所有输出使用 std:: 前缀(Build-4 引入的标准)
  • 延续头文件包含保护的一致性改进
减少编译警告
  • 移除未使用的函数声明,消除编译器警告
  • 简化包含结构,减少重复包含警告

版本对比总结

复制代码
Build-4 (2022-04-29) → Build-5 (2022-05-01)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🗑️  代码清理:        移除35行未使用代码
🛡️  包含优化:        重构4个核心头文件保护
🔧  构建修复:        解决SOIL2 PDB问题  
📦  依赖精简:        减少不必要的库链接
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

架构演进分析

设计哲学变化

  1. 实用主义导向: 移除"未来可能用到"的功能,专注当前需求
  2. 简化优先: 减少抽象层次,使代码更直观易懂
  3. 构建友好: 优化编译配置,提升开发效率

技术债务管理

  • 清理冗余: 移除纹理加载等超前功能
  • 标准化: 统一头文件保护模式
  • 可维护性: 简化复杂嵌套的包含关系

文件变更清单

文件 变更类型 变更说明
Utils.h 🔴 功能移除 移除 loadTextureloadCubeMap 声明
Utils.cpp 🔴 功能移除 移除 loadTextureloadCubeMap 实现
Tanxl_DataBase.h 🟡 结构优化 移除外层 #ifndef TANXL_DATA_BASE 保护
Tanxl_GameState.h 🟡 结构优化 移除外层 #ifndef GAME_STATE_BASE 保护
Tanxl_GameEvent.h 🟡 结构优化 移除外层 #ifndef GAME_EVENT_BASE 保护
Tanxl_OpenGL_Draw.h 🟢 增强 添加对数据库和状态类的包含保护
TANXL_ENGINE.vcxproj 🔧 配置修复 修复 SOIL2 库 PDB 文件配置

Wild_Chicken_Programing /// TANXL 2026/04/01

相关推荐
用户446139430272 分钟前
从单体到微服务:我们项目的拆分思路和踩坑记录
java
X-⃢_⃢-X11 分钟前
十、Redis之布隆过滤器
数据库·redis·缓存
Nturmoils14 分钟前
订单号查出了三笔,我以为是数据脏了,其实是自己写错了
数据库
ZKNOW甄知科技18 分钟前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
TDengine (老段)32 分钟前
TDengine 免费版说明
java·大数据·数据库·物联网·时序数据库·tdengine
汉知宝科技33 分钟前
历史案件数据迁移:知识产权管理系统落地的第一道门槛
大数据·数据库
码上有光36 分钟前
异常和智能指针
java·大数据·c++·servlet·异常·智能指针
RisunJan42 分钟前
Linux命令-semanage(SELinux 策略管理)
linux·运维·服务器
这就是佬们吗43 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
吴声子夜歌44 分钟前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb