Search Unity

Assets [WIP] Themey - let users theme/mod your (2D) game's art

Discussion in 'Works In Progress - Archive' started by Arkade, Oct 7, 2018.

?

How much is this worth?

  1. -$5 : you should be paying me for reading this long post and video! My eyeeeess!

    0 vote(s)
    0.0%
  2. $0 : don't bother publishing

    0 vote(s)
    0.0%
  3. $5 : if I gotta pay...

    0 vote(s)
    0.0%
  4. $10 : it's OK but it needs more

    0 vote(s)
    0.0%
  5. $15 : you could 'up' it once you add more

    100.0%
  6. $1,000,000 : squwheee, I'm a whale and here's my credit card.

    0 vote(s)
    0.0%
  7. $other : (write stuff below. Srsly I'm terrible at valuing my work. Kick me.)

    0 vote(s)
    0.0%
  1. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Hi
    I’m working on an asset to re-style (theme/mod) a (2D) game and am looking for feedback. Ideally feedback on what else (if anything) to add, what to improve and rough value (price).

    Initial use case: You’re making a 2D game and want to allow players to change the appearance of your lead characters by taking a photo of themselves.

    Here’s a video of what it can do right now:


    Background

    It came about when my young sons (4 & 6) asked me to help them make a computer game which they explained to me using a crayon drawing. I took photos of the parts, edited them a little, wrote a quick 2D game and they were very happy. Until they asked how to change some of the graphics. At this point I realised kids quite like this idea and thought it might prove popular with others, possibly including adults? ...well, maybe teens and adults with a child-like attitude ;-)

    So I’ve got the basics of the system working. It should work on most platforms with a camera (I’ve tested it on desktop and Android so far). Setup takes as little as 2 minutes and is as follows:
    1. You add the asset to your project
    2. Decide which sprites the user will be able to ‘mod’ by registering.
    3. Make them change when run by any/all of (depending on need):
      1. Add the supplied “ThemeAll” prefab to all scenes.
      2. Add a Component to prefabs (if always same image).
      3. Make one API call (if some variations by player number or whatever).
    4. Add some scenes that provide the modding facilities (perhaps customising them to look better ;-) )
    5. You’re done.

    The sprites default to their developer-supplied look unless the user themes them.

    Once all configured, the player:
    1. Selects one of the user-configured sprites to change,
    2. Presses a button to activate the device’s camera(s),
    3. take a photo,
    4. Scale, crop and position it
    5. save it.
    Done! It then appears in-game when this theme is selected.
    The user can create, rename and delete themes and restore individual items to default appearance.

    Technical stuff

    Behind the scenes themes are simply a directory with specifically named PNGs within.
    I’ve architected to allow different backends but started with a simple disk-based approach under `Application.persistentDataPath`. The editor part is implemented as 3 separate scenes, 1 each for:
    1. Theme selection/creation,
    2. Themeable item selection and theme deletion
    3. Photo taking and editing.
    You can simply load (1) from your main menu and the user will be guided through and back there or you can make 1 API call to go straight to editing a particular part (e.g. 1 sprite).

    So that’s where it is now. Perhaps that’s enough to be useful to some people? Perhaps I should publish it and move on? (Like many indies, this is a side-project on a side-project on a… ;-) ) That said, I can see many directions to expand so wanted to see what you all think are top priorities for you to consider exchanging some of your hard earned pennies?

    Obvious potential extras include:
    • DONE: Support for animation! (see below)
    • More photo editing, like:
      • More detailed cutting-out tool (i.e. alpha erasing tool) so they’re not always rectangular.
      • Drawing on the sprites with simple pen tools
      • Stamps/compositing (e.g. who doesn’t like adding silly moustaches and cat ears?)
    • Purely in-app drawing (how many art tools do you need?)
    • DONE: Utility to simplify configuring many sprites at once (atm you have to add each individually).
    • DONE: Importing images from the device (allowing use of previously downloaded pictures from the Internet)
    • Importing directly from the Internet?!
    • DONE: In-game editing (code probably already allows switching to theme editor from your pause screen if you can recover state when scene switched back to your own).
    • Exporting and importing theme bundles (to share with friends, probably as a zip)
    • More backends (e.g. to synchronize between devices via some service?)
    • Support for 3D texturing? (not too hard in its simplest form buuuuut…..)
    • Support for non-images (e.g. sounds -- my kids’ game has their voice sounds as effects :) )
    • In-game optimizations:
      • Creating atlases for sprites.
      • Other things to ensure good batching (low draw calls).
    • Other platform support (iOS first, I’d guess but then… WebGL? Console?!?)
      N.b.there’s no reason iOS wouldn’t work already but I haven’t a build device to test it.
    • Other stuff -- please say!

    To my mind, the top priority is probably supporting animation in some form. At the moment, the user can only take 1 static photo for each sprite. I figure this will cause quite small applicability. The biggest question on this is what your users might find best? My kids aren’t quite at the stage where they could hand-draw frames of animation but I assume most users well above their level would also not really want to do this. So what’s best? I’d guess short video recording that gets converted into frames? Or maybe each time you tap, a new frame is recorded? Better suggestions? (I’ve not looked into this yet.)

    Lastly I’m keen to hear pricing thoughts. I’m thinking maybe an initial release with roughly what I have at a starting price then up the price when/if I add more features? What would you expect to pay for this so far? And if it had more bells, whistles and cat ears?

    Well, before this turns into an even more mega-post, I’ll stop and hand the mic to you. All thoughts are welcome. Perhaps you’ll say it’s gold already or maybe just that I should put it away and get on with making actual games. Thanks for any time and thoughts!

    Cheers, Rupert.
     
    Last edited: Nov 29, 2018
    Mark_01 likes this.
  2. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Themey now support animated sprites and images!
    It also (from the list above) uses the original image's alpha, loades images from device and makes importing multiple sprites much easier. (I'll see if I can edit the previous post to mark them ready.)

    Here's an updated video of it running in Unity's own "2D Game Kit" (the Ellen demo). I've also tested successfully in the 2D sample (potato head defends London Bridge -- you know the one ;-) ).



    I feel this is about ready to publish so I'm pushing towards that now. Always happy to hear thoughts :)