Build Your Own Engine IV - Asset Saving
OpeningWhen an engine only has a few test objects, asset saving looks simple: write the scene to a file, load images by path, store script filenames, and keep texture paths in materials. As long as files never move, everything works. Editor projects do not stay that simple. Assets get renamed, moved, copied, and deleted. Prefabs are instantiated and modified. Scenes reference materials, materials reference shaders and textures, and script components reference C# files. If everything is still ...
Build Your Own Engine III - Rendering Improvements
OpeningThe first version of Ditto had a simple rendering goal: draw the scene and put the editor UI on top. OpenGL was the easiest choice at that stage. The API was accessible, the debugging cost was low, and it was enough for an early editor prototype. As the engine grew, a single OpenGL renderer became a liability. Materials, render targets, Game View, Scene View, post effects, and different graphics APIs all become harder to manage if every feature is written directly against OpenGL. Ditto...
Build Your Own Engine II - Scripting Support
OpeningThe first post built Ditto’s foundation: GameObject organizes objects, Component carries behavior, and the editor edits and previews the scene. But at that stage the engine was still basically a C++ program. Every gameplay rule had to be hardcoded into native code, and every change required a native rebuild. The next necessary system is scripting. For a small engine, scripting is not just “running user code.” It defines the boundary between the engine and the game project: what stays i...
Build Your Own Engine I - Initial Architecture
Archive note: this post keeps the earliest Ditto foundation: GameObject/Component, the first editor shell, scene organization, early rendering, and physics simulation. Later versions turned rendering, scripting, and asset persistence into more complete systems, so the following posts are reorganized around scripting support, rendering improvements, and asset saving instead of strictly following the old timeline. Written beforeMaybe it was to test the limits of my current abilities, pro...
Godot vs Jolt Parallel Comparison
Written before The previous article Godot Physics Source Code Analysis analyzed the built-in 3D physics pipeline in Godot. Extending from that, the next topic would be the Jolt physics engine integrated in version 4.4. Initially, I considered writing a separate article introducing it, but upon review, I felt that Godot’s integration of Jolt is relatively simplistic. In terms of functionality, it has been aligned and limited to match Godot’s existing physics capabilities. In terms o...
Analysis of Godot Physics Source Code
Written before Reading engine source code is fundamental for engine development roles, and those who know me are aware that I focus on physics simulation. During an internship at a project team, I had modified Unity’s source code, but back at school, I can only access open-source engines. UE’s Chaos is somewhat heavy: during initialization, the Scene sequentially creates Scene, Solver, Evolution, and Objects sequentially register events, create states, and initialize bodies; during...
Simply Exploration of Unity ML-Agents Reinforcement Learning
Written before ML-Agents is Unity’s official reinforcement learning framework, using gRPC for communication between Python and Unity. It allows developers to write only C# in Unity, configure training parameters via YAML files, and train desired models. During my learning process, I found that most available materials were for outdated, incompatible versions, so I felt it necessary to document the relevant steps. PreparationResources Referencing the Official Documentatio...
Simply Exploration of LLM PEFT Fine-tuning and Ollama Operation
Written beforeOver the past few months, I have been mostly occupied with autumn recruitment and my master’s thesis. Thanks to some guidance from the AIGC engineer who used to sit next to me during my internship, I gained a deeper understanding of AI systems. Coincidentally, we also got laid off one after another, which, in hindsight, feels oddly amusing. During the recruitment season, I applied across game programming, design, and art roles. After being repeatedly “kept in the pipeli...
Simply Exploration of Unity YooAsset + HybridCLR Hot Update
Written before My strange tech stack beckons for a strange summer internship. To summarize, I’m currently leading a small game project as a technical artist: writing the design plan to create the project, designing the functional architecture, and managing the art. While waiting for art assets, I got really bored, so I casually drew some UI for the project then also trying to bulid a hotfix system for the project, which also helps establish standards for subsequent code and art ass...
Rigidbody Simulation and Fracture
Written beforeI finished GAMES103 a few years ago and went through the commonly used rigid bodies, cloths, soft bodies, and fluids in graphics. I was able to get started with physical simulation in graphics, but what about after that? I have to explore the road ahead by myself. I personally prefer the game industry that pursues real-time computing and visual reality (after all, I feel that the current academic community is obsessed with various optimization methods or splicing several methods...







