MuninuM

LLC: https://muninum.com

Programming: Generic Behavior

A Unity3D Inspector script assistant tool.

For Students: Generic Behavior was a scripting assistant tool for Unity 3D. It was developed to help students comprehend the When/Do Event->Message scripting that is crucial to implement basic to medium gameplay scripting. With it, simple games like Pong, Qbert, and Pacman could be developed without going into the code. 

 

Features

For Unity3D. Generic Behavior featured:

  • Single multipurpose script for all interactable/modifiable GameObjects
    • Conditional scripting in inspector
    • Keyboard Focused Input
    • Main System Events (Shown in picture above)
  • Custom Editor Script for ease of organization
    • Copy/Paste events across inspector Objects
      • All Events stored in text files
    • Searchable Events
    • InEditor Runtime copying of newly created gameObjects
  • Library of premade custom events; simple but useful
  • Used for 2 years
  • Each Node is text based (partially 😉 so it could be parsed by the same function.

Discontinued… for now?

Why:

  • Support; making a tool that works for a limited group of users is much simpler than supporting that tool – with documentation, examples, tutorials, etc for an group of trainees with different skill levels. It was a case of diminishing returns in terms of efforts to teach and implement new functionality that would enable more complex scripting combinations.
  • Single Developer
    • At the time, I was learning many different techniques… so it got messy
  • Enhancing it would have required massive code refactoring, which would be more for performant reasons than gameplay enabling functions

Takeaway

Why revisited: From a high level view, Generic Behavior was compared with visual scripting, or other node based tools. I learned much about the engine, as well as interesting mechanical combinations when trying to reduce the set of gameplay centered scripting to a small core of generic functions. These combinations then revealed how few things one would need to learn to create very interesting results. It became more of a prototyping tool with a very good name.