Bunny Eureka · published
No need to open if you're an old player — no gameplay changes.
I've refactored part of the bunny code and merged their meshes to improve performance.
------------------------------
I reduced the number of skinned meshes, and the game runs faster now.
It was a painful and tedious process, but I did learn some new things.
Maybe the next game will be better because of it.
I’m honestly afraid all three of my games will get the same kind of comments — that would make it seem like I haven’t improved at all over the years.
------------------------------
Performance Stats
Before (initial version):
• Visible skinned meshes: 298
• Animator components playing: 250
After converting flower animation from bone-based to shader vertex animation:
• Visible skinned meshes: 152
• Animator components playing: 208
After today's bunny mesh merge:
• Visible skinned meshes: 91
• Animator components playing: 43
------------------------------
I finally merged the bunny meshes. And then I remembered why I didn’t do it before.
Having a bunch of scattered small mesh parts is terrible for runtime efficiency,
but it’s great for development — quick to iterate.
Once the mesh is merged, every small adjustment (weighting issues, modeling errors, export problems, adding a new accessory, etc.) requires re-assigning all 25+ materials from scratch.
After doing that a few times, I nearly lost my mind — groundhog screaming noises included.
But screaming doesn’t help, so I kept dragging materials.
Eventually, I thought of numbering the materials to make reassigning them in order easier.
Also, exporting directly from Blender to Unity sometimes just... fails.
Now I export the FBX manually, then drag it into Unity.
Even with numbered materials, doing this over and over is frustrating.
Then I discovered something: if I delete the old FBX but keep its `.meta` file, and reimport a new FBX with the same filename, Unity keeps the material assignments.
No idea why I hadn’t thought of that earlier.
It reminded me of how, as a kid, Chinese homework, when I had to copy homework twice, I’d hold two pens and write both at the same time.
Turns out lots of classmates did that too — or used carbon paper.
Experienced devs are just better at skipping unnecessary steps.
------------------------------
Development is Pain
Some bugs are systemic — they only stop biting you once you’ve been bitten a few times.
Even if I switched engines or 3D software, I’d just run into different bugs.
You just get better at dodging them with time.
------------------------------
I still remember waiting forever for my game’s first ever review.
The player was nice and gave it a positive rating,
but also mentioned the game was poorly optimized.
(Later they deleted the review — maybe they were worried it would hurt my feelings?)
Back then, I had no idea what "optimization" meant.
None of the “anyone can make a game” tutorials talked about it.
3 years later, I think I finally understand what that comment meant.
------------------------------
For example:
• I modeled the bunny and exported it as-is. If it worked, great.
• I didn’t think ahead — now that there are tons of bunny outfits, I can’t even tell which file was the original.
• I threw materials into the scene however I liked.
Now there are hundreds of them scattered around.
Trying to optimize textures and reduce draw calls now is a huge task.
I hope I can avoid all this next time.
---
What’s Next
I want to rewrite the bunny system with a more efficient architecture…
but I don’t know how yet.
I’ve started watching some video tutorials — hopefully I’ll get there.
------------------------------
That'all for chatting. Thanks for being my playper.