一、开坑起源引擎源码解析

761人浏览 / 0人评论

    众所周知,半条命2的源码有泄露,偶然从github找到一个可以运行的泄露源码,https://github.com/nillerusr/source-engine,非常值得拿来学习游戏引擎,接下来我就分享我的学习成果。

1.项目结构

各个文件夹大概作用如下:

github/workflows github工作流

.vscode 不清楚

app/legion 不清楚

appframework c++项目框架

bitmap 图片处理

choreoobjects 和npc的表演有关

common 公共类

datacache 缓存

datamodel 数据模型

dedicated 独立服务端功能

dedicated_main 独立服务端主程序

devtools 开发工具

dmserializers 不清楚

dmxloader 不清楚

engine 游戏引擎代码

external 不清楚

fgdlib 不清楚

filesystem 文件系统

game 游戏逻辑代码

gameui 游戏UI

gcsdk 不清楚

hammer 锤子工具

hammer_launcher 锤子启动器

inputsystem 输入系统

ivp @ 4753347 游戏物理库

launcher 启动代码

launcher_main 启动器

lib @ 86a66ee 游戏依赖库

linux linux下文件

linux_sdk linux下开发工具

materialsystem 材质

mathlib 数学库

mdllib 模型解析库

mdlobjects 模型相关

movieobjects 不清楚

networksystem 网络系统

particles 粒子系统

public 公共代码

raytrace 不清楚

replay 不清楚

scenefilecache npc表演的脚本文件解析

scripts 脚本

sdklauncher sdk启动器

serverbrowser 游戏里服务器列表功能

serverbrowser 不清楚

soundemittersystem 声音系统

soundsystem 又一个声音系统

sourcevr vr相关

stub_steam 代理steam.dll

studiorender 模型渲染代码

thirdparty @ c5b901e 第三方库

tier0 游戏基础库

tier1 游戏基础库

tier2 游戏基础库

tier3 游戏基础库

togl opengl

togles opengl

tools 工具

tracker 不清楚

unicode 字符编码

unitlib 不清楚

unittests 单元测试

utils 工具

vgui2 大名鼎鼎的起源UI框架

vguimatsurface 材质系统

video 视频播放

vpc_scripts vpc脚本

vphysics 游戏和物理库的桥梁代码

vpklib 材质文件解析库

vstdlib 公共库

vtf 解包库

其中标红代码是主要要学习研究的代码,game文件夹下有client文件夹是客户端游戏逻辑,server是服务端游戏逻辑,shared是客户端和服务端公共代码,因为有些逻辑在客户端和服务端是一样的,所以只维护一份比较方便。该代码支持的游戏有cstrike,dod,ep1和ep2,hl1,hl1mp,hl2,hl2mp,portal这些游戏。

 

 

 

全部评论