Tools Development



We become what we behold. We shape our tools and then our tools shape us. – Marshall McLuhan

UNITY

The Unity IDE is an all-in-one Editor that extends to match your production workflow. With the right expertise, you can extend the Unity Editor with whatever tools you need to match your team’s workflow.

Contract me to discuss solutions to your needs!

Unity is extensible…

  • Extend and improve existing Unity functionality
  • Create and add new tooling too
  • Locate 3rd party features (e.g. Unity Asset Store), install, customize, and refine

An Expert Tools Developer will…

  • Identify workflow challenges and tooling needs
  • Perform buy-vs-build analysis
  • Develop new, custom solutions

You can use editor scripting (C#) inside Unity to make life easier for your game designers, or even yourself. With a small amount of code, you can automate some of the more tedious aspects of using the inspector to configure your behaviors, and provide visual feedback on configuration changes.

MY TOOLS DEV EXPERIENCE

I am a game developer with years of experience in game play development, meta game development, and tools development. I prefer the Unity game engine, and I offer services (remote/contract) as a Unity Tools Developer.

Development Philosophy

  • Ease-of-use: Empower non-programmer staff (game designers, level designers, audio designers, UX, UI, etc…) to be powerful and independent for common tasks. Documentation and sample scenes are included to demonstrate common use-cases.
  • Extensibility : Programmers are able to extend the tools for customization and expansion of capabilities for specific tasks.
  • Iteration: The tool is delivered early and often during development. This encourages client feedback and ensures that the features and prioritization meet client needs.

Tools Delivery

  • Each tool is delivered as one folder of core C# code, assets, examples, Unit Tests, and documentation
  • The tool is tested for cross-platform compatibility (typically MacOSX/Windows editors and iOS/Android build targets for major LTS releases of Unity 20XX.X).
  • Delivery methods include Unity package file and/or version control repository.
  • Eventually, delivery will include using official Unity Package Manager for shipping custom packages.

TOOLS PORTFOLIO

Here are a few recent projects to demonstrate the power of Unity Tooling. These were created for clients under contract and unfortunately are not for sale. Projects of similar size and scope can be created and customized for you.

Contract me to discuss solutions to your needs!


 Animation Events System (AES)

  • Offers event-based notifications for ALL Unity animation-related state. No more polling needed. Includes non-coding entry point (Via UnityEngine.MonoBehaviour) as well as a full C# API.
  • _aem.OnAnimationComplete. AddEventListener(OnComplete);

Audio Manager System (AMS)

  • A complete audio system built on top of Unity’s native audio features for use a fleet of live and in-production mobile games. Full music/SFX features including BPM, TimeSignature, Bars, tweening of Volume/Pitch Envelopes, etc…
  • Asset-based approached for drag-and-drop audio configuration, for stubbing of new sound events and for easy replacement of sounds (Via UnityEngine.ScriptableObject)
  • Empowers audio engineers to add custom music and game SFX without coding. Includes a suite of Components (Via UnityEngine.MonoBehaviour) for non-coding entry point
  • Enables programmers to add new functionality for bespoke solutions to audio needs. Includes a full C# API and documentation (in code and via PDF manual)
  • Buy-vs-Build Analysis: While ample 3rd-party solutions exist, the needs of the team required a new, custom solution.

AssetBundle Delivery And Management (ADM)

  • End-To-End system including the organization, building, shipping, and delivery of UnityEngine.AssetBundles.
  • Buy-vs-Build Analysis: New custom solution leaning on learnings of key external Unity projects (AB Manager, AB Browser)

Continuous Integration System (CI)

  • One-Click builds! This compiles the game from version control, runs Unit Tests, generates online documentation, builds the game, and delivers the build on a mobile device). Failures are articulated to stakeholders.
  • Facilitate a series of workshops so game teams refine their own coding standards which prioritize team needs
  • Establish peer-code review process which meets team goals. Training offered to give/receive respectful feedback
  • Setup Unit Testing framework (in Editor and on the build server) to run automated tests on key systems. Training offered on creating and maintaining impactful tests and testing practices.
  • Install documentation generator on build server (Convert C# to HTML code docs)
  • This was created using Jenkins. However, I propose to use the newest Unity Cloud Build service in the future.

Game Initializer System (GIS)

  • Organize and order the major game systems required at app startup and app refresh; Check for internet, (re)download external game assets, refresh game store prices/items, etc…
  • Each IGameInitializerSystem subclass you create is managed for you, so you don’t have to worry.

Game System Manager (GSM)

  • Separate your high level game logic into independent
    IGameSystem subclasses; Audio, Bundles, Meta, GUI, BackendServices, etc…
  • Easily migrate any current uses you have of the problematic Singleton pattern to the (GSM)
  • Optionally, interacts with the (GIS) mentioned above.

Visual Effects Manager (VEM)

Thankfully, Unity supports your aging codebase well (per LTS). However, regularly upgrading your Unity version to the latest, greatest has many benefits. We’re here to help.