January 8, 2025
Assets - the Good and the Bad (and how to use them!)
Asset flippers vs. using assets right. How I used third-party packs in Desktop Cat Cafe and kept the look coherent.
Assets are one of the most controversial topics in games. A lot of the hate comes from people who don’t understand how games are actually made - almost every game, even AAA, reuses some kind of asset. Even the terrain and trees in Red Dead Redemption 2 are procedurally generated.
The term “asset flip” got a bad name when devs took shortcuts - copy/paste random assets together with no style coherence, or just uploading templates with barely any changes. Only Up is the obvious example.

Making games is HARD, especially as a solo indie. If a tool helps you achieve your vision, use it. But games are one of the highest art forms - they combine art, music, story, level design, infinite player possibilities - so you should still care about stylistic coherence.
The truth is: players don’t really mind asset use if the game is fun and unique.
Tavern Master is a great example - heavy use of Synty packs, didn’t hurt sales at all. Desktop Cat Cafe is mostly built on 3D model assets and most players never noticed until I told them.

Step 1: Picking assets
Pick a visual style and commit. Nothing looks worse than a low-poly table next to a high-poly Victorian chair.
Asset packs often come with their own shaders, hundreds of mismatched textures, and other inconsistencies. Curate carefully.
For Desktop Cat Cafe I wanted cozy + low-poly + rounded edges (sharp edges aren’t very cozy). I searched the Unity Asset Store, itch.io, Fab.com, Sketchfab, and CGTrader. Search with varied keywords - “low-poly”, “cartoon”, “stylized”, not just one.

Step 2: Import and optimize
I converted everything into Blender’s .blend format. Unity supports .blend files directly, so there’s no source-vs-export split to manage. I wrote a small Python script to automate the conversion (manual fixes were still needed sometimes because of coordinate-system weirdness).
In Blender I’d tweak the models when needed. Some tables were too thin so I used the Solidify modifier. That bumps polycount though, so for performance the Displacement modifier is sometimes the better play.

Step 3: Unify the textures
Instead of using the dozens of textures that come with asset packs, I stripped most of them. Then I mapped simple colors / gradients onto the geometry and made atlas textures. Those atlases combine into just a few textures grouped by color theme.
That lets you change a whole theme without making a separate material for every variation. Same base texture, different unwraps = different look.
The fewer textures you have in your game, the better. Large textures get expensive fast.
Unity also supports .psd (Photoshop) files - super useful because changes auto-update in the editor on recompile.

Step 4: One shader to rule them all
Every model needs the same shader. Shaders do a LOT of the visual heavy lifting.
Desktop Cat Cafe uses the FlatKit shader from the Unity Asset Store for that toony look. It unifies everything visually.
I also wrote a small script that auto-generates icons from 3D model prefabs - perfect for inventory icons and custom food items.

The bottom line
This is a lot of work. Game dev is a lot of work. But it saved me serious time and money vs. hiring an artist to do every model from scratch. Sometimes you don’t need to reinvent the wheel.
Use assets! It doesn’t really matter if some people don’t like them. But make sure they make sense.