All Posts By

wtraxle

Unity Asset Store: Looks Aren’t Everything

By | Development
  • Despite the occasional hiccup, the Unity Asset Store remains hugely beneficial
  • Don’t judge assets on looks and features alone, optimization and performance is critical
  • Profile your asset purchases early to confirm that performance is reasonable
  • There is an opportunity for authors of performance-optimized assets to distinguish their products

I love the unity asset store. The assets I’ve purchased from the store have helped save serious development time and have provided immeasurable benefits toward the development of my game, Exception. I hate to think of life without ProBuilder. I can’t imagine what the game would look like without Glow11. I don’t want to live in a world without NGUI.

Yet, as much as I like the asset store, I’ve been tripped up by a few assets from talented, well meaning authors that failed to properly optimize their asset.

Recently I ran into problems with the limitations of Unity’s built-in trail renderer. Graphically, I was able to get the effect I needed, but the tool is severely limited in several ways. The biggest drawback is that it’s tricky to turn the trail renderer on and off without getting unwanted, residual trails.

trailExample1

This is produced with the default unity trail renderer. It looks fine but doesn’t include methods for clearing the trails.

Disabling and re-enabling the trailes without unwanted residual lines is challenging.

After wrestling with the built in trail renderer for a while I decided to see what the asset store had to offer. I found a reasonably priced asset which, according to the documentation, provided the functionality I needed.

So, I bought the asset and spent some time incorporating it into my project. The results looked great. It wasn’t until I pulled up the profiler to gauge the performance impact that things turned ugly.

It turns out the asset was using up around 1ms of cpu time (on a 4690 quad core desktop) and throwing off nearly 1k for garbage collection each frame. This performance cost was derived from five trail effects which weren’t even rendered on screen while the profiler was running.

trailProfiler

This effect purchased from the Asset Store has a big impact on performance

The profiler image here is representative of average performance for rendering five trails which are offscreen.

The total impact as measured on a dekstop PC is roughly 1 full millisecond of cpu time and just over 1k allocated for garbage collection each frame.

In retrospect, I should have run one of the demo scenes in the profiler before investing time incorporating the asset. The performance-cost to visual-benefit ratio just doesn’t work for my purposes. It’s possible that my expectations are unrealistic. Clearly I don’t have the time or ability to code my own trail tool so I’m not trying to be critical of the author. It’s also possible that some developers will find this tradeoff reasonable.

Where I do see room for improvement is incorporating more performance information into the asset store. The current process for evaluating assets basically involves kicking around a demo in your browser and reading a few reviews. The only true way to evaluate an asset’s performance is to buy it and run a scene through the profiler.

One potential solution is to provide a high res video or screenshot of the asset’s demo scenes running with the profiler. This would give some understanding of the memory management and a rough idea of the performance. For authors with efficient assets, this could be a good marketing tool.

assetStore

With a huge range of assets for game development, the Unity Asset Store represents a great opportunity for small developers to quickly aquire quality tools and art.

The current absence of performance information is offset by Unity’s perceived willingness to offer refunds when asset purchases don’t work out. I haven’t seen any griping from developers about getting ripped off on the store and I have seen asset authors in their forums encouraging buyers to proceed with refunds when things don’t work out. While these options help rectify the financial cost of a failed asset, they don’t address the larger expense which is wasted time.

Approximating Artwork for Independent Developers

By | Development

articleHeader

The Dilemma

Recently I struggled with the best way to approach some story-telling illustrations I wanted to use for my game, Exception. I can cobble together 3D models and design a video game scene, but when it comes to creating something artistic from scratch, I’m completely lost. I love art but honestly couldn’t draw my way out of a paper bag. My illustration abilities topped out somewhere in middle school.

With a rough idea of an art style to use and a basic story concept, I recently started exploring the idea of hiring an artist to help with some comic book / graphic novel style illustrations. Like many small time game developers, I have a limited budget and zero experience managing contract artists.

What I wanted in an artist:

  • A strong portfolio that demonstrates skill in the artistic style I wanted to use
  • Good communication skills and a receptive attitude towards feedback and revisions
  • Strong work ethic, an ability to set realistic deadlines and complete work on time
  • Reasonable cost
  • Enthusiasm for the project

With that in mind, I started looking at a few of the online resources for outsourcing art in addition to some artists posting work in online art forums. What I initially found wasn’t too encouraging. Many of the outsourcing options appeared to represent people that obviously had day jobs and did artwork on the side. Overall, the quality of many portfolios was lacking.

As far as art forums go, most of the quality work I came across fell into one of three categories:

  • Renditions of popular comic book or video game characters
  • Exotic women
  • Things I wish I didn’t see

Although there are obviously tons of talented artists, I found that looking over a portfolio consisting of work that emulates popular comics/games really doesn’t provide any valuable insight into an artist’s innate creativity. The artist I was looking for would need to create scenes and characters from scratch, not just emulate or reconstruct existing content.

After tentatively exploring some options, it became clear that finding the right artist would take an awulf lot of time and energy.

The Solution

While contemplating the art issue, I started to play with the idea of using 3D renders as storytelling artwork. Exception already uses a collection of 3d models and buildings for gameplay. If there was a way to leverage these assets to produce compelling artwork, this would be an idea worth considering.

After a lot of experimentation, a process for generating interesting renders with 3D software emerged. In my eyes, the results were good enough to serve as story art. Below are a few examples of the results. These consist of Blender 3D renders combined with Photoshop and Filter Forge enhancement.

 

Example Artwork Based on 3D Renders

4 7 6 5 3 2

Using 3d Renders for Artwork

Pros:

  • Use existing game models as basis for artwork; ability to license additional models as needed
  • Flexibility to experiment with various scenes and camera angles
  • Fine control over lighting and model materials
  • Image filters provide a variety of interesting design options
  • Not difficult to modify scenes in the future to update existing work

Cons:

  • Not a substitute for quality artwork
  • Complex scenes and image filters take time to render; disrupt workflow
  • Not all art styles or subjects lend themselves to this technique
  • Time consuming

Tools Needed:

 

The following is a short overview of the process to convert 3D renders into images that give the appearance of hand coloring and design.

Step 1: Using your 3D modeling application, stage a scene with the appropriate characters and setting. Output the rendered scene to an image file.

8       9            
Using Blender, I found that using the Cycles Render with toon shaders worked best. In addition, using the node editor, it is possible to apply a good edge outline. The tutorial here is very helpful:

Cycles Toon Shading Tutorial can be found here

Tips:

  • Use separate postprocess for your characters and the background. Using thicker outlines for characters vs background helps distinguish these objects
  • Output characters and background to different images to apply different effects when editing the images in Photoshop
  • It’s not always necessary to maintain extreme fidelity in your 3d image since the photoshop filter process will degrade the quality. This can save some time in the rendering process.

 

Step 2: Transfer the rendered images to Photoshop or your image editor. In Photoshop, copy the image and apply filters to the duplicates.

      10     a2      
In this instance, an application called Filter Forge was used to apply paint style filters to images. Two custom filters, HDRtist and Sketchy Painting were utilized. Both filters are available for download from the Filter Forge website. Typically two filter layers were sufficient to add some artistic features to the render.

 

 
a3     a4

Tips:

  • Filters which slightly distort object shapes but retain color fidelity seem to work best
  • Paint filters work well because these extend color over line borders and provide a hand-painted feel to the composition
  • It’s possible to use sketch or edge filters to enhance outlines in the render

 

Step 3: Stack your filtered images over the original image. Set the filtered images to ‘Overlay’. This will limit the influence filtered images have over the final composition.

a3a

Tips:

  • Modify the stacked image blending types and ratios to get the right balance for your image
  • Changing the stack order for filtered images can significantly alter the final image

 

Step 4: Fine tune the brightness of your final image. In some instances, the contrast and brightness of the original image will change with the filtered overlays. Modifying the exposure levels in Photoshop worked best form my images. This helps increate the brightness without resulting in a washed-out feel.

4

Tips:

  • Rendering the 3D composition to two to different images for foreground and background (step 1) allows for independent adjustment of brightness at this step

 

Summary

While this process can generate interesting artistic approximations, it’s not a substitute for true artwork. The best artists bring a lot more to the table than straightforward inking and coloring skills. A good artist provides valuable insight into scene composition and design. They provide far reaching benefits to a project that no software can duplicate.

All that said, anyone not in a position to hire on an artist for a project will hopefully find this type of approach useful.