Skip to main content

Why did I scrap the previous version of my big game project?


Sometimes you start projects over because you are stuck in a loop of -->


  1. This project is fucked
  2. If I start over now with what I know it will be better
  3. Start over and rebuild it better than it was before
  4. Proceed to fuck up project
  5. Go back to step 1

On the previous version of this project I liked how it was going BUT the iterative process was SO SLOW and the "code" at the time which was made up mostly of Playmaker state machines was a MESS- I knew nothing of code architecture at the time- so yeah it was a nightmare-

Now that the project is back up to speed and humming along better than ever I thought I would show some proof of the improvement-

A note about speed- in game design- the speed/ease of iteration can make or break a project- so a slow iteration time just kills the project and your motivation-

The Unity startup time is the time from pressing play in Unity to having a live game-
The compile time is the time Unity locks up as it compiles a script change-

Old version startup time = 35 seconds
New version startup time = 9 seconds

The new version is 3.9x faster

Old version compile time = 1minute 4 seconds
New version compile time = 16 seconds

The new version is 4x faster

So yeah, imagine making any change to any script and having to wait a minute+ to be able to use Unity again 0_0 YEAH IT SUCKED!

Here are some images for reference to show some of the slow mess of the old version-

The old version player Animator setup



The new version player Animator setup


The new version uses Sub-state machines and blend trees- the original mess did not 0_0

The old version player to show attached scripts etc


The new version

As you can see the old version has a ton of Playmaker fsm's as I didn't know how to code back then and that's the only way I knew how to do things-

In the new version the Player only has one fsm- its being used to do what I later learned fsm's were really designed to do- manage high level state- on the old one I used Playmaker for everything 0_0

Not using a million fsm's impacts performance, usability, and a ton of other things- also Playmaker fsm's are tough to debug compared to regular C# scripts so hunting down bugs etc takes much longer-

Back with the old project working was agony as everything was so slow and I had to wait a minute here- a minute there-

Here are some tips to make your Unity projects faster


If you use Playmaker- 

  • Read a book like "Clean Code" it will help you design your fsm's so that they are more modular, easier to debug- and will just generally make your Playmaker life better 

  • Use something like "Run Fsm" as much as possible to build generic pieces of code that you can reuse and when you need to change things you just edit the template being used-

  • Avoid using Global variables- they are easy to use and seem awesome at first but on a bigger projects they soon become a nightmare to track/debug etc

  • Read books about how to be a good programmer like "Clean Code" I know we use Playmaker because we don't want to have to deal with programming BUT we are programming so learn about it or pay the price-

  • Learn enough programming to make your own custom actions and interfaces for Playmaker- this will make your life much easier- instead of searching for and cobbling together solutions you design them the way you want from the start


General tips

  • Learn how to use Sub-state machines, Blend trees and animation layers for your Animator setups- you'll have much simpler, easier to maintain setups


  • Don't import third party assets consisting of art/sound/models/animations etc into your main project- instead import them into a blank project and pick out the objects you want to use- then create and export custom packages that collect only the objects you are using-

  • If there's a well designed, highly reviewed, elegant third party asset that would save you from having to build an inferior solution yourself just buy and use the asset- I'm thinking about Dialogue System for Unity, Odin inspector, PoolManager, Behavior Designer, Camera Controller- things like those-
If your project is a nightmare to work with like mine was- just bite the bullet and either scrap it or rebuild it like I did- 

Random note: I got a comment recently on one of my gameplay test vids for this game- the person was concerned saying it didn't look good and proceeded to give me tips on how to make a Unity project look better- using effects etc ^_^ 

They must have missed the music videos I made in Unity in days that looked kinda cool like this one...

But anyway- I know people mean well- they just make assumptions a lot of the time as if they understand the intentions/motivations of a creator-

OH YEAH this reminds me of this dude who after watching my film Heart String Marionette in a movie theater asked me if I knew what a camera dolly was! Haha- nah man- I've just studied filmmaking/cinematography and made films for 15+ years... I have no idea what a camera dolly is!

I have no doubt in my mind that I can make things look and sound cool as that's what I've been doing the past 15 years or so- Adding cool visuals at this point would only slow the project down and serve no purpose-

I know when most people share a game/project etc they are doing so because they want approval from others/attention/press- I don't care about any of that at this point- I'm sharing these things for historical purposes and to perhaps help others who are doing the same-

THIS also reminds me of the Unity subreddit- there's this weird thing where people post about their games and ALWAYS use words/phrasing like "I'm really PROUD of this" or "I worked REALLY HARD on this " or "I'm really HAPPY how this turned out " or "I worked for 2 years on this AND am really PROUD of it"

It always trips me out- it's like they are trying to shield themselves from the truth- shielding themselves from honest criticism by playing up how HAPPY and PROUD they are or how HARD they worked for such a LONG TIME-

So like- if you give them an honest comment that isn't THIS IS AWESOME it makes you seem like a dick because you're being mean to the happy, proud, hard working person-

Anyway- this is why I don't participate in any creative communities-

I just wade through the quivering humans looking for interesting things-

This badass Unity dev posted a few things like this and the place had a melt down- there were so many comments like "I hate you for being this good" it was disturbing-

Here's a few things I learned through the years- 

You are not your work- if your work isn't "great" yet it just means that you need to work harder for a longer period of time to get there- if greatness is what you truly desire you will get there in time-

Jealously is really ugly and self destructive- admire and allow it to inspire-

Since we are not our work- we shouldn't take criticisms of our work personally- and in the creative world all we have is human opinion so nothing means anything any way-

We shouldn't get mad at people we think are "better" than us- it just disempowers us- instead of trying to be as good as person X- try to be the best you- allow yourself to be yourself which is going to be different than person X-

Amazing people should inspire us to improve BUT not with the goal to be as good/better than them- we all have different paths to walk-

Anyway I'm back to work-

Comments

Popular posts from this blog

What format should I render out of Cinema 4d with?

UPDATED 2_27_13!  RENDER USING EXR Lossy Zip16! Since I'm working on a new feature film that will generate over 1500 shots made up of image sequences I need to make sure I choose the right file format to render to lest my hard drives explode. What I need from my format is  at least 16bit, an alpha included and preferably small size. I rendered out a frame from my film tallied up all the file sizes here- their all different types of codecs listed from smallest file size to largest. The render includes an RGBA pass, Depth pass, and Material Luminance pass because thats what I always render out. 1.00mb 8bit-Photo Jpeg %100 1.27mb 8bit-PNG 4.65mb 16bit- EXR lossy ZIP16 5.75mb 8bit-PSD 6.23mb 16bit-EXR lossy PLZ 6.44mb 16bit-PNG 7.94mb 8bit-TIFF 8.50mb 16bit-EXR Lossy 24 9.05mb 16bit-EXR Lossy Run Length 14.6mb 8bit-TARGA 22.4mb 32bit-EXR ZIP16 24.6mb 32bit-EXR Zip1 25.6mb 32bit-EXR PLZ 29.3mb 16bit-TIFF 29.3mb 16bit-PSD 40.0mb 32bit-EXR Run Length 58.7mb 16

Aggregated feedZ

So I totally aggregated all meh rss feedZ...So in this one handy like feed thing you can get... -Meh blog posts -Meh EXCITING Facebook status updates (ex. "I'm so FACE") -Meh youtube videos -Meh Vimeo videos -Meh Blogtalk radio episodes - and much more (actually just like some other xml code that i don't understand) Just subscribe via this link and you can get all that for a low low price of...oh wait it's totally FREE ^ ^

So a guy is trying to take credit for my film...

TLDR- Scroll down to THE THIEVERY My name is Mike- I make films under the name "M dot Strange" and I have done so for the past 10+ years- this is my story as a filmmaker culminating in a recent event wherein a "filmmaker" tried to take credit for my life's work Here's my imdb page with my film credits  My web site Here's a reel with stuff from my original films in which I wrote/created/designed/animated etc everything that you see- I can and have performed all aspects of animated film production on my films- thats sort of how I made a name for myself- by being a one man animated film studio Here's a presentation from 2014 with me discussing the production of my last film My first animated feature film "We Are The Strange" premiered at the Sundance Film Festival in 2007 Sundance archives link Article about the film Link to the film Film's site Because of the buzz that film generated I was given offers to sell the