Unity Scene Diff Tool

Greetings fellow Unity developers,

As you may have come across, text diffing and merging Unity scenes is not so easy.  Having a Unity scene be diff-able and merge-able is necessary for multiple team members to be able to edit it at the same time without losing changes.  Most teams either deal with this by letting only team team member at a time edit the scene file, or by buying Unity Pro ($1500).

Even with Edit->Project Settings->Editor->Asset Serialization set to “Force Text”, here’s the type of diff you can expect after changing a single value in your Unity scene.  The scrollbar shows how long the text is!:

before

Some solutions to this have been made, and sold on the Unity Asset Store.  My team tried two of these solutions.  However, neither of them just worked out of the box, and they were both extremely clunky.  It would have been more work to get these solutions to work for our team.

So, I figured out how to fix the problem with a simple Python script.  The Unity text file has lots of entities, which look like this:

— !u!196 &5                  <– (THE ENTITY TAG)
NavMeshSettings:
  m_ObjectHideFlags: 0
  m_BuildSettings:
    agentRadius: .5
    agentHeight: 2
    agentSlope: 45
    …
In scenes of moderate to large size, Unity basically randomizes the order in which it saves the entities.  So my Python script just sorts the entities based on their tag name.  Afterward, you get a much simpler diff:

after

The script was surprisingly easy to write.  Since it’s in Python, it works on both Windows and Mac, which is important since some of our team works on each platform.

Hope this tip works for you!

Aaron Smith
Chief Technical Officer
ZeroPoint Studios

Advertisements

September Crunch

October is a big month for ZeroPoint Studios, and September will be full-crunch preparing our first game, Ancient Aliens, for upcoming events. The first big benchmark for our studio is IndieCade – more a celebration of indie games than a professional conference, IndieCade has always been a really fun, laid back opportunity to talk games with fans and devs alike. This year’s goal is to have a working level of Ancient Aliens in a presentable state, so that I can start showing it to people and build up a bit of hype. For the first time I will also be attending the indieXchange summit, which is advertised as a matchmaking opportunity for indie devs (it sounds good in theory – this year I’ll find out for myself if it’s worth the steep ticket price!).

Our goal is to have 6 enemies ready for the demo level – 3 “organic” ships, similar to the Zerg from Starcraft, and 3 “tech” ships, aesthetically kind of a hybrid of Terran and Protoss, to continue the analogy. Each enemy can be absorbed by the player ship, modifying the player’s weapon in a unique way, kind of like Kirby’s inhale ability. Our game allows two of these modifications to stack on top of each other, creating an interesting design challenge in determining how these mod combinations should function. Making this feel fun and intuitive will make or break the game, in my opinion, and peoples’ reactions during IndieCade will be a very useful test-case to see if we are on the right track.

Later in October is the Gaming Insiders summit in San Francisco – a trip that seems well worth taking as there are some great guest speakers on the docket. This will also be an opportunity to show people an even more honed version of the demo level, and hopefully get some expert critiques (my assumption is that only serious devs will be attending said event).

To close out the month is the Indie Game Festival submission deadline (Oct 19). Ours will of course be a work-in-progress, but submitting will be a great exercise in creating a holistic package, a vertical slice of gameplay that exemplifies what makes our game fun and different from other scrolling shooters.

Stay tuned to find out how these events went down, and also to hear more about the next huge company goal: the Ancient Aliens Kickstarter!

And of course, much love to my amazing team for carrying the standard forward every step of the way. Everyone has gone above and beyond with their professionalism and quality of work, and continues to do so on the promise of a dream. This project wouldn’t exist without them. Thank you guys!

Evan
Creative Director
ZeroPoint Studios

ZeroPoint Business Cards

                         ZeroPoint business cards came in the mail! Huzzah!