Se rendre au contenu

Sims like task manager (Tool)

Building a Sims-Like Task Manager in Unity: My Graph-Based Interaction Tool

As a student passionate about game development and AI-driven interactions, I set out to create a graph editor in Unity to manage interactions between characters and objects. This tool allows developers to easily define behaviors using a node-based system, similar to how The Sims handles character interactions. My goal was to make the tool intuitive, flexible, and maintainable while ensuring it integrates well into Unity workflows. Also, i wanted to create a tools that could be usefull in a game production, like this one.

Why I Built This Tool

Creating interactive NPCs and objects in a game can quickly become complex, especially when dealing with branching logic, sequences, and dependencies. I wanted a system that:

  • Simplifies the process of defining interactions between characters and objects.
  • Provides a visual representation of behavior to make debugging and editing easier.
  • Uses modular, reusable components for flexibility.

Core Features

1. Node-Based Graph System

  • Each interaction is built using a graph-based editor.
  • Nodes represent different actions, such as:
    • Move – Directs the character to a location.
    • Wait – Makes the character pause for a specified time.
    • Interact – Triggers an action with an object or another character.
    • Conditional Branches (If/Else) – Adds logic-based decision-making to interactions.
    • and more
  • Developers can visually connect nodes to create complex behaviors.

2. Easy-to-Maintain Architecture

  • The system is built on Unity’s Scriptable Objects, allowing for:
    • Efficient data storage without bloating scene files.
    • Modular behaviors that can be reused across multiple characters and objects.
  • The architecture ensures that interactions are easy to save, load, and modify without breaking dependencies.

3. Flexibility & Customization

  • The tool allows users to define interaction sequences for NPCs, objects, or even between characters.
  • Developers can easily expand the system by adding custom nodes.
  • Debugging tools highlight active nodes in real-time, making it easy to track behavior flow.

Challenges & Learning Experiences

One of the hardest parts of this project was designing an architecture that was:

  1. Easy to maintain – Keeping the system modular and scalable.
  2. Simple to use – Ensuring that the graph editor remained intuitive for designers.
  3. Efficient to save and load – Using Scriptable Objects helped separate data from scenes, making interactions easy to manage.

This project gave me a deep understanding of graph-based design, Unity’s serialization system, and best practices for creating maintainable tools.

Conclusion

Building this Unity-based graph editor has been an exciting journey that pushed my understanding of tool development, AI behavior scripting, and UI/UX design. It has given me a powerful tool that I can use in future game projects, and I’m excited to keep improving it!

GridForge : Unity Tool