A downloadable tool

Buy Now$2.95 USD or more

Are your 3D games you've created in GDevelop lagging and bringing you down? Well, have I got the solution for you! I've been working on this plugin for a while. It actually has gotten much larger in scope than I originally planned. Since I have put so much work into it, and since I have to pay my VS code fees, I am going to charge a minimal amount for this plugin.

What It Does:

With version 2.1, many new features have been added such as: performance monitoring with reports, visibility zones, adaptive quality, and more!

This extension dramatically improves 3D game performance through intelligent optimization techniques. It handles static object batching (combining identical models into single draw calls), animated object LOD (Level of Detail) with distance-based shadow and animation control, frustum and distance culling to hide off-screen or distant objects, shadow quality management, material optimization, and real-time performance monitoring (FPS, draw calls, triangles).

How to Use:

Quick Start (Recommended):

At scene start, call "Auto-Optimize Scene" for instant best-practice settings

Press F9 to generate a user-friendly performance report with actionable suggestions!

Features:

๐ŸŽฏ One-Click Optimization

๐Ÿš€ Auto-Optimize Scene - Instantly enable industry-standard rendering optimizations with one action. Turns on frustum culling, balances shadow quality, and configures the renderer for peak performance.

โšก Set Performance Mode - Choose between three presets: Fast (max speed, no shadows), Balanced (great visuals, good performance), or Quality (best graphics, slower).

๐Ÿƒ Animated Character & Enemy Optimization

๐Ÿ‘พ Optimize Animated Enemies - Automatically reduce animation quality for distant characters. Keeps nearby enemies full-quality with smooth animations, pauses animations on far enemies, and completely hides them beyond a distance threshold.

๐Ÿ“ Set Enemy LOD Distance - Define once at scene start; all enemy optimization calls use this setting. Automatically scales shadows, animations, and visibility based on distance.

๐Ÿ‘๏ธ Mark Distant Objects - Tag objects as distant when they exceed a threshold distance, allowing you to skip expensive AI logic for far-away entities.

๐Ÿ” Is Object Marked Distant - Check if an object is marked as distant to conditionally run expensive calculations only for nearby objects.

๐ŸŒซ๏ธ Smart Culling & Visibility

๐ŸŽฌ Enable Frustum Culling - Don't render objects outside the camera's view. Automatically hide geometry that's behind the player or off-screen.

๐Ÿ“ Set Max Render Distance - Hide objects beyond a specified distance from the camera.

โฑ๏ธ Update Distance Culling - Call every frame to apply distance-based hiding. Smoothly hides far objects to save GPU power.

๐Ÿ‘€ Hide Objects Beyond Distance - Hide a specific group of objects when they get too far away; they pop back when objects return to range.

๐Ÿงฒ Pick Objects Within Distance - Filter a list of objects to only those within a certain distance of a point. Great for area detection, AI range checks, and proximity sensors.

๐ŸŽฏ Pick Objects Within Distance of Object - Same as above, but based on another object's position instead of a fixed point.

โ“ Is Within Distance - Check if a single object is within range of a point. Perfect for conditions.

๐Ÿ”ฒ Level Geometry Optimization

๐Ÿงฑ Batch Static Objects - Combine multiple identical static models (rocks, trees, buildings) into a single draw call. Massive performance gain for repeated assets.

๐Ÿ”จ Merge Static Meshes - Permanently merge multiple static geometry pieces into one mesh. Use this for level geometry that never moves.

โ›ฐ๏ธ Simplify Distant Geometry - Automatically hide small details on far objects. Reduces triangle count without using LOD models.

๐Ÿšง Set Occluder - Mark large objects (walls, buildings) as occluders so objects behind them aren't rendered. Like portal-based culling.

๐ŸŒ‘ Professional Shadow Control

โœจ Disable/Enable Shadows - Turn all shadows on or off globally.

๐ŸŽš๏ธ Set Shadow Quality - Control shadow map resolution (128-4096 pixels). Lower = faster but blurrier, higher = crisp but slower.

โ„๏ธ Freeze Shadow Maps - Stop updating shadows every frame. Perfect for static scenes with lights that don't move. Massive performance boost.

๐Ÿ”„ Unfreeze Shadow Maps - Resume real-time shadow updates.

๐Ÿ“ธ Update Shadow Maps Once - When shadows are frozen, manually force a single update for when something changes.

โญ• Disable Group Shadows - Turn off shadow casting for a specific group of objects (distant enemies, small objects).

๐Ÿ’ก Light Optimization

๐Ÿ•ฏ๏ธ Enable Light Distance Culling - Disable lights beyond a certain distance from the camera. Each light with shadows is expensive; disabling distant lights can double your FPS.

๐ŸŽจ Material & Texture Optimization

๐Ÿ“ฆ Simplify Materials - Convert all complex materials to unlit (basic colors). Removes expensive lighting calculations.

๐ŸŽฏ Optimize Materials - Share materials between objects with identical properties, reducing GPU state changes.

๐Ÿ–ผ๏ธ Set Texture Quality by Distance - Automatically use lower-resolution texture mipmaps for faraway objects.

๐ŸŽช Visibility Zones (Portal Culling)

๐Ÿ  Create Visibility Zone - Define a rectangular area of your level. Objects in inactive zones won't render.

โœ… Activate/Deactivate Visibility Zone - Turn zones on/off. Great for indoor/outdoor areas or separating level sections.

๐Ÿ“Œ Assign Objects to Zone - Mark objects to belong to a specific zone.

๐Ÿ‘๏ธ Update Zone Visibility - Apply zone visibility rules. Call every frame if zones change dynamically.

๐ŸŽฏ Is Player in Zone - Check if the player is inside a defined zone.

๐Ÿ”ง Advanced Rendering

๐Ÿ“Š Sort Objects for Batching - Group objects by material to minimize render state changes.

๐ŸŽฌ Optimize Render Order - Sort objects so opaque geometry renders first (front-to-back), then transparent objects (back-to-front). Reduces pixel overdraw.

๐Ÿ“‰ Adaptive Automatic Quality

๐Ÿ”„ Enable Adaptive Quality - Automatically lower render resolution when FPS drops below target, and restore it when performance improves.

โš™๏ธ Update Adaptive Quality - Call every frame to apply adaptive scaling.

๐Ÿ“Š Get Adaptive Scale - Check current render scale (1.0 = full resolution, 0.5 = half).

๐Ÿ“Š Live Performance Monitoring

๐Ÿ“ˆ Get FPS - Real-time frames per second.

๐Ÿ‘๏ธ Count Visible Objects - How many 3D objects are currently visible.

๐ŸŽจ Draw Call Count - Number of GPU render commands per frame (fewer = better). Target: <200.

๐Ÿ”บ Triangle Count - Total polygons being rendered. Target: <500k for smooth gameplay.

๐Ÿ’พ GPU Memory Usage - Estimated VRAM consumed by textures and geometry.

๐Ÿ” Scene Analysis & Reporting

๐Ÿ“‹ Analyze Scene Performance - Deep scan of your entire scene. Identifies the heaviest meshes, materials, lights, and bottlenecks.

๐Ÿ“„ Get Performance Report (JSON) - Full structured analysis data for AI agents or custom tools.

๐Ÿ“ Get Performance Summary (Text) - Human-readable performance report with actionable fixes.

๐Ÿค– Get AI Agent Report - Formatted for AI systems. Lists metrics, issues, and recommended actions.

๐Ÿ“ฑ Log Report to Console - Print detailed analysis to browser console for debugging.

๐Ÿ“Š Issue Count - How many performance problems detected. (0 = well optimized!)

โš ๏ธ Top Issue - The most critical performance bottleneck.

๐Ÿ”บ Heaviest Mesh Name - Which 3D model is using the most polygons.

๐ŸŽฎ Debug & Performance Download

๐Ÿ”‘ Enable F9 Hotkey - Press F9 anytime during gameplay to instantly download a performance report to your Downloads folder. You'll hear a beep and see a notification when it works.

๐Ÿ’พ Download Performance Report - Manually trigger a performance analysis and save it as a file.

๐ŸŽฏ TL;DR - Getting Started:

At Scene Start: Add "Auto-Optimize Scene" + "Enable Debug Hotkey (F9)"

Every Frame: Add "Optimize Animated Enemies" (if you have animated 3D characters)

Press F9 while playing to get a custom report telling you exactly what to optimize next!

Follow all of my games at: https://eldritchtentacles.com/

Join my Discord here: https://discord.com/invite/XqMe7Vdrhy


Purchase

Buy Now$2.95 USD or more

In order to download this tool you must purchase it at or above the minimum price of $2.95 USD. You will get access to the following files:

Performance3D.json 265 kB

Comments

Log in with itch.io to leave a comment.

Hi mate, I just bought your extension yesterday, but couldn't manage to get the events "Merge Static Level Geometry" and "Create Instanced Enemy Pool" to work, tried all setups that I could imagine, checked objects if they have/didn't have animations, one by one, etc.

Is there an specific setup needed for this to work? Gdev says that the objects don't exist but yeah they do

(1 edit)

Hello! Thanks for bringing this to my attention. So, how do you know they aren't working? Be as specific as possible and I will address this in the extension if I need to. When you say that "Gdev says that the objects don't exist", what do you mean? 

This is the error Gdev drops while trying to run the game, typycal big red  square warning:

same with all this stuff I'm not an expert reading, I just asked gemini to tell me what was going on srry.

When that error happens, select the red text with your mouse and hit ctrl C. Then ctrl V it into a text document and send that to eldritchtentaclesgames @ gmail dot com. I will attempt to fix whatever the issue is.

If there are multiple issues, send them to me as separate blocks of text.

I have updated the extension to 2.1.1. I did a deep check for errors so hopefully any issues you might have been having have been worked out. Try it out and let me know.

I have updated the extension a few times since you last used it. You should give it another try.

Hey!, just a question incase you're still working on it, Does it support 3d?

Yes, it does!