Programmer, Owner
Unity, C#, Reflection, Editor Scripting
Unity has no first-class solution for persisting structured gameplay data to a database. The common approaches — hand-writing SQL strings, using PlayerPrefs for everything, or pulling in heavyweight ORM libraries not designed for games — all create the same problem: fragile, boilerplate-heavy code that breaks when your data model changes.
DataSmith solves this by bringing an ORM-style developer experience into Unity — you define your data model once using C# attributes, and DataSmith generates the strongly-typed models, table mappings, and fluent query API automatically. No SQL strings. No reflection at runtime. No boilerplate.
Writing gameplay code is one skill. Writing a framework that other programmers
build on top of — with a coherent API, zero-overhead guarantees, and enough
flexibility to fit real project structures — is a different level of engineering entirely.
DataSmith required designing a code generation pipeline that correctly
handles C# type reflection at edit time, emits valid compilable output, and stays
in sync as models change. It also required thinking about the developer
ergonomics of the API — making the fluent query interface feel natural
to Unity developers who have never used an ORM before.
Publishing it as open-source and targeting the Unity Asset Store
means it has to work reliably across different Unity versions, project configurations,
and use cases — with documentation and examples that let someone new get started
without help.