Programmer Search, E3, Interlockable Wire Lines

New Programmer

The search for a programmer is finally over! I’ve found someone to help me finish the project. They will be starting next Monday. I’ll be doing an official post here introducing the new team member!

E3

e3

I will be returning to E3 this year with Manifold Garden! I actually didn’t think I would be going this year. Only got the news last week, which is quite late. I’m super excited to be showing the new build of the game.

E3 last year was a ton of fun, albeit incredibly exhausting. I received a lot of press from being there last year.  Looking forward to seeing what happens this year.

Indy Pop Con

indy pop con

From E3, I will be flying straight to Indianapolis for Indy Pop Con, which begins the next day. I’ll actually be catching the red eye, and going straight from the airport to the convention center to set up.

This will be my 3rd time at Indy Pop Con. I was there at the very first one back in 2014, and it’s really exciting to have seen it grow over the years.

The great thing about this convention is that there’s a really decent size crowd, but still small enough that you can have conversations with people without feeling totally overwhelmed.

When I was there last year, there were players who had been there the previous year, and it’s really great getting their feedback on the game after a year. Looking forward to seeing the returning players and meeting new ones.

Indiecade Submitted

indiecade

Submitted Manifold Garden to Indiecade just in time for the regular submission deadline. I’ve submitted the game to the festival the previous two years, but didn’t get in. Hopefully third time’s the charm!

Rock Paper Shotgunrock paper shotgun manifold garden

 

Manifold Garden featured on Rock Paper Shotgun today! And such a wonderful headline too.

This is very special for me, as during the early stages of development, much of the feedback that I received was that the game looked very generic. It’s so great that now the art style is now making headlines!

Twitch Partnership

I applied to Twitch for partnership. Unfortunately didn’t get it. I’ve heard it’s quite common for people to get rejected the first time though, and applying doesn’t hurt future chances.

Will definitely be continuing to stream development over at: https://www.twitch.tv/williamchyr

It’s been an incredibly positive experience so far. My current schedule is Monday to Friday 3pm CT / 20:00 UTC for about 2 hours.

Interlockable Wire Lines

After a week of struggling with the code, I finally got the interlockable wire lines working. On the interlockables, the wires actually light up bi-directionally.

ManifoldGarden_2016-05-15_22-02-13

 

 

 

 

PlayStation Experience 2015

devlog_PSX

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.

devlog_press

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.

devlog_exhibitorPass

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

devlog_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:

devlog_WilliamChyrLaboratories

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:

devlog_Moscone

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:

devlog_ChrisBell

 

 

 

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:

manifoldgarden_prints

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.

manifoldgarden_northcarolina_escher

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!

Line Drawer, Tree Generator, and Video Game Art Gallery

Long overdue update. Been super busy lately. Let’s get to the good stuff.

Line Drawer

Finally got the line drawer tool working.

Having to place each line as a separate prefab and making sure it was oriented the right way, in the right order in the hierarchy etc, was just a massive pain. Glad I don’t have to do that anymore.

Using the line drawer, the line that is formed is just a single mesh. It’s actually pretty similar to the way water is drawn in the game as well. The entire waterfall is one single mesh that’s redrawn every frame.

To use the line drawer, I just have to place down a series of markers:

manifoldgarden_line_drawer_01

At each point of the marker, there is a visual peg that helps me see the orientation. This was mainly for debugging purposes when I was first writing the code, just to make sure that the orientation of each marker was correct.

The red arrow is the forward direction of the marker. The white arrow is the right direction. The blue cube is the position of the right vertex and the yellow cube is the position of the yellow vertex.

The tool keeps a list of each marker as it’s placed, and uses their position to calculate whether a bend is right or left and sets the vertices accordingly. For example, if bending to the right, that means the right vertex will be on the inside corner, while the left vertex is on the outside corner.

There’s a bit of list gymnastics with this, where you have to wait until the next marker is placed down before you can set all the info on the current marker. For example, let’s say we’re on marker #5. We don’t know whether marker #5 bends to the right or to the left, or upwards or downwards, until marker #6 is placed. So only after #6 is placed, can we use that info to send the bend on #5.

As you can see, we can also change the normal of the different markers and the tool adjusts accordingly:

manifoldgarden_line_drawer_02

Tree Generator

manifoldgarden_line_drawer_03

Still working on this, but we’re almost there.

David started the tool and got a lot of the basics in place.

Instead of using matrices passing them from parent to child to handle translation and rotation, he set it up so that it’s using the world coordinates to do position offset and deciding which faces to extrude. As such, there is actually no rotation going on.

The key to the tree generator is that it needs to fill in a defined space. I’ll be designing level, and there’ll be a 15 x 30 x 20 volume of space for a tree that goes in. The generator needs to create a tree that fills that. It can be smaller but no bigger.

This is why it doesn’t make sense to use only a pre-made set of trees. We don’t get enough variations for all the different sizes that we need.

manifoldgarden_line_drawer_04

 

The way the algorithm works is using “trunk paths”. A “trunk path” is a single line of vertical and horizontal tree pieces. The further along the trunk path is, the higher the likelihood of a “split”. Once a split happens, we get either 2 or 3 new trunk paths.

The beginning of trunk paths are color coded yellow. Vertical trunk paths are dark blue. Horizontal trunk paths are light blue.

Branches start out as red, and are pink or white, depending on vertical or horizontal.

The end of the branch should always go up and is color coded black.

I need to add a raycast system so branches don’t grow into each other. To prevent tree parts from growing back onto themselves, we use lists to keep track of the direction and then make sure new pieces don’t grow in the direction of the inverse of the last two horizontal directions.

Video Game Art Gallery – Exhibition Opening

Video Game Art Gallery exhibited a number of prints I had made with Manifold Garden two weeks ago.

It was part of the Chicago Architecture Biennial, and was supported by the Graham Foundation.

The opening was on Friday, October 16th. Here are some photos from the event:

ManifoldGarden_VGA_01 ManifoldGarden_VGA_02 ManifoldGarden_VGA_03 ManifoldGarden_VGA_04 ManifoldGarden_VGA_05 ManifoldGarden_VGA_06 ManifoldGarden_VGA_07 ManifoldGarden_VGA_08

Invisible Arcade

invisible arcade

On 4th of July, I attended Invisible Arcade 6. Invisible Arcade is an event that was started in Seattle by Samantha Kalman as a punk rock video game show.

IMG_0032

IMG_0017

This was the first time Invisible Arcade took place outside of Seattle, so it was really awesome to have RELATIVITY in the line up.

The show consisted of performers on stage playing through three games and discussing them. Each game had a different set of performers.

RELATIVITY was on first, and was performed by Kate Welch, with Jenn and Trin on stage offering commentary throughout (mostly about Kate’s hair and Hogwarts).

It turned out really well, and Kate actually completed the demo while on stage! She had only played the first few tutorial puzzles before the show to get a feel of the game, so a lot of these puzzles she approached blind. There are some difficult puzzles in the demo, and playing a puzzle game in front of a whole crowd of people is pretty intense, so major props to Kate!

IMG_0046

Programming Lessons

On Monday, I did a code review with Chris, who has been helping me with refactoring gameplay systems in RELATIVITY.

Mostly it’s about making better abstractions, having things be extensions of classes instead of all bunched together in one script, using delegates instead of multiple checks between scripts, etc.

I talked about it in Part 1 of yesterday’s stream: https://youtu.be/_XZMjvK2J_Y

I’ve also realized I still need to be pretty closely tied in with the programming. I thought I could just pass it off to Chris and focus on design alone, but I think the design of the mechanics in RELATIVITY is so closely tied together with the programming that it’s not really possible to separate the two.

Transparent Shadow

When using the Unity standard shader in “Transparent” rendering mode, I get this really nice crosshatch pattern in the shadow (right), but in my custom shader, even though I can get the material itself to have alpha, I still have a solid shadow (left):

Relativity_Game_Screenshot-2015-07-05_16-59-39

In the end, I actually did decided to keep this as a feature, since it helps with the box, but I had to come up with a workaround for the double gravity leaf material (since that uses a custom shader).

Relativity_Game_Screenshot-2015-07-06_00-18-40

Basically, there’s a duplicate leaf mesh that’s using the standard shader, but I have it set on “shadow only” for the shadow option. And then the leaf material with the actual double gravity leaf material just doesn’t cast a shadow at all.

New Level – Pillar and Grid

Relativity_Game_Screenshot-2015-07-06_22-01-03