MOBA-style In-Game Systems
Disclaimer
This project was built as a close study of an existing commercial game, so out of respect for their IP, no images or videos will be shown publicly.
About
3D action game featuring custom character models and animations created in Blender, implemented in Unity 3D with imported terrain, NavMesh pathfinding for AI systems, and complex semi-transparent visual effects
History
After shipping the full MOBA-Style Game Client, I was so eager to add actual gameplay (zero Blender or physics experience) so I dove into modeling/animating characters and Unity physics from scratch. Linking it all to the client was next, but I got hired and had to pause.
SubTasks
- 3D Character Modeling
- Character Animation Segments
- Animator Controller with Imported FBX
- In-Game Settings
- Physics Calculation
- Character Navigation
Challenges
Character & Ability Pipeline
Needed to bring a MOBA character fully to life in 3D modeling, animation, import, and gameplay logic, even though this was the first time working with Blender, rigging, and Unity's animation/physics systems.
Approach
- Started from front/side sketches and an initial hand-made mesh, then switched to a free base mesh and manually created the armature, weight-painted, and authored multiple keyframed animations in Blender (idles, run, basic attacks, abilities, recall, taunts).
- Imported a single FBX timeline into Unity, sliced it into separate clips by frame range, and wired them in an Animator Controller, with code-driven triggers for state changes (run, attacks, abilities) and physics-based range checks plus timer-driven cooldowns.
Lessons & Future Improvements
- Current implementation ties ability visuals and logic to one concrete character. The next step would be a generic "ability/character template" so new characters can reuse the same pipeline and only override data/behavior.
- Persisted settings do not yet cover keybindings, planned to extend the settings system to store per-action key maps so characters and controls could be swapped without touching code.
Movement & Minion AI
Built top-down MOBA movement, camera controls, and basic minion spawning without NavMeshSurface (pre-Unity support), using Terrain-baked navmeshes, raycast targeting, camera locking/panning, and simple pathing.
Approach
- Used Terrain with baked navmesh + NavMeshAgent, controlled via custom CharacterMovement component: raycast mouse clicks to world positions, instant rotation to target, continuous pathing until interrupted (attacks/abilities auto-clear destination).
- Added CameraMovement component with L key toggle to lock camera to character center (handles movement abilities seamlessly) and arrow key panning.
- Added minion spawner class for timed waves targeting enemy base, with MinionLaw logic on melee/ranged/super types for path-following and basic attack-on-sight (no behavior trees).
Lessons & Future Improvements
- Planned but unifinished exposing movement parameters to datasheets for tuning. Handling movement interruptions for CC/death/S key next.
- Camera panning: replace arrow keys with mouse-edge dragging and minimap click to teleport camera.
- Minions use separate behavior classes per type. Instead, change to base class + inheritance and swap hardcoded logic for behavior trees to enable complex patterns and designer control without code changes.
Project information
- Environment Unity 2018.2.11f1 and C#
- Project date Nov, 2019 - Feb, 2020 (Incomplete)
- Game Designer
& Programmer
& QA CJ Kim - Inspired by MOBA games