Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

[Questions] Looking for advice on a few asset development uncertainties

Discussion in 'Assets and Asset Store' started by TheGabelle, May 22, 2021.

  1. TheGabelle

    TheGabelle

    Joined:
    Aug 23, 2013
    Posts:
    242
    I am a hobbyist in the process of building a fairly substantial procedural tool for my solo dev game. I am considering shipping this tool as a standalone asset on the Asset Store. I haven't built anything for the asset store before and I haven't used store assets in a long time -- I typically make what I need because I enjoy the process and I have no deadlines. I am unaware of any current asset developer standards or best practices and so have assembled a handful of questions to get up to speed.
    1. Is it reasonable to use collections, burst, mathematics, and jobs as dependencies? UI Toolkit for editor and runtime tooling?
    2. Serialized data: is it a good idea to operate on my own binary files or should i pack everything into ScriptableObjects? Text serialization preferred for version control?
    3. My assets depending on my other assets or other's assets (free, paid)? Breaking my tool into separate assets seems like a good idea on the surface, "pay only for what you need".

    Any asset store development advice is desirable.
     
    Last edited: May 22, 2021
  2. hasanbayat

    hasanbayat

    Joined:
    Oct 18, 2016
    Posts:
    626
    1. Yes, that's absolutely reasonable, many publishers are doing it, including Unity's own packages.
    2. ScriptableObject is preferred, I would go with ScriptableSingleton instead of handling the operations on my own only, but sometimes you require encryption over your data, so the binary and custom files are the way to go.
    3. Yes, that is a great idea, but they should only be separated for a reasonable purpose, otherwise, you might end up with being too many tiny assets that tightly depend on each other, for example, for a Platformer Framework or something like that, you might be able to separate Audio, Animation, UI and stuff like that into other packages and incorporate them there using dependencies.
    Stay awesome!
     
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,528
    The How to Make Better Code Assets thread is old but still valid. Some of the primary notes:
    • Follow the Submission Guidelines
    • Use Correct Folders (use asmdefs if not using Plugins)
    • Keep metadata consistent
    • Use namespaces
    • Support extensibility (event hooks, virtual methods, etc.) so users don't have to modify source
    Yes. Call them out in bold in the description. Also overlay a note on your video and screenshots, since customers often skip text descriptions. It'll help reduce refund requests.

    As of this reply, carefully use UIToolkit for editor tooling, but consider avoiding it for runtime tooling since it's not quite production ready yet.

    Any text serialization is probably preferable. If you use binary files, you may run into compatibility issues on different build platforms.

    What hasanbayat said. :)

    Also, consider making it easy for customers to delete or omit demo assets.

    Prepare to handle support requests. Set up a system (e.g., ticketing system and searchable knowledgebase). As you reply to each customer, put it in the knowledgebase so you can point future customers to it instead of rewriting the same answer. Also, the better your video tutorials (especially for something technical like a procedural generator), the fewer support requests you're likely to receive.

    Set up RSS notifications of reviews. (The RSS info is in the Reviews section of the publisher portal.) Some customers unfortunately use the review system to request support instead of using the proper support channels.

    As soon as your asset is accepted, join the Asset Store Publishers forum section (link in the acceptance email) and discord server.

    Good luck!