- Notes Tweets Resources Questions Site Log About
- Books Documents To-Do List Sitemap
- Article Categories Article Tags
- Friends Open Source Projects Unreal Engine Knowledge Base
2025
- UE5 Virtual Assets Availability Analysis
- UE Hot Update: Update Capability and Hot Update Security
- UE Plugin and Tool Development: Extensibility Support
- UE PAK Encryption Analysis and Reinforcement Strategy
- UE Plugin and Tool Development: Configuration Capability
- Extreme Optimization of UE Android APK Size
2024
- UE Hot Update: Root Cause Analysis of a Resource Exception
- Deploying a Self-Hosted MEMOS Note System
- Accelerating Real Device Resource Verification with HotPatcher
- Open Source Musings: HotPatcher Development Progress
- Trace Study: A Record of an iPhone Hardware Repair
- Trace Travel: Macao Travel Guide
2023
- Building Property Caches for Assets using Reflection in UE
- Design and Implementation of Self-Correction for Resources in UE
- UE Plugin and Tool Development: j2’s Design Ideas and Implementation
- Building a Knowledge Management System Based on Obsidian
- Trace Travel: Hong Kong Travel Guide
- UE Build Improvement: Optimizing Remote IOS Builds
- Trace Study: Leveraging AI to Assist Life and Development Exploration
- DevOps: CI/CD Practice for Unreal Engine
- Trace Study: Finding Certainty in a Complex World
- Resource Management: UASSET Resource Encryption Solution
- UE Plugin and Tool Development: Commandlet
- Resource Management: Reshaping UE’s Package Splitting Solution
- Memory Expansion: Utilizing New IOS Memory Features in UE
- UE Plugin and Tool Development: Basic Concepts
- HotPatcher’s Modular Refactoring and Development Plan
2022
- 2022 Unreal Open Day
- A Flexible and Non-Intrusive Base Package Splitting Solution
- Trace Study: How to Write a Technical Article
- ASTC Texture Compression Analysis and Efficiency Optimization in UE
- Multi-Stage Automated Resource Inspection Solution in UE
- An Efficient ZSTD Shader Dictionary Training Solution
- Runtime Recomposition Solution for Pak in Unreal Engine
- ZSTD Dictionary-Based Shader Compression Solution
- Efficient Debugging: Launching UE Android App with Command Line Parameters
2021
- UE Resource Management: Engine Package Resource Analysis
- Trace Study: My 2021 Annual Summary
- Trace Study: A Few Things About Analyzing Traffic Data
- UE5: Game Feature Pre-Research
- Open Sourcing an Unreal Engine Launcher UE Launcher
- Automated Resource Inspection Practice Based on ResScannerUE
- Customizing Property Panels in Unreal Engine
- UE Hot Update: Config Reloading and Application
- UE Resource Compliance Check Tool ResScannerUE
- UE Hot Update: Shader Update Strategy
- UE Hot Update: Binary Patch Solution for Resources
- Initial Exploration of UE As Lib Mechanism
- Profiling IOS With Unreal Insight
- UE Multi-User Collaborative Editing Service Deployment Guide
- Zlib/Oodle/ZSTD Compression Algorithm Performance Comparison
- UE5: A First Look at the Next Generation Unreal Engine
- UE Project Optimization: PSO Cache
- UE Development Notes: Android Chapter
- UE Performance Analysis: Memory Optimization
- UE Hot Update: Questions & Answers
- UE Hot Update: Create Shader Patch
- UE Reflection Implementation Analysis: Reflection Code Generation (Part 1)
- UE Hot Update: Asset Management and Auditing Tools
- UE Hot Update: Splitting the Base Package
- UE Hot Update: Automated Workflow Based on HotPatcher
2020
- Some Thoughts and Ideas on Open Source
- UE Reflection Implementation Analysis: C++ Features
- UE Reflection Implementation Analysis: Basic Concepts
- 2020 Unreal Open Day
- UE: Best Practices for UPL and JNI Calls
- UE: Hook UObject
- BuildGraph: Building a Binary Engine Supporting Multi-Platform Packaging
- 2020: The Next Five-Year Plan
- UE Toolkit: Introduction to My Open Source Projects
- How to Build Your Own Knowledge System?
- UE Integration with WWise: Concepts and Code Analysis
- UE Importing Atlas: TexturePacker
- UE Development Notes: Mac/iOS Chapter
- UE Hot Update: Requirements Analysis and Solution Design
- ModularFeature: Integrating ZSTD Compression Algorithm for UE4
- UE Hot Update: Lua Programming Guide Based on UnLua
- Differences and Connections Between UE C++ and Standard C++
- UE Source Code Analysis: Modifying Game’s Default Data Storage Path
- UE Hot Update Packaging Tool HotPatcher
- UE Project Design Specifications and Code Standards
2019
- Becoming an Unreal Marketplace Content Creator
- Export Recast Navigation Data from UE4
- Oculus Quest Development with UE4
- UE Build System: Target and Module
- UE Toolchain Configuration and Development Tips
- Analyzing EULA Content Distribution Restrictions in UBT
- PixelStreaming: Basic Concepts and Initial Exploration
- UE Modules:Find the DLL and load it
- UE Integration with SteamSDK and Related Resources
- UE Code Analysis: GConfig Loading
- UE Development Problem Notes and Resource Collection
- HTC Vive Tracker Developer Guide
- Create A Standalone Application in UE4
- LaTeX Math Symbol Quick Reference
- UE Modules:Load and Startup
- Build flow of the Unreal Engine4 project
- C++ Polymorphism and Virtual Function Tables
- UE Package Error:ObservedKeyNames.Num()>0
- Macro defined by UBT in UE4
2018
- Extracting Tor and Setting up a Tor Bridge
- Usage of Dynamic Link Libraries: Loading and Linking
- Scraping UE4 API and Generating an Indexed Dash Document
- Using frp for Intranet Penetration
- UE and VR Development Technical Notes
- Pass Actor To Next Level Through Seamless Travel
- Build protobuf with MSVC on Windows
2017
- Reverse Proxying Github Pages to Enable HTTPsS
- Why Can’t &&, ||, and , (comma) be Overloaded?
- C++ Template Metaprogramming Resources Collection
- operator new: void* to T* Conversion
- How lambda is implemented in compilers
- Visibility and Accessibility of Access Control Mechanisms
- Breaking Through C++ Class Access Control Mechanisms
- Summary of Technical Book Reviews
- Implicit Declaration of Special Member Functions and Their Standard Behavior
- Function Template Specialization and Overloading
- Pointers to Class Members in C++ Are Not Pointers
- Why is extern “C” Needed?
- C/C++ Compilation and Linking Model Analysis
- Array of length zero
- Analysis of Page Faults in Virtual Memory
- Iterator Invalidation Caused by STL Container erase
- Analyzing C++ Code Semantics Through IR Code
- A Brief Talk on fork/vfork
- Programming Techniques and Concepts in C/C++
- main Prototype Examination and Program Termination Behavior
- Incompatibilities Between C and C++
- Differences Between Declaration and Define in C++
- Object Construction and Destruction Order
- Overload and Override
- Samba Configuration on Linux
- Collection of Tool and Environment Knowledge
- SublimeText Remote Compilation Plugin
- The Logic Behind Array Index Access
2016
- Wrapping Overloaded Member Function Pointers
- The C++ Object and Memory Model
- Some Thoughts on Reading
- Reading TC++PL, C++Primer, and ISO C++
- What is POD in C++?
- Aggressive ADL (Argument-dependent lookup)
- TC++PL4E English-Chinese Errata
- Some Excerpts from C/C++ Standards
- Some Interesting Questions and Analyses from CppQuiz
- Automatically Deploying Github/Coding Pages Blog with Travis CI
- Boost Source Code Analysis Notes
- Configuring SublimeText as a Boost Development Environment
- Deploying shadowsocks Service with Docker
- Version Control in UE using Git
- Git Quick Start Guide
- Adding String Matching to C++ Switch Cases
- Summarizing a Few Coding Habits
- Reading “The Design and Evolution of C++” and Answers to Some Questions
- Capturing 360° Panoramic Video with Unreal Engine 4
- Reading CSAPP: Comparison with “Modern Operating Systems”
- Dynamic Memory and Smart Pointers
- Source Insight Plugins and Configuration
- Writing Linux Programs on VS with VisualGDB
- Deploying shadowsocks Service on a VPS
- Books and Tools for Learning C/C++
- Future Plans
- Talking About Gaokao (College Entrance Exam)
- Pthread Multi-threading Programming
- Memory Leak Caused by Deleting void* Pointers
- Struct Member Memory Alignment Issue
- C Language Does Not Have Native bool Type
- Building Raspberry Pi into a Portable Linux Compilation Environment
- Misconceptions About Compiler-Generated Default Constructors
- Inter-Process Communication
- C++11 Syntactic Sugar
- Memory Leak Caused by STL Releasing Pointer Elements
- Analyzing Code Performance Bottlenecks with Gprof
- Detailed Analysis of Type Conversion in C++
- C++ Object-Oriented Knowledge Organization
- Choosing Member and Non-Member Implementations for Operator Overloading
- Reading “Life,” Discussing the Choices Faced
- Usage of Placeholder Specifier * in C/C++
- Ambiguity Caused by Incorrect Macro Definitions in C++
2015
- SublimeText as a Lightweight IDE for C/C++
- Using Wolfram|Alpha to Compute Integrals
- Managing Static Blogs Online with Koding
- Reading “The Beauty of Mathematics”
- Analyzing the Mathematical Principles in Cryptography
- Using Shadowsocks Service on Linux
- Extracting RSS Feeds for Youku Subscribed Videos
- Customizing Dvorak Keyboard Layout on Windows
- Chrome Plugin Recommendations
- Constructors of Containers in STL
- Floating-Point Rounding When Initializing Containers with Two Iterators
- The Hard Thing About Hard Things · How to Do What’s Harder Than Hard
- Sequential Containers and Associative Containers
- C++ Basic Syntax Organization
- C/C++ Quick Reference Card
- Writing My Own Thoughts, My Software Major