PlayStation Experience 2015


Returned to Chicago on Monday from PlayStation Experience. It was pretty exhausting. I was hoping to work on Tuesday, but ended up taking the day off to recover.

PlayStation Experience this year was very different from last year’s event.

Here’s my write up for last year’s PlayStation Experience: Part 1Part 2Part 3 

Regarding the event itself, PlayStation Experience this year was much bigger. There was a pretty large crowd on both days, while last year there were several times when the section I was in felt quite empty. I think this is a combination of the event being more well known, and also being in SF instead of Las Vegas.

With regards to the game, last year, it felt like nobody knew about the game. Many of the people who came to my booth last year and never heard of the game before. This year though, a lot of people came up to me and told me how they had been seeing screenshots of the game everywhere, and some also said they had actually been following its development for some time. It felt really awesome knowing that the game was getting out there, and now people know about it.


This year I also got a lot of press coverage, which was much better than last year, when I got none. Here are some of the articles that have covered the game so far:

Kotaku – Manifold Garden, An Incredibly Pretty Puzzle Game

US Gamer – Manifold Garden is a Real Mind-Warper

Game Informer –  Our 10 Favorite Indies From The PlayStation Experience 2015

VentureBeat – Sony focuses on the joy of gaming at PlayStation Experience

The GWW – Manifold Garden – My Biggest Surprise at PSX

4Gamer – エッシャーにインスパイアされた奇才が3年をかけて開発中のパズルゲーム「Manifold Garden」  (Japenese)

All of this was really great to see.

Show Logistics

Arrived in San Francisco on Friday at noon, and headed straight to Moscone Center to pick up my badge and set up the game.


Like last year, I had a 10′ x 10′ booth:


Sony provided 2 TVs, 2 PS4s, and 2 controllers, so set up was pretty simple. All I had to do was show up, install the game from the USB, and hang up the banner. Normally, having to carry all the computer equipment, screens, and setting up, is such a huge hassle for conventions, and Sony took care of this.

Also, this is pretty funny:


Not sure what happened here. My company is “William Chyr Studio”, and that’s the name I have registered with Sony and what I put as the company when I filled out the PSX participation form, but it looks like there was some confusion.

Everyone said to own it. I should really go for the mad scientist vibe. Anyone got an extra lab coat they can lend me?

Here’s a picture of the crowd on the second floor watching the keynote:


This year, the indie section was split up across the entire convention, instead of being all together. I think this was a really cool way of doing it, especially given the size of the whole show, as it didn’t make the indie games feel like they were a separate category. The only downside was that it was a really hard to see the other indies if you just remained at your booth.

In other conventions I’ve done, because all the indies are within a 10 minute walk of one another, I’d end up getting to see and talk to everyone. This year though, I had other friends at PSX who I did not get the see and talk to at all!

The show on Saturday was also 12 hours – from 10 AM to 10 PM. The hours were quite brutal, especially for one person manning a booth (I wasn’t the only one doing this either!). I don’t think last year had such insane hours. I do hope Sony changes this in the future, for the sake of the smaller indie teams that can’t afford more booth personnel. Or perhaps have volunteers that man the booth for an hour or two so smaller teams can take a break?

The show on Sunday was 10 AM to 6 PM, which was pretty nice.

After the show, I hung out with some of the other developers, and it was great to be able to do a bit of catching up.

Here’s a pic of my friend and fellow game designer Chris Bell playing Manifold Garden at the booth:





Pre-PSX Madness

Ran through the latest build of Manifold Garden on the PS4 devkit before PlayStation Experience. It is playable from start to finish. There are still a few things I’d like to add, but it’s icing on the cake.

The biggest improvement in this build is that the game is actually running at 60 FPS on the kit! 60 FPS feels wonderful. Smooth like butter.

David really did some fantastic work with optimization.

Also, new Manifold Garden prints have arrived, and they look fantastic! These will be available for sale at PSX:


Earlier today, I was on a panel (virtually), along with Ken Wong (of Monument Valley) and Ty Taylor (of The Bridge), talking about Escher and game design at the North Carolina Museum of Art. It was pretty cool. Not sure if it will be posted for viewing later. I believe it was recorded.

Anyway, it was fun, and really interesting to hear about the context of Escher in art, as well as Ken and Ty’s thoughts on how they used his work in their designs.


Finally, here are a bunch of screenshots from the latest build of the game, captured directly from the devkit:

manifoldgarden_devkit_capture_001 manifoldgarden_devkit_capture_002 manifoldgarden_devkit_capture_003 manifoldgarden_devkit_capture_004 manifoldgarden_devkit_capture_005

Alright, back to PSX prep!

Weird “invalid serialized file header” Bug Fixed

(Sort of. It’s at least better than what we did before)

The Bug

In the last post I talked about the weird Unity serialization bug that ruined all of Tuesday night, and which we were only able to avoid by sticking with an old revision of the material.

The solution wasn’t very practical though, because if you pulled any version of the material after revision, and then accidentally clicked back on Unity, it would stall and crash. This is quite easy to do, because if you checked out the project folder in Perforce, and then try to submit, Perforce will ask you to get latest version first.

If this stalled, I would have to delete the Library and Temp folders and have Unity build again. Due to the size of the project, this would take around 20 minutes.

This is clearly not at all practical.

In the previous post, I talked about the thread I found, which seemed to pinpoint the problem to the way Unity does serialization and some weird way that it’s handled by Perforce.

What we’ve been experiencing seems to confirm this, as even making the material exactly like what it was in revision 7 and then resubmitting still led to problems.


I started to wonder if maybe the problem was actually over on the Perforce server, and so when we pulled, it messed up the project.

So what I did was to delete the asset that was giving us the “invalid serialized file header”, in our case default_prototype.mat, as well as the associated meta file from the Perforce server. I also deleted them locally.

Then I opened up a new Unity project, and reimported ProBuilder (we’re using the source version by the way).

Then I copied default_prototype.mat from this new project into the original project.


Allowed Unity to generate the meta file, and then committed those to the server.

Had no idea this would work. Here are my commit messages:


Incredibly, this actually fixed the problem!


This problem had actually been bugging us for several weeks now. David had first noticed it and discovered reverting the material to older version fixed it. However, I had only been pulling the project in bits, so it wasn’t until Tuesday that it really affected me.

Anyway, really happy that this is resolved. It’s possible that another asset could have serialization messed up in the future, so I think we will take care of changing the setting on the P4 server.

If you’re experiencing the same problem, I hope this helps.

Weird “invalid serialized file header” Bug

I’ve recently fallen into a particular routine (this always happens right before a big convention, and PSX is right around the corner).

Basically, I wake up at around 10am. Check in with David about about updates to the game, what needs to get worked on, bugs that need to get fixed, etc. From then until 4pm, I’m basically working on admin stuff – updating devlog, writing emails, doing any writing that needs to be done (applications, game submissions, press interviews, etc), managing calendar, finances, etc, etc. I’ll often have phone calls, skype meetings, or (god forbid) real life physical meetings during this time as well.

This stuff, which I call “non-gamedev gamedev” takes up a surprisingly large chunk of my time now, and I do it closer to when I first get up, because my brain takes a while to absorb caffeine and be fully awake (yes, it takes my brain around 6 hours to wake up).

Anyway, from 6pm to 4am is my prime coding hours. There’s usually no activities scheduled, not much happening online (not in my time zone anyway), and the world is just much quieter. This is when I like to tackle the tough problems, go through code and track down bugs, etc.

Last night, around 8:30pm, I decided to stream for a bit to help me focus as I hacked away at more bugs. I went live, pulled the latest version of the build from Perforce, and then Unity just stalled at the project opening. I could see the window outline, but the project just wasn’t loading. This went on for way longer than normal. Ctrl Alt Delete to shut down Unity, but still couldn’t get the project to open.

I ended up canceling the stream, figuring that watching me open Unity is really not that interesting, plus I needed to focus on this.

I spent all night trying to get the project open. Deleting the Library and Temp folders, starting a brand new folder and pulling from Perforce. Nothing worked.

It was incredibly infuriating. It’s 4 days before I leave for PSX, I was supposed to fix a bunch of bugs and test the build on the devkit, and here I am, unable to even open up the project.

I spent until 4am trying to get this to work, with no progress. Ended up going to bed super frustrated and annoyed.

This morning, talked to David, and the problem turned out to be due to this one material (David actually had this problem before).

The material is the Default_Prototype material that comes with ProBuilder (though I don’t think it’s the issue with ProBuilder here, but a way the asset is getting serialized by Unity for version control).


Our solution thus far is to rely on an older revision of the material:


What is messed up though, is when we try to commit a newer revision of the material, that’s exactly like version 7, that still causes problems!

Doing a google search on “invalid serialized file header”, I found this thread:


The issue seems to be that P4 server is modifying the end of the line for the meta file?

Given all the symptoms, a problem with version control system messing with something would seem to make the most sense here.

I’ll have to talk to Mike who runs the P4 server to make these changes, and will then post the update here.

Anyway, pretty frustrating to have lost a whole work day as a result of some weird and obscure back.

I do have things are back on track now, in that I can at least open the project and keep working.

Such is game development, I guess.