- 博客(98)
- 资源 (3)
- 收藏
- 关注
原创 Elite语言-原创宏翻译语言
Elite语言-原创宏翻译语言最近一个月很忙,不过很高兴的是,经过这个月的努力,终于制作出了Elite语言的预览版。 Elite是我自行设计开发的一款宏翻译语言,主要使用场景是创建个性化领域专用语言(DSL)。github项目仓库:https://github.com/elite-lang/Elite. Elite是一款可自定语法的编程语言,通过自行配置语法,能够方便的定制需要的语言形式.
2015-12-22 07:18:13
2166
原创 500 单位 RTS 为什么还没到 60 FPS:一次 WebGPU 游戏性能诊断
把 RTS 放进浏览器后,最容易得到的结论是“脚本慢”或“draw call 太多”。但当实例化、批量提交已经加入,游戏仍然卡顿时,这些判断就太粗了。在《铁幕前线:新港战区》的 EVEngine WebGPU 实践中,我们把 500 单位压力场景拆到查询、表现、战斗、弹体和逻辑补帧,再做前后对照。这篇记录其中一轮优化:它改善了帧率,也清楚地暴露了尚未解决的预算缺口。
2026-11-02 01:04:29
198
原创 从 EveScript 到 B站 Toy:一个 WebGPU 游戏发布插件怎样设计
让玩家点开链接就能试玩,是浏览器游戏很直接的价值。但对一套原本面向桌面的 C++ 引擎来说,“编译出 WASM”和“能在内容平台交付游戏”,中间还隔着资源归档、平台 SDK、浏览器权限、线上预览和审核。EVEngine-Toy 把这段工作做成了独立插件:游戏继续写 EveScript,运行时继续使用 EVEngine,插件负责接入 B站 Toy SDK,并导出平台可消费的目录。这次分享它的发布链路,以及几个比打包按钮更重要的边界。
2026-11-02 01:02:21
206
原创 优化 C++ 引擎,先别急着加 std::move:从告警到收益的完整链路
这个对象是不是多复制了一次?”是 C++ 引擎开发里常见的问题。一个项目有大量调用点时,靠人工逐页阅读很难覆盖,于是我们给 EVEngine 的调用审查加入了扫描脚本和 clang-tidy 分析。但扫描出一千条建议,不等于发现一千个性能问题。有些复制承担快照语义,有些按值参数最终发生移动,还有些建议只有在理解对象生命周期后才能决定是否采用。这篇讨论整体优化工作怎样组织,并用动画图构建中的一处局部优化说明验证方法。案例来自截至 2026 年 11 月 1 日的本地工作分支;
2026-11-01 16:13:33
186
原创 一场房屋坍塌,为什么值得先算好?物理烘焙的资产化设计
房屋坍塌时,玩家会看到碎块碰撞、翻滚、落地。但如果每次播放这段演出都启动完整物理世界,成本和不确定性也会跟着进入运行时。对于确定的环境演出,可以在制作阶段模拟一次,把碎片的运动存成动画,运行时负责回放。前一篇介绍了坍塌演示,这次进一步讨论:怎样把一次模拟,变成脱离原始物理世界仍能使用的资产?本文依据 EVEngine 提交的实现与文档分析,未重新做性能基准。它适合预定演出,不意味着任意交互式破坏都能用烘焙替代。
2026-11-01 16:10:37
299
原创 把 Vulkan 引擎搬进浏览器:WebGPU 移植真正难在哪里?
从 API 契约、着色器与资源布局到浏览器验收,讨论 Vulkan 引擎移植 WebGPU 的工程边界。
2026-11-01 16:08:44
142
原创 开发日志:EVEngine v0.1.0(2026-08-04 ~ 2026-08-20)
v0.1.0 发布冲刺总结:正式版发布与新分支模型、渲染性能优化、模块架构收敛、AI 工具链、测试与 CI 加固。
2026-10-12 19:03:45
49
原创 我们是如何保证代码质量的
从格式门禁、模块分层、断言体系、1500+ 用例的跨平台测试,到发布前的严测与评审流程,聊聊 EVEngine 的代码质量保障机制。
2026-10-12 18:58:40
70
原创 让物理世界真正组合起来:EVEngine 的统一运行时物理架构
EVEngine v0.5.0 正在把刚体、布料、绳索、软体、车辆、生成式碰撞体和 PixelWorld 收敛到可组合、可恢复、可诊断的运行时边界。
2026-10-12 18:57:31
150
原创 从样条到动态网格:EVEngine 的新一代 Mesh Authoring 工作流
EVEngine v0.5.0 将样条、Modifier Graph、布尔运算、运行时雕刻和 UV 绘制串成一条可组合、可撤销、可脚本化的动态网格生产线。
2026-10-12 18:56:07
171
原创 EVEngine v0.5.0 正式发布:从游戏运行时走向可组合创作平台
EVEngine v0.5.0 正式发布:网格创作、运行时物理、资产导入、角色动画、AI 推理与项目编辑工具全面推进,并回顾 v0.1.0 至今最重要的版本演进。
2026-10-12 18:54:12
241
原创 喜欢 Love2D 的直接感,又想多走一步?看看 EVEngine
喜欢 Love2D 的脚本创作方式,也想尝试运行时编辑、项目专属工具与 AI 验证?本文介绍 EVEngine 的三条试用路径与工作流取舍。
2026-10-12 17:35:25
92
原创 三个 AI 都说做完了,游戏却跑不对:EVEngine 怎么接住这一步
多个 AI Agent 都交付了代码,游戏仍可能在集成后出错。EVEngine 通过运行状态观察、编辑事务与验收会话,为 AI 的修改提供可检查的结果。
2026-10-12 17:32:36
119
原创 调一个手感,为什么要把游戏重开一遍?
调手感时,时间常花在重新回到测试现场。EVEngine 用脚本热重载、调试与状态快照,让修改、观察和重试更连续。本文从 DevLab 的具体体验谈起。
2026-10-12 17:22:30
295
原创 新开发的ZeroErr 零误框架,欢迎朋友们试用,多提宝贵意见
ZeroErr 零误框架 (https://github.com/sunxfancy/zeroerr) 是一款C++11编写的单元测试框架,同时也是断言库,日志库为一体的测试、调试、打印框架。我设计这个库的最初目的是想将断言、日志、单元测试几个功能整合起来,并且支持任意类型的log,调试打印等功能。希望朋友们看看是否感兴趣,有哪些地方可以改进,欢迎多提宝贵意见。
2023-05-11 08:40:21
427
原创 SEO优化实录
最近朋友的网站流量一直很小,让我给看看SEO优化的问题,那么本期就来详细谈谈SEO优化的一些问题吧。这篇博客也会在不断更新最新的改动和改动后的效果。方便大家了解SEO的基本方法和有效策略。本篇文章由 西风逍遥游 原创,转载请附带原始页面链接:http://blog.youkuaiyun.com/xfxyy_sxfancySEO优化入门分析问题图片文字问题描述和关键字不对应内容缺乏出站链接和友情链接S
2017-07-20 16:09:52
16618
1
原创 使用Sphinx翻译LLVM的中文文档
Sphinx是一款非常方便的文档生成工具,以前就早有耳闻,最近计划将LLVM的文档翻译一些,在打开LLVM的文档源文件后发现,整个文档部分整理的非常整洁。下载的最新版LLVM-3.8版的源码,已经完全使用Sphinx生成文档,于是我也学习了一些Sphinx的相关用法。
2016-04-17 23:05:41
3394
1
原创 C++ template 分离式编译
C++的模板有一个较大的缺陷,模板的实现是不能放到独立的cpp文件中的,因为模板函数的特点,必须要类型确定时才能泛化。
2016-02-29 11:13:35
2589
1
原创 搞笑的Linux shell
ls指令几乎是linux下使用最频繁的几个指令之一,那么请问,你有打错过么?下面这款工具能够让你在将ls错打成sl时进行一下“修正”:这款小工具很好安装,在ubuntu下用:apt-get install sl 即可。不过建议别装在服务器上,否则当你着急修复bug但打错命令时,看着shell开着呼啸而过的小火车时。心中犹如一万匹草泥马呼啸而过 = =!
2016-01-20 11:49:43
4665
原创 编译器架构的王者LLVM——(12)使用JIT引擎
LLVM从设计之初就考虑了解释执行的功能,这非常其作为一款跨平台的中间字节码来使用,可以方便地跨平台运行。又具有编译型语言的优势,非常的方便。我们使用的LLVM3.6版,移除了原版JIT,改换成了新版的MCJIT,性格有了不小的提升,本文就MCJIT的使用和注意事项,进行简要的介绍。
2016-01-08 20:17:04
14968
原创 编译器架构的王者LLVM——(11)深入理解GetElementPtr
LLVM平台,短短几年间,改变了众多编程语言的走向,也催生了一大批具有特色的编程语言的出现,不愧为编译器架构的王者,也荣获2012年ACM软件系统奖 —— 题记 LLVM平台,和C语言极为类似,强类型,需要复杂的指针操作,基于系统的符号调用等。而LLVM的指针操作指令,GetElementPtr,几乎是所有指针计算的关键,而理解它个运作原理,正确的使用,非常的重要。
2015-12-27 20:15:04
19045
3
原创 Travis-ci集成构建系统
travis-ci这款集成构建平台,他和github关系紧密,更关键的是,对于开源项目,永久免费使用,这让我在开发编译器的过程中,有了一款能够方便部署和测试的平台,获益匪浅.对于在github上托管的项目, 他可以根据你的配置, 在ubuntu虚拟机上为你构建项目, 运行测试, 打包发布等工作, 只需你每次提交代码或发pr, 对应的版本都能进过校验工作流程
2015-12-27 13:58:12
2692
原创 跨平台CMake的编写
最近开发跨平台C++编译器,让我深切的体会到了CMake的重要性,一开始,项目只有简短的配置,所有的依赖项都需要手动下载并编译。但不同人下载和编译的方式许多,版本也不同,编译器也不同,Debug版本也不同,稍有不慎就无法链接到一起。C++链接库的问题由于C++库没有通用的ABI,底层链接接口都是各编译器制定的,所以不同编译器编译的库不能混合使用,为了保险起见,我们将全部依赖项都使用编译安装的方式
2015-12-22 08:04:13
5986
原创 编译器架构的王者LLVM——(10)变量的存储与读取
变量是一款编程语言中的核心,说编译语言是一种符号处理工具,其实是有些道理的。栈式符号表可以方便的记录编译过程中的变量和语法符号,我们上节已经了解了其中的实现方法。那么,还有没有其他的办法能够简单的实现变量的存取呢?
2015-11-20 19:59:45
6666
原创 编译器架构的王者LLVM——(9)栈式符号表的构建
栈式符号表对于一款编译器,无疑是核心的组件。无论你在做什么符号扫描,那么都离不开符号表,如何得知一个符号是否定义,以及它的类型,那么唯有查看符号表中的记录。栈式符号表并不复杂,但思想精妙,本文,将介绍一款栈式符号表的原理及简单构建。
2015-11-14 11:36:46
6082
1
原创 编译器架构的王者LLVM——(8)函数的调用及基本运算符
之前我们提到了函数的定义,那么,定义好的函数如何调用才行呢?本文重点介绍LLVM中函数调用的用法以及基本运算符的相关操作。
2015-11-14 10:32:10
5262
原创 OOLua的接口绑定
OOLua是一款好用的C++到lua的绑定,能够帮助我们轻松制作lua的C语言接口,摆脱大量使用汇编风格程序的尴尬,更加安全和稳定。 今天,我们要讨论一下,其中关于接口绑定的具体操作和技巧。
2015-11-11 22:06:28
3820
6
原创 编译器架构的王者LLVM——(7)函数的翻译方法
前面介绍了许多编译器架构上面的特点,如何组织语法树、如果多遍扫描语法树。今天开始,我们就要设计本编译器中最核心的部分了,如何设计一个编译时宏,再利用LLVM按顺序生成模块。
2015-11-11 09:29:52
4056
原创 编译器架构的王者LLVM——(6)多遍翻译的宏翻译系统
上次我们讨论了构建语法树的基本模型,我们能够利用Lex+Bison+Node,几个组件将我们的目标语法翻译成AST语法树了,在第四章,我们也给出了RedApple这款实现型小编译器的语法结构,那么我们的准备工作基于基本完成。我们在搞定了AST语法树的构建后,需要有一种机制,能够遍历整棵语法树,然后将其翻译为LLVM的一个模块,然后再输出成.bc字节码。
2015-11-10 13:14:38
18516
3
原创 编译器架构的王者LLVM——(5)语法树模型的基本结构
上次我们看了Lex和Yacc的翻译文件,可能一些朋友并不了解其中的执行部分,而且,对这个抽象语法树是怎么构建起来的还不清楚。今天我们就再详细介绍一下如果方便的构建一棵抽象语法树(AST)
2015-11-10 12:01:58
10309
原创 编译器架构的王者LLVM——(4)简单的词法和语法分析
Lex和Yacc真是太好用了,非常方便我们构建一门语言的分析程序。今天我们就来了解一门语言的Lex和Bsion定义文件,如果制作一款合理的词法、语法分析器
2015-11-07 09:08:08
7001
原创 编译器架构的王者LLVM——(2)开发LLVM项目
LLVM作为一款非常方便的编译器开发平台,我们能用LLVM做一款自己的编程语言么?答案是,有点难度,但不是不可能,今天,就从配置项目工程开始,了解LLVM项目开发的一点一滴。
2015-11-06 19:43:31
7390
原创 编译器架构的王者LLVM——(1)现代编译器架构
LLVM平台,短短几年间,改变了众多编程语言的走向,也催生了一大批具有特色的编程语言的出现,不愧为编译器架构的王者,也荣获2012年ACM软件系统奖。
2015-11-06 18:45:29
10240
原创 Lua的面向对象封装
lua这款简洁优雅的语言,非常受C/C++程序员喜欢。然而lua由于太过小巧,其接口过于类似汇编,使用困难,容易出错,也让人无可奈何。随着C++11的推进,lua逐渐出现了诸多非常有特色的面向对象封装方式,经过封装后,接口非常的简单优雅,而且操作简便,深受C++程序员的欢迎。
2015-11-05 20:02:20
3091
原创 C语言自动识别文本编码
用C语言在编写一些文本处理程序时,文本编码就成为了很重要的部分, 但C语言本身,处理文本又十分困难,虽然有wchar_t这类标准库支持, 然后事实是各类编译器对其支持也不相同,而且缺乏一致的标准。本次就来探讨可移植的转码库libiconv和自动文本格式识别库Mozilla Universal Character Set。
2015-11-05 19:21:12
7765
1
原创 结构化图形绘制利器Graphviz
以前我在写博客的时候,最发愁的就是画图,尤其是一些数据结构的展示,或一些算法的图示。一般我是用手绘板,软件就用MyPaint,做出图后,往往调整和修改十分困难。但自从我得知的Graphviz这款工具后,一起变得如此简单。
2015-11-04 18:39:40
5595
原创 π的计算
说起圆周率的计算,估计很多人首先想到的是祖冲之的割圆术。确实,在当时的条件下,割圆术能将π计算到一个较高的精度,实在不易。 不过我们现在,希望使用计算机快速计算高精度的π,这时我们该如何去做呢?算法库计算的思路像计算机中的数学库计算,一般都是采用泰勒展开进行的,像sin,cos这类的函数,都可以用泰勒展开式很方便的逼近。计算机计算的方法,就是用简单的多项式去不断逼近一个特殊的函数。
2015-09-11 20:47:31
24512
3
原创 西风的数据结构教程(4)——hash表
今天是教师节,感恩老师们的辛勤工作,让我们不断成长。今天制作的这份教程十分重要,是我们高中时必会,而且是计算机体系中占有关键地位的一种数据结构——hash表。 本文详细讲述了hash表的基本原理,两种字符串hash算法,阐述了开地址法和链地址法的原理和对应的两种优化方案,最后介绍了动态hash算法的思想。
2015-09-10 20:20:12
2216
原创 一入wine深似海,从此奋战到天明
wine神马的最烦人了,喝多了伤身,请适量。 很多朋友都会发现,Linux下的应用实在是太少了,Linux平台哪里都好,就是没人用。。。= =!为了在Linux下运行更多的应用,程序猿们开发出了Wine神器。要知道,这个东西开发的艰辛,Linux本身是开源的,但Windows可不是啊,能用开源的软件搭建出一套闭源软件的兼容层,可不是一件容易的事。
2015-09-10 13:09:20
10474
1
OpenGL小游戏
2014-02-28
2D平面游戏Demo
2014-02-28
调查问卷统计工具
2013-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅