
Brief overview of the course.
We cover using components to achieve complete modularity, and we set up the component and boilerplate project setup.
We create the smooth fading functionality for a reusable base widget, from which many of our skill tree's widgets will inherit.
We leverage an approach with enhanced input, interfaces, and a function library in order to create a fully modular system.
We implement widget panning, in a resolution-agnostic way.
We implement a best-practice approach to zooming, which allows for responsive, smooth feeling zooming in a game and also allows for quick zoom direction changes. This approach can be used for widgets as well as cameras.
Covers best-practice UI design. We create extremely versatile and entirely material-based skill tree nodes, in order for them to be maximally performant/scalable, visually-flexible, and visually-appealing. We use signed distance fields in the material to smoothly lerp between shapes requiring no texture memory (optimized).
Walks through an elegant approach to procedurally generate nodes in a radial widget such as a skill tree, in a data-driven and maximally scalable way.
We implement an optimized approach for using large amounts of textures in a game, by designing functionality to asynchronously batch-load their soft object references in blueprints.
We add useful artistic controls to the procedural generation we created, by integrating variables into the right spots in the procedural generation blueprint code.
We design the channels connecting the parent-child nodes of our skill tree. To achieve a professional look, we use an approach to mimic a particle effect in a material.
We add a visually appealing widget which displays the details of a selected node in the skill tree.
We add context and "memory" to the skill tree, so it knows and shows which skills are trained, selected, learnable, etc. We set up for maximum future artistic iteration and ease of use.
We smoothly animate state changes in the skill tree, to give it a professional look and feel. Using a sophisticated UI animation technique, we maintain full design flexibility by auto-animating between designed state appearances.
We drastically extend the visual customization options, to allow for almost any tree design we can imagine.
We implement sound in an artist-friendly way.
We add functionality for the screen to smoothly re-center on a clicked element, and we implement it so artists can tweak how it looks and feels.
We walk through properly adding persistent state saving to a system, in a crash-resistant way. In other words, when we close and re-open the game, it remembers our skill tree progress.
We implement a modular approach to unlearning and resetting skills so that our skill tree system can fit within any game.
We add the ability to check learned skills and research points from anywhere in game code, so our system easily integrates with any game.
In this final video of the series, we implement an agnostic way for things to happen/change when a skill is learned, again so that our system integrates well with any game.
In this masterclass, we rebuild the single-player foundation of a 5-star $200 system from Fab — 100% Blueprint, fully modular, production-ready.
What we're building: On Fab, it's the first result when you search "procedural skill tree" (Full name is "Multiplayer skill tree system : Procedural skill tree UI Modular skilling system", by Enginuity).
Hi, I'm Enginuity, the creator of Skill Tree Pro. I've worked in the industry with Unreal Engine for 10 years. I created this tutorial series to give developers the opportunity to reconstruct an industry-proven asset themselves, to follow along with my thought process and design flow, and to learn some nice techniques along the way. And ultimately, to walk away with something truly useful that you can use in most/all of your future games.
You'll build/learn:
A procedurally-generated yet extremely customizable skill tree
A robust underlying skilling system, with persistent saving with crash-proof design
Advanced UI material/animation concepts resulting in beautiful UI
An approach to smoothly pan, zoom, and autofocus UI
Designing with fully data-driven architecture
Designing with true modularity: modular hooks for a system to easily plug into/work with any game
Optimization best practices for maximum scalability, including soft object batch loading, optimizing materials with signed distance fields, and controlling dependencies
Why Only Single-player?
Multiplayer videos would make the masterclass at least twice as long.
The asset on Fab includes proper multiplayer design, which has simple function calls that do all the multiplayer heavy lifting for maximal ease of use for beginners, replicates state in a net-optimized way with best-practice anti-cheat mechanisms, is client-predictive, includes blueprint code to save/retrieve persistent state to a cloud dedicated server, and includes a multiplayer testing map. It is necessary in order to use this asset in a shipped multiplayer game. However, the asset we're building here works perfectly for a shipped single-player game.
Who This Course is For:
Developers who want to painstakingly build a polished game-ready blueprint-only system. This is an intermediate - advanced course, especially those who want more practice with materials, procedural generation, and systems design. I tried my best to explain every design choice with clear reasoning and visuals. No C++ required.