Progress, Not Perfection: How I Work on My Game Engine Daily
Harold Serrano
JULY 28, 2025
Want to change lighting?
This site uses cookies to improve your experience. To help us insure we adhere to various privacy regulations, please select your country/region of residence. If you do not select a country, we will assume you are from the United States. Select your Cookie Settings or view our Privacy Policy and Terms of Use.
Cookies and similar technologies are used on this website for proper function of the website, for tracking performance analytics and for marketing purposes. We and some of our third-party providers may use cookie data for various purposes. Please review the cookie settings below and choose your preference.
Used for the proper function of the website
Used for monitoring website traffic and interactions
Cookies and similar technologies are used on this website for proper function of the website, for tracking performance analytics and for marketing purposes. We and some of our third-party providers may use cookie data for various purposes. Please review the cookie settings below and choose your preference.
Harold Serrano
JULY 28, 2025
Want to change lighting?
Mircosoft Game Dev
JANUARY 16, 2025
Breaking changes Animation Audio C# Core Editor GDScript Import Input Physics Platforms Rendering and shaders XR New in Beta 1! Add 2D shader instance uniforms Previously, Godot only supported shader instance uniforms in Spatial shaders. Overall, texture importing should feel faster and more stable than ever before.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Mircosoft Game Dev
MARCH 26, 2025
GUI: Use Viewport s default texture filter/repeat in GUI tooltips ( GH-103636 ). Rendering: Use separate WorkThreadPool for shader compiler ( GH-103506 ). Rendering: Fix Metal handling of cube textures; assert equal dimensions ( GH-104341 ). Shaders: Fix 2D instance params crashing using outside of main() ( GH-103348 ).
Mircosoft Game Dev
MARCH 14, 2025
GUI: Use Viewport s default texture filter/repeat in GUI tooltips ( GH-103636 ). Rendering: Use separate WorkThreadPool for shader compiler ( GH-103506 ). Shaders: Fix 2D instance params crashing using outside of main() ( GH-103348 ). Shaders: Fix 2D instance params crashing using outside of main() ( GH-103348 ).
Mircosoft Game Dev
APRIL 8, 2025
Reorganized shader editor UI The editor experience for shaders and visual shaders got some TLC in GH-100287. Import: Load decompressable texture format if no supported one is found ( GH-104590 ). Rendering: Avoid using a global variable to store instance index in canvas items shader in RD renderer ( GH-105037 ).
iXie gaming
MARCH 28, 2025
Why it matters: Efficient UV mapping and normal map baking allow high-detail textures to be applied to low-poly models, preserving visual fidelity without unnecessary computational overhead. Adding Realism & Depth A 3D model without textures is lifeless. Why it matters: Improperly mapped textures break immersion.
GameDev.Net
JUNE 17, 2025
For example, in my little game engine project, I have various asset types: Mesh, Texture, Shader, etc., and I think naturally I just thought that a Mesh and Texture are a type of Asset, the same with the asset loaders, and perha as well as asset loaders: MeshLoader, TextureLoader, etc.,
Mircosoft Game Dev
OCTOBER 5, 2016
About shaders. For most game developers, shaders are this scary monster that presents itself with such a complexity that it seems out of reach. In reality, shaders are quite simple by default and just get more complex the more you add to them. In this case, the UV coordinate (for reading the texture).
iXie gaming
JUNE 7, 2023
Unity is synonymous with game developers around the world. Ever since its release in 2005, the game engine has seen several iterations and has evolved significantly over the years. The game engine has amassed popularity thanks to its versatility and ease of use compared to other engines in the market.
Mircosoft Game Dev
JANUARY 15, 2023
The most common types of streaming are: Texture streaming : All textures are loaded in a tiny size by default. As textures get closer to the camera, higher resolution versions (or mip-maps) are streamed from disk. Textures which haven’t been used for some frames are freed instead. The answer is “it depends”.
Mircosoft Game Dev
JANUARY 27, 2023
Those typically shouldn’t add instability to the engine, but may require doing some changes in your scripts, scenes, and shaders if you were using the affected APIs. Rendering: Properly append global uniform buffer name in gl_compatibility shaders ( GH-72138 ). XR: Correctly apply world_scale in WebXR (Godot 4) ( GH-71948 ).
Mircosoft Game Dev
DECEMBER 9, 2022
Import: Fix swapped color channels in ETC1/ETC2 textures, etcpak expects BGRA data ( GH-69448 ). Rendering: Implement CAMERA_VISIBLE_LAYERS as built-in shader variable ( GH-67387 ). Rendering: OpenGL: Use internal texture name when setting texture uniform location ( GH-69633 ). GH-68870 ).
Nvidia
OCTOBER 12, 2022
NVIDIA recently introduced a new feature available in the next generation of GPUs: Shader execution reordering (SER). NVIDIA recently introduced a new feature available in the next generation of GPUs: Shader execution reordering (SER). For more information, see the Shader Execution Reordering whitepaper.
iXie gaming
SEPTEMBER 17, 2024
Techniques such as using lower-resolution textures, controlling particle spawn rates, and optimizing the lifespan of particles can significantly reduce the load on the GPU. Utilizing Shaders Wisely Shaders are powerful tools that can enhance the visual quality of a game, but they can also be demanding on mobile devices.
Mircosoft Game Dev
JANUARY 25, 2023
Rendering: Decrement texture_binding count when using screen textures ( GH-71764 ). Shaders: Fix code generation for ProximityRange node in visual shader ( GH-71760 ). Note that you need to force recompiling your affected visual shaders by doing any change in their graph. This fixes a regression in beta 14.
Nvidia
MAY 21, 2021
NetEase Thunder Fire Games Uses Mesh Shading To Create Beautiful Game Environments for Justice In December, we interviewed Haiyong Qian, NetEase Game Engine. Recently, NetEase introduced Mesh Shader support to Justice. Not only are the updated environments breathtaking, the game supports 1.8
Mircosoft Game Dev
JANUARY 20, 2023
For shaders, we removed the now-redundant SCREEN_TEXTURE , DEPTH_TEXTURE , and NORMAL_ROUGHNESS_TEXTURE ( GH-70967 ). Note that there’s a helpful error in the shader editor telling you how to port code, but there’s a typo: filter_linear_mipmaps should be filter_linear_mipmap (no ‘s’).
Mircosoft Game Dev
SEPTEMBER 23, 2017
Godot uses a considerably different approach to rendering (and rendering abstraction) than other, popular, game engines. For example: On GLES3+ we can use UBOs to optimize shader parameters. Shader abstraction. Most game engines nowadays start with HLSL or CG as a base and offer it to the user directly.
Mircosoft Game Dev
JANUARY 27, 2020
It still lacks a few minor details (like colorspace adjustment via 3D textures) but it's mostly there. Due to this, it is now possible to associate a roughness texture with a normal texture, which will adjust roughness based on normal mipmap variance. While it more or less retains the functionality from Godot 3.x,
Mircosoft Game Dev
NOVEMBER 27, 2020
Additionally, all 2D shadows and light textures use a single atlas, resulting in improved performance. the new CanvasTexture texture type has been introduced. A very requested feature for the 2D engine is the possibility to have 2D directional lights and shadows. Improved 2D materials. For Godot 4.0, This has been added for 4.0
iXie gaming
AUGUST 17, 2023
Video games have become a prominent form of entertainment, deeply ingrained in pop culture, and have shed the previous stigma of being a time-wasting activity. Nowadays, gaming surpasses mainstream movies in terms of audience engagement, and popular game titles consistently generate substantial revenue.
Mircosoft Game Dev
NOVEMBER 16, 2022
Rendering: Add texture reading code to OpenGL3 renderer for web and mobile ( GH-68138 ). Rendering: Enable mipmaps in cubemap roughness shader ( GH-68511 ). Rendering: Properly set TIME shader uniform when rendering shadows ( GH-68574 ). Rendering: Scale light shadow bias by soft_shadow_scale to reduce shadow acne ( GH-68339 ).
Mircosoft Game Dev
JANUARY 13, 2023
Rendering: Fix multiple issues that make the normal roughness texture unusable ( GH-71130 ). Visual Shader: Add few improvements for VisualShaderNodeParticleRandomness ( GH-71123 ). Rendering: OpenGL: Add support for FORMAT_{ETC2,DXT5}_RA_AS_RG ( GH-71248 ). However, we still try to provide a migration path for your projects.
Nvidia
MAY 17, 2023
The main design philosophy of D3D12 and Vulkan is to enable game engines to distribute graphics workloads across multiple CPU cores. Resource allocation and destruction Creating and destroying buffers, textures, and shaders is fundamental to efficient computer graphics.
Mircosoft Game Dev
OCTOBER 17, 2022
The character asset and animation are from GDQuest's "godot-3d-mannequin" project and the ground texture is from Kenney's "Prototype Textures" bundle. The solution should be easy, let’s just use doubles in all of our shaders! Doubles in Shaders. How about we just don’t support this on Apple devices?
Mircosoft Game Dev
MAY 8, 2020
Let's hope this implementation will also be of use to others making their own technology or engines, so they can use it as reference or just copy it. The new lightmapper is GPU based written mostly on Compute shaders (meaning it does most of the heavy lifting using the GPU, via Vulkan). Features of the new Godot 4.0 lightmapper.
Mircosoft Game Dev
APRIL 30, 2020
It supported roughness, but it did so in a way where the texture reads appeared rough, but not the reflected image (the edges of the reflected objects remained intact). A very common complaint when using shadowmaps in Godot is that tweaking shadow bias is extremely difficult compared to other game engines. x was rather limited.
Cocos
DECEMBER 25, 2023
You just need the following resources and code: A post-processing shader A material with the shader bound to it A post-processing extension TypeScript file for passing parameters to the material Let’s use an example of creating a screen grayscale effect: 1. I’ve traversed various game engines, and currently, my primary choice is Cocos.
Cocos
FEBRUARY 5, 2024
Texture Channel Separation Rendering based on real data inevitably involves the use of a large number of textures, leading to constraints on both graphics memory and performance. This becomes particularly evident in crashes on platforms such as mini-games and low-end devices. Closing Thoughts Why do I use Cocos Creator?
Mircosoft Game Dev
OCTOBER 1, 2021
Editor: Fix preview grid and preserve source texture margins in SpriteFrames editor ( GH-52910 ). GLES3: Properly clear cubemap filter state when texture array environment disabled ( GH-51938 ). Rendering: Prevent shaders from generating code before the constructor finishes ( GH-52475 ). API documentation updates.
iXie gaming
JUNE 28, 2024
Particle Systems Within Game Engines Unity’s Shuriken and Unreal Engine’s Cascade/Niagara particle systems are powerful tools for creating 2D effects in your games. These tools work smoothly with your game engine, making it easy to use and improve your effects.
Mircosoft Game Dev
JANUARY 13, 2023
Rendering: Fix multiple issues that make the normal roughness texture unusable ( GH-71130 ). Visual Shader: Add few improvements for VisualShaderNodeParticleRandomness ( GH-71123 ). Rendering: OpenGL: Add support for FORMAT_{ETC2,DXT5}_RA_AS_RG ( GH-71248 ). However, we still try to provide a migration path for your projects.
Cocos
MAY 14, 2023
Next, let’s take a look at the common 3D rendering processes in a 3D game engine: Shadow Map Rendering → 3D Objects Rendering → Screen Space Post-Processing → 2D Elements & UI Rendering. In Vertex Shader, process vertex transformations, UVs, etc. In Fragment Shader, perform lighting calculations with the 7 lights.
Mircosoft Game Dev
SEPTEMBER 29, 2021
Editor: Fix preview grid and preserve source texture margins in SpriteFrames editor ( GH-52910 ). GLES3: Properly clear cubemap filter state when texture array environment disabled ( GH-51938 ). Rendering: Prevent shaders from generating code before the constructor finishes ( GH-52475 ). API documentation updates.
Mircosoft Game Dev
MARCH 8, 2022
Note: You might need to delete your.godot/imported folder to force reimporting all your textures with the new class name. Rendering: Fix shader compilation error with anisotropy ( GH-58419 ). Visual Shader: Add few more input/output built-ins ( GH-58719 ). Visual Shader: Add varying support ( GH-58750 ).
Mircosoft Game Dev
FEBRUARY 3, 2022
GUI: Fix TextureButton focus texture logic ( GH-56472 ). Import: Fix glTF scene export crash on null normal texture ( GH-56380 ). Rendering: GLES3: Fix shader compile error with Oren Nayar + Vertex Lighting ( GH-56802 ). XR: Fix external textures being freed by Godot ( GH-56148 ). See the full changelog since 3.4.2-stable
Mircosoft Game Dev
SEPTEMBER 17, 2020
Shaders: Fix specular render_mode for Visual Shaders ( GH-41536 ). And many more bug fixes and usability enhancements all around the engine! branch, there's a lot of surface covered in a game engine and some bug fixes might have an impact on your projects if you somehow used a bug as a feature.
Mircosoft Game Dev
DECEMBER 9, 2022
Import: Fix swapped color channels in ETC1/ETC2 textures, etcpak expects BGRA data ( GH-69448 ). Rendering: Implement CAMERA_VISIBLE_LAYERS as built-in shader variable ( GH-67387 ). Rendering: OpenGL: Use internal texture name when setting texture uniform location ( GH-69633 ). GH-68870 ).
Mircosoft Game Dev
OCTOBER 17, 2022
The character asset and animation are from GDQuest’s “godot-3d-mannequin” project and the ground texture is from Kenney’s “Prototype Textures” bundle. The solution should be easy, let’s just use doubles in all of our shaders! Doubles in Shaders. The Godots clump together and the character teleports from point to point.
Mircosoft Game Dev
MAY 18, 2021
Batching: Fix light pass modulate , a potential crash, polygon rotation from vertex shader, and 2D skinning with unrigged polygons ( GH-48151 , GH-48125 , GH-48457 , GH-48647 )). Rendering: Fix usage of proxy textures on GLES2 PanoramaSky ( GH-48541 ). Here are some of the main changes since 3.3-stable: please file an issue on GitHub.
Mircosoft Game Dev
SEPTEMBER 22, 2021
Rendering: Fixes depth sorting of meshes with transparent textures ( GH-50721 ). Shaders: Add support for structs and fragment-to-light varyings ( GH-48075 ). GLES3: Allow repeat flag in viewport textures ( GH-34008 ). Particles: Fixed rotate_y property of particle shaders ( GH-46687 ).
Mircosoft Game Dev
FEBRUARY 25, 2022
GUI: Fix TextureButton focus texture logic ( GH-56472 ). Import: Fix glTF scene export crash on null normal texture ( GH-56380 ). Rendering: GLES3: Fix shader compile error with Oren Nayar + Vertex Lighting ( GH-56802 ). XR: Fix external textures being freed by Godot ( GH-56148 ). Known incompatibilities.
Nvidia
NOVEMBER 7, 2022
To show the benefits of GDeflate, we measured system performance without compression, with standard CPU-side decompression, and with GPU-accelerated GDeflate decompression on a representative game-focused dataset, containing texture and geometry data. GDeflate is available as a standard GPU decompression option in DirectStorage 1.1—a
Mircosoft Game Dev
AUGUST 19, 2021
Rendering: Fixes depth sorting of meshes with transparent textures ( GH-50721 ). Shaders: Add support for structs and fragment-to-light varyings ( GH-48075 ). GLES3: Allow repeat flag in viewport textures ( GH-34008 ). Particles: Fixed rotate_y property of particle shaders ( GH-46687 ). API documentation updates.
Expert insights. Personalized for you.
We have resent the email to
Are you sure you want to cancel your subscriptions?
Let's personalize your content