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

 

 

 

 

More Volumetric Light Experiments / Giant Interlockables

Did some more tweaks with the volumetric lights. They’ll definitely need some custom work with the code in order for it to fit well with Manifold Garden’s art style. I think the key here is that it needs to be used sparingly. If it is over used, it will ruin the art style that I’ve so carefully cultivated.

Here are some screenshots captured this weekend.

ManifoldGarden_Screenshot_001 ManifoldGarden_Screenshot_002 ManifoldGarden_Screenshot_003 ManifoldGarden_Screenshot_004 ManifoldGarden_Screenshot_005 ManifoldGarden_Screenshot_006 ManifoldGarden_Screenshot_007 ManifoldGarden_Screenshot_008 ManifoldGarden_Screenshot_009 ManifoldGarden_Screenshot_010

I think the voluemtric light needs to only come in in very special moments. Moments where players stop and go “Wow…” and nowhere else. Right now I’m just experimenting with the style.

Also started working on giant interlockables. Or rather I should say, started re-working on them.

ManifoldGarden_Interlockable ManifoldGarden_Interlockable2 ManifoldGarden_Interlockable3

Indiecade East Feedback, Programmer Search, and Next Steps

MG_indiecade_east2

Indiecade East Feedback

I just got back from New York City. Manifold Garden was showing at Indiecade East, as part of the Sony PlayStation 4 section.

MG_indiecade_east

I received some really great feedback from this last showing, both in terms of how to refine world 001 and how to set up the pacing for the entire game.

There were two playtest sessions that really stood out to me.

(SPOILER ALERT)

In the first, the playtester had found her way outside in world 001 after solving the initial indoor puzzles. She had lit up one the first laser beam, and had more or less figured out that she needed to get to the other islands and light up the laser beams there.

However, even though she knew where they were, once she got to them, she wasn’t able to orient herself correctly to access the entrance. This was because she wasn’t approaching the island from the center tower, so she would land on the “side” of the island. Because she kept landing on the exit door, which didn’t have a surrounding ledge, there wasn’t a surface for her to orient herself correctly. As such, she kept falling off and getting frustrated.

entrance_exit_room_circled

ManifoldGarden_2016-05-03_20-22-28

This was unnecessary frustration. She had already solved the basics of the outside puzzle, in that she knew what she needed to do. The problem she was facing was an execution one, which is not in line with the goals of the game.

The solution is to simply add a ledge around the exit room. This provides a surface for the player to rotate onto to correctly orient themselves with the entrance room.

ManifoldGarden_2016-05-03_20-33-55ManifoldGarden_2016-05-03_20-34-09ManifoldGarden_2016-05-03_20-35-48

In the second playtest session, I had gone out to lunch, and had come back to see the playtester had made it to about the 4th world (which means he had been playing for about 1 hour). I asked if he had started from the beginning, and he said, yes, and then I asked him what he thought of the game. At this point, he didn’t know I was the developer. The gist of his feedback was: the puzzles were good (he was obviously engaged having played the game for about 1 hour), thought the architecture was cool, but was starting to wonder why he was solving the puzzles. What was the purpose?

He explained that he wasn’t a puzzle game player normally (he had played Portal only), so for a puzzle game to really grab his attention, it needs something more than puzzles.

This was very helpful information for me. While Manifold Garden doesn’t have an explicit narrative with characters or voiceover or text, there is an implied one. There is mystery to be discovered. What this playtest session informed me, is that I need to introduce this mystery within the first hour.

The puzzles and architecture are clearly engaging enough that even a non-puzzle game player will play for an hour. However, at that point, they are starting to wonder why they are spending their time doing this when they could be playing something else. The prospect of more puzzles as a reward is not enough. There needs to be a sense of purpose.

I had the beat where the mystery is introduced, but not until 1.5 or 2 hours in. Now I know I need to move it up and introduce it earlier.

Personnel Change

An update on the situation, since some people have been asking questions.

David Laskey is no longer working on Manifold Garden.

In the end, things just didn’t work out, and I decided to look for a new programmer.

New Programmer Search

The search for the new programmer is going well. It’s been very busy. So far, I’ve gotten about 60 applicants. This was quite surprising to me, as I only posted about the job on twitter for a few times, and didn’t put it on any job boards.

It has been incredibly time consuming going through all the emails and resumes, scheduling interviews, checking references, etc. Last week I got very little done in the way of actual work.

I hope to finalize everything within either this week or next week.

I’ve also learned a tremendous amount about the hiring and job application process. One day I will write a more detailed blog post about.

Moving Forward

This week I’ll be adding in the feedback I received from Indiecade East. I’m now at a point in the development of the game where I need to start thinking about launch. I need to start looking into logistics of releasing the game – setting up infrastructure for beta testing, setting up a steam page, etc.

To be honest, things have been quite difficult without a programmer. My estimate is that I’ve lost about 6 months of work-time (taking time away to do interviews, working with inefficient tools, legal overhead, the new programmer having to catch up on codebase, etc). It’s very possible this will push back my original planned release date, but I just have to make the best out of my situation.

I am still able to work with existing tools to create new levels and test out pacing in the game, so that is what I will be doing in the next few weeks. I’ll be meeting up with the design club here in Chicago soon to go over what I have planned.

This summer is going to be a super busy one, but I’m looking forward to getting into a cycle of iterating and playtesting.

 

 

Programmer Search, PS4 bug, Indiecade East, Twitch

A major part of the last several days has been the search for a programmer to help me finish Manifold Garden. It’s been very exhausting, but also really eye-opening. It has definitely been a learning experience.

Earlier last week, I met up with the Young Horses, the creators of Octodad. They’ve been looking for an environment artist to joined the team, so I talked to them about how they’re going about searching for someone and what their interview process is. It was very informative.

I tweeted about the job post daily for about a week and also sent it to a few mailing lists that I’m on. I got quite a lot of applicants, and it’s actually taking me quite a while to go through all the emails and respond to everyone. (If you sent it in and haven’t heard from me, I will be responding soon.)

Anyway, it’s my first time interviewing people for a position, and I’ve learned a tremendous amount. One day I would like to write a full blog post about this.

PS4 bug where everything is rendered on top of each other

Due to a null reference bug, on the PS4 build, all the renderers for the different levels were getting loaded in simultaneously. It actually made for a really cool looking level. It was unplayable, mostly because you couldn’t tell which things had colliders, but it definitely gave me a lot of ideas for some new levels.

10.0.0.90-20160418-0029 10.0.0.90-20160418-0030 10.0.0.90-20160418-0033 10.0.0.90-20160418-0034 10.0.0.90-20160418-0037 10.0.0.90-20160418-0039

Indiecade East

I’ll be at Indiecade East this weekend. Manifold Garden will be playable at the Sony booth. Need to submit a build to Sony by Wednesday. It’s looking pretty good so far so I’m not too worried.

Twitch Front page of creative

twitch_devstream

Starting last week, Twitch has been featuring my channel on the front page of the creative channel! It’s been really amazing. The concurrent number of viewers went from 20 to over 100! The most I had at once was 150, which was pretty awesome. Also really positive feedback. Lots of people learning about the game and getting excited about the art style.

My stream schedule now is basically every weekday at 3pm CT / 20:00 UTC.

Pacing Across Levels

Starting to spend time thinking about pacing across levels. It’s a very different challenge than pacing within level, especially because everything in the game is seamlessly connected via portals.

I’m still figuring out the proper workflow and what works and what doesn’t. Will aim to keep updates about that process here.

GDC Talk, Portals, and World 002 WIP

The GDC talks from this year have finally been uploaded to the vault. Some of the talks you need a vault membership in order to access.

Fortunately, my talk, “Level Design in Impossible Geometry” is up on the vault for free.

level design with impossible geometry

 

It covers my approach to designing levels in Manifold Garden, and goes into detail of what impossible geometry is. I explain how to image world-wrapping in 3D, and the talk also has some general guidelines that I’ve found to be useful when working with really confusing geometry.

Portals

We finally have portals working in the game now! Well, technically, I had portals about 2 years ago, but the system has been completely overhauled. It ties together with level loading, so is an incredibly complex system. David has been working on it for the past several months. It’s still not complete yet, and there’s still a lot of problems, but it’s really awesome that a basic version is now in place.

This is a significant milestone because portals are the glue that hold the levels together. I’ve mentioned this before, but in the game, there are no loading screens (aside from the first one), and no level select menu. The entire world of the game is seamlessly connected. However, up until now, because portals were not in place, each area had to be tested separately. I could not test for puzzles that took place over multiple levels. I could test for intra-area puzzles, but not inter-area puzzles. Now, with basic portal functions, we can start testing the game as one continuous flow, which is very important.

To connect the portals, David made a great tool, the portal path maker:

portal path maker

Each node is a level, and inside the node is the portals that are contained in the level.

To connect two portals together, I simply need to click on one, and then click on another. The lines show the connections between the portals, which is very useful.

Portal design:

The first version of the portal looked like this:

Portal Going Through

It was similar to the way the portals are in Portal. Stepping through it took you from one world to another.

However, I didn’t really like the way this looked. Looking into the portal, if the other side was a room similar in size to the room you’re currently in, the perspective didn’t look to be that different.

Plus, there is the issue of the edge detection shader picking up the edges of the render texture:

ManifoldGarden_2016-04-10_19-25-08

Note that the other side of the portal has the shadow all screwed up. This is apparently a problem on Unity’s end when doing with the particular view matrix being used here. Supposedly it will be fixed in Unity 5.5, so going to wait to upgrade to that.

Here is the new portal design:

portal going through wormhole

The black zebra stripes were initially placed there to deal with the edge detection issue. The black material covers up the edges due to the render texture, and makes it feel seamless. The stripes also really stand out – the pattern is never seen anywhere else, and it’s a very striking effect when walking down the tunnel. Plus, the tunnel view really enhances the difference in perspective of the portal when looking through it, the sense that there is this other world and the geometry is bizarre.

Right now the tunnel is actually it’s own separate scene, but I think we can make it an area in the same scene (just far enough away that the player can see it), so that the portal into it is an intra-level portal, as opposed to an inter-level portal. It may give us more breathing room in terms of loading and unloading levels.

Loading Percentage

loading percentage

Another really cool feature that David added is that the levels are now enabled or disabled in piecemeal, instead of either being completely on or off.

In the above picture, you are in World_001. On the other side of the portal is World_031. You can see that both levels are loaded in 100%. Both levels are actually in same spot, but the colliders for World_031 don’t get switched on until you cross over, and it is on a different camera layer.

As you step near a portal, the level on the other side gets loaded in. Right now, the condition for loading in the level is when you’re 20 units away from a portal, but this can be tweaked according to each situation.

Wold_002 Work In Progress Pics

Here are some images of the level I’m currently working on:

ManifoldGarden_2016-04-09_14-26-35 ManifoldGarden_2016-04-09_14-28-03 ManifoldGarden_2016-04-09_14-29-03 ManifoldGarden_2016-04-09_14-31-16 ManifoldGarden_2016-04-09_18-37-05 ManifoldGarden_2016-04-09_18-37-21 ManifoldGarden_2016-04-09_18-38-26

Invert Mode

In this update, I’m going to talk about this new mechanic that I’ve added to Manifold Garden, at the moment known as “invert mode”. It’s still a work-in-progress, but I’ll be discussing its origin and its current state.

Origin

Earlier in December, Ryan Clark (the developer of Crypt of the Necrodancer) started doing a series of streams in which he analyzes an indie game’s “market potential”, using methods he’s developed over the years. Ryan wrote about his process in this gamasutra blog post: “What Makes an Indie Hit?: How to Choose the Right Design”,

I found the article really informative, and had actually wanted to ask Ryan about Manifold Garden. So when I heard that Ryan was looking to start streaming this process with games currently in development, I immediately jumped at the opportunity. I guess I jumped pretty quickly, because Manifold Garden ended up being the first game to be looked at.

Here’s the Twitch archive of the stream: http://www.twitch.tv/ryan_clark/v/29451504

Here’s the chart of the analysis at the end of the stream (click on image for larger version):

manifoldgarden_ryanclark_stream

s you can see, there are several factors that Ryan uses to get an estimate of a game’s market potential. The biggest thing I took away from the conversation was that Manifold Garden had low “post-play virality”. This isn’t to say that the game isn’t good. What it was, was that a lot of what was exciting about the game, the architecture, the geometry, they were all shown in the trailer or in the description of the game. Those were in the “pre-play virality”.

I realized I needed more of these “wow” moments in the game, that makes people want to remark and tell others.

If you look at the chart, you can see that Starseed Pilgrim has low pre-play virality ( 0.8 ), but very high post-play virality ( 1.3 ). Keep in mind that these numbers are super hand wavey, but it’s more about their relation to the other numbers. Plus, there were discussions within the chat about them as well.

Starseed Pilgrim has low pre-play virality because the art style didn’t stand out, and the trailer didn’t really do a good job of conveying what you did in the game. It was hard to see what was special about the game without playing it. This was actually quite consistent with my initial impression of the game.

However, Starseed Pilgrim has very high post-play virality because a lot of people who played it saw its brilliance, and would go on to tell others about it. This is largely because what makes Starseed Pilgrim special is the way the game makes you explore, and the intricate dance it does with its systems. These are not things that you can derive before playing the game, only after having played it.

I started to think about how I can improve the design of Manifold Garden to have more special moments like in Starseed Pilgrim that encourages post-play virality.

The other takeaway was comparison to Antichamber. Now, if you’ve been reading this blog, you’ll know that I know this already. Comparisons to Antichamber is inevitable – both games draw inspiration from Escher, are puzzle games of the mind-bending variety, and have minimalist art styles with edge detection. I don’t think being compared to Antichamber is necessarily bad, and is certainly much better than being generic and being compared to Portal… However, it’s more from a personal artistic standpoint. I’m not trying to make a bad Antichamber clone and don’t want to come across as that. How can my visual stand out from Antichamber even more?

Invert Mode

Invert mode started as a purely visual experiment. However, it looked quite cool, so I thought it’d be worth exploring it as a mechanic to fit within the game.

Here’s the first tweet I posted about it:

twitter_invertmode

The visuals:

manifoldgarden_invertmode

manifoldgarden_invertmode01 manifoldgarden_invertmode02 manifoldgarden_invertmode03

As you can see, the visual was quite rough. Pretty much all I did was invert the colors in the edge detection shader. At the time, I was still keeping the fog color to white, so things further in the distance faded to white as a result. There’s also no color fade in the lines – they’re white all throughout, so they do not create a sense of depth.

This also resulted in a very sudden “pop-in” effect when the world wrapping happened. This is very clearly seen in the picture below. Note how the geometry in the distance just cuts off suddenly:

manifoldgarden_invertmode04

Eventually, I rewrote the edge detection shader so that I was able to change the color of the edges and choose whether to have the lines fade to black or white in the distance. I also realized that by changing the fog color to black, I can get a really nice fade in the distance.

manifoldgarden_invertmode05 manifoldgarden_invertmode06

What do you actually do in invert mode?

The first thought of a mechanic that could work well in invert mode is taking away the ability to change gravity.

I was thinking of the way Starseed Pilgrim and Ridiculous Fishing are designed, in which the player goes through the same level, but experiencing it completely differently. In Starseed Pilgrim, when you go into invert mode, the platform becomes space, and space becomes platform. In Ridiculous Fishing, first you go down, avoiding all the fish, then you go up, and try to catch as much fish as you can.

To me, this is a really interesting idea, as it gets the player to think with duality during the first stage of the game.

Richard Terrell coins this kind of level design Folded Level Design, which I think works very well.

folded level design

Removing the ability to change gravity seems to be part of this, because now the player has to navigate through the same level, but experience the architecture differently. Now a wall is no longer a path, but an actual barrier.

I was also thinking about other ways in which the theme of “inversion” could work. One way I thought was to reverse the puzzle path flow.

In normal mode, you can grow trees from boxes. These trees then grow more boxes, which you can pick off and place on buttons to trigger various things.

normal-mode---tree-to-button

So in invert mode, you’d take a box off a button (which you’d have to turn on first), and then bring to a tree (a special invert tree):

invert-mode---button-to-tree

Some other ideas here:

you have to pick up the special invert box to enter into invert mode. Dropping it brings you back to normal mode and resets your position. The reset to normal mode is not instantaneous – instead, there is a fade to white. When the fade is complete, you’re back to normal mode. However, this means that while it’s still fading, you can pick up the box again, and it’ll cancel the fade and keep you in invert mode:

invert-mode-release-box-fade

I was also thinking the trees could have the same effect? So if you walked up to a tree, it would also cancel the return to normal mode, allowing you to extend your time in invert mode longer without carrying the invert cube. Not exactly sure what you’d do with this though:

invert-mode-tree-reset

I also spoke with Chris Bell, one of the designers on Journey, about this, and Chris has some issues with it. I will put that on the next post as this is getting quite long.