Battle-tested practices and tools to build better Unity games faster. From beginner to expert.
AI-Assisted Documentation
This documentation was created with AI assistance. All asset recommendations, tips, and architectural patterns are sourced and driven by wallstop based on real-world Unity development experience. AI (Claude) has been used to help generate code samples, format documents, create examples, and audit content for accuracy. All content has been reviewed for correctness.
β οΈ PAID ASSETS WARNINGThis repository includes recommendations for 3rd party paid assets (unaffiliated). These assets are valuable tools that solve specific problems, but they cost money and sometimes have free alternatives.
Do NOT purchase these assets unless:
- You have personally experienced the problem they solve
- You have exhausted all free alternatives
- The time saved justifies the cost for your specific project
Start with the free tools and best practices first. Only invest in paid tools when you hit their specific pain points.
The Problem: Unity is powerful but has hidden pitfallsβis null fails silently,
GetComponent() in Update() kills performance, physics in Update() causes jitter, and memory
leaks are easy to create.
This Repository:
- Prevents common bugs before you write them (lifecycle order, null checks, serialization)
- Speeds up development with tools that eliminate recompiles and manual formatting
- Optimizes performance from day one with pooling, caching, and allocation tracking
- Scales with your team through automation, standards, and architecture patterns
Start with Best Practices to avoid 80% of Unity bugs, then add Development Tooling to automate your workflow.
- Best Practices β Prevent 80% of bugs (lifecycle, null checks)
- Development Tooling β Auto-format code, catch allocations
- Animancer β Code-driven animation (no Animator spaghetti)
- Feel β Screen shake, particles, juice
- PrimeTween β Zero-allocation tweens
- Graphy β Real-time FPS/memory graphs (FREE)
- Heap Allocation Viewer β Catch GC spikes in IDE
- Object Pooling β Eliminate spawn stutters
- Assembly Definitions β Cut compile time by 10-100x
- CSharpier + EditorConfig β Enforce formatting automatically
- Odin Inspector β Serialize dictionaries, powerful editors
| Tool | Problem It Solves | Cost |
|---|---|---|
| Best Practices | Avoid Unity's hidden bugs & pitfalls | FREE |
| CSharpier | Stop debating code style, auto-format on save | FREE |
| EditorConfig | Enforce naming conventions across team | FREE |
| Heap Allocation Viewer | Catch GC allocations before they ship | FREE |
| Tool | Problem It Solves | Cost |
|---|---|---|
| Hot Reload | Stop waiting for recompiles (2-3 hrs/day saved) | $10/mo |
| Assembly Definitions | Cut compile time by 10-100x | FREE |
| NuGet For Unity | Use .NET packages in Unity projects | FREE |
| Unity Helpers | Eliminate boilerplate (auto-wiring, pooling) | FREE |
| Tool | Problem It Solves | Cost |
|---|---|---|
| Animancer | Replace Animator Controller spaghetti with code | ~$75 |
| PrimeTween | Zero-allocation tweens & sequences | FREE |
| Feel | Add screen shake, particles, juice fast | β¬46 |
| Tool | Problem It Solves | Cost |
|---|---|---|
| Graphy | Monitor FPS/memory/audio in real-time | FREE |
| Better Build Info PRO | Find what's bloating your build size | ~$30 |
| Asset Usage Finder | See where assets are used before deleting | ~$20 |
| Tool | Problem It Solves | Cost |
|---|---|---|
| Event Systems Comparison | ScriptableObject events vs DxMessaging (DxMessaging wins) | FREE |
| DxMessaging | Type-safe messaging without memory leaks (superior approach) | FREE |
| Odin Inspector | Serialize dictionaries, custom editors | ~$55 |
| Input System | Modern input with rebinding support | FREE |
Choose based on your target platform and team size:
| Use Case | Essential Tools | Why |
|---|---|---|
| Learning/Solo | Best Practices + CSharpier + Graphy | Build solid fundamentals, catch bugs early |
| Mobile | Add: Heap Allocation Viewer + Object Pooling | Performance is critical on mobile |
| 2D Game | Add: Animancer + Feel + PrimeTween | Animation control + juice + smooth movement |
| Large Team | Add: EditorConfig + Assembly Definitions | Enforce standards, manage compile time |
| Production | Add: Hot Reload + Odin + DxMessaging | Speed up iteration, scale architecture |
Start here regardless of experience level:
- Lifecycle Methods β When code runs (15 min)
- Null Checks β Unity's "fake null" (10 min)
- Component Access β Cache, don't call repeatedly (15 min)
- CSharpier β Auto-format on save (10 min)
- Practice: Build a character controller
Add essential Unity patterns:
- Coroutines β Time-based operations (20 min)
- Physics β FixedUpdate and forces (18 min)
- Serialization β Inspector fields (12 min)
- Heap Allocation Viewer β Catch GC spikes (15 min)
- Practice: 2D platformer or top-down shooter
Master architecture and optimization:
- Event Systems β ScriptableObject events vs DxMessaging (30 min)
- ScriptableObjects β Data-driven design (25 min)
- Object Pooling β Eliminate spawn lag (18 min)
- Assembly Definitions β Slash compile times
- Animancer or Odin β Based on needs
- Practice: Complete game with performance requirements
Found a mistake or want to add a tool? Open an issue or PR. This is a living document that grows with Unity's ecosystem.
Ready to start? β Best Practices Guide
Want automation? β Development Tooling