Development Update – Poster Readability

Earlier, I showed the poster designs to TrinketEric (who’s actually the artist on the beautiful Battle Chef Brigade, which just recently got a devloghere that you should all follow!) and he suggested a simple way to improve readability would be to have a very faint semitransparent fill inside the outline, using the off-white color in the background.

Just tried it now, and it works beautifully! Check it out:

poster_readable_01 poster_readable_02 poster_readable_03

Post-Mortem: The MIX Showcase @ SIGGRAPH

Hey all! I was in Vancouver last week showing Relativity at SIGGRAPH as part of the MIX Showcase. Overall, I had a really positive experience, and got some really useful feedback. Showing at SIGGRAPH was very different from my experience showing at more game-centric conventions/conferences like PAX and GDC, so I’ve decided to write up a blog post about it.

SIGGRAPH
SIGGRAPH is an annual conference that focuses on computer graphics and interactive technology (the emphasis seems to be more on graphics though). For the last 10 years or so, the conference would take place in LA every other year, and take place in a different city in between. This year, it was in Vancouver.

The interesting thing about SIGGRAPH is that there are a lot of academics presenting their latest research, as well as industry people talking about their production pipelines.

Application
I first learned about the MIX through their showcase at E3. I had originally planned to submit Relativity to that, but didn’t do it because of timing issues, and also I wouldn’t have been able to make it out to LA then. When I saw that they were doing another showcase at SIGGRAPH, I decided to submit this time. I sent in an application to exhibit via the MIX website at the end of July, and heard back from the organizers a few days later.

I was actually on the fence about whether to go or not. I asked around the Chicago indie community to see if anyone had been to SIGGRAPH before, and not very many had. And the few who did, had gone many years ago, and weren’t actually sure if the trip was worth it.

In the end, I figured, from past experiences, I always get a ton of really useful feedback from showing at conventions. And since I’m not going to PAX Prime this year, this could be a really great opportunity to test out the recent changes I’ve made to the opening level. Plus, after 2 days of searching through every travel website, I managed to find a reasonably-priced roundtrip ticket from Chicago to Vancouver.

The Expo Hall
I arrived in Vancouver on Monday, August 11th. SIGGRAPH had already started the day before, on the 10th, but the exhibition itself was from the 12th to 14th. I had originally planned to go to a bunch of talks on Monday after I got the booth set up, as I thought I had a full conference pass for being part of the showcase, based on wording on the website. Also, for GDC, if you get into the IGF, you get a full conference pass that lets you into the talks.

As it turns out, I only had an exhibitor pass, which didn’t allow me into any of the talks, so my original plan didn’t work out. I was pretty bummed out about this, as I had been really looking forward to hearing some of the technical talks, and had even invited a friend along… Oh well.

The MIX Showcase was in the main expo hall. The vibe was quite different than other events I’ve shown at, as most of the other exhibitors were either third-party middleware or 3D modeling programs. I didn’t get to walk around too much, but I don’t recall seeing another game-only booth, that wasn’t just tech demos.

The set up of the MIX Showcase itself was very cool – basically it was an area around 20′ x 20′, with 12 booths on the perimeter, all facing outside. Monitors and peripherals (keyboard, mouse) were supplied, which was really helpful. I think there were supposed to be PC’s as well (these weren’t promised), but there was a problem with customs, so those got held up.

In any case, I highly recommend always bringing a laptop and any of the peripherals you need when you go to exhibit, just in case.

Here are some pics of the booth setup:

IMG_5966 IMG_5934

For me, this was definitely one of the best booth set-ups. There was a lot of room for each developer, and because all the booths were facing outward, everyone got equal amount of visibility. the booth itself was also quite nice. There was a compartment underneath where you could lock up your computer and hide your cables, as well as a keyboard tray. I found the height of the keyboard tray to be a little low, and there wasn’t really enough space on it for both a keyboard and a mouse. So I ended up placing the keyboard and mouse on the top surface, and placing the controller in the tray.

This worked out really well. If you recall from my Indie MINIBOOTH post-mortem, one of the complaints players had was that the keyboard was placed too low, while the monitor was placed too high, so for a lot of them, their wrists would get cramped up after playing for a while. Having a controller helped a lot, as did the higher placement of the keyboard and mouse. (You can see in the top picture, it’s set up this way. The bottom picture was taken earlier).

I was in the corner, next to Brendon Chung of Blendo Games showing Quadrilateral Cowboy.

Inside of the showcase area, there was a rest area with a few couches and a table where the MIX provided some snacks and lots of bottles of water. This was super awesome, and I wish more exhibitions were set up like this! It gets super tiring standing on your feet for 9 hours a day, and this was like an oasis in the desert.

Day 1
For the first day, I did the exhibition pretty much like the way I did it at PAX East – I’d stand next to the booth and invite people to try out the game.

I soon noticed 2 problems with the current build of the game:

1) Intro loading time is too long – the game is completely seamless, which is done by loading all the scenes at the very beginning. This results in a load time that’s about a minute long. This may not be a huge problem for players at home, but for a convention setting, it’s way too long. The current build of the game has about 6 hubs, but most players don’t make it past the 2nd hub, so why was I taking up all this extra loading time loading scenes people don’t even get to see?

2) I had to explain instructions each time – The game would show the instructions in 3 panels after players clicked “new game” but before the loading time. However, because the loading time took so long, I would load up the game while waiting, so that new players could jump right in. This meant that people didn’t see the instructions, so I would have to explain the instructions. This was a problem because a) it was extremely exhausting to do this for 9 hours, and b) I was missing the opportunity to see the design problems of the intro. If I was explaining the concepts, then I was not letting the game do it. And in this way, I was failing to see the design flaws in the game for introducing gameplay.

Day 2
This time, I decided to take a slightly different approach. Instead of standing next to the booth, I would stand elsewhere so I can observe players at a distance. I find this to be much more painful, because you’ll see players struggle, and walk away from you game in just a few minutes. It’s like you don’t have the opportunity to defend yourself.

But it’s also the best way to playtest, because you’re just letting the game speak for itself.

I found a good setup for this was to point the laptop inwards, like this:

IMG_5948

This way, players wouldn’t feel pressured to play like someone was watching them, while I could keep an eye on what was going on in the game, all from the comfort of one of the couches in the rest area!

Of course, when I saw people struggling with some parts for a while, I would go up to explain the controls. I would also talk to some people after they were done playing, especially if they played for 5+ minutes, to get an idea of what they liked and didn’t, and what they found to be difficult or too easy.

Day 3
The third day was a lot slower – it was the last day of SIGGRAPH, and was also a shorter day, with the exhibition closing at 3:30PM instead of 6 PM.

I found I had more time to discuss design details with people who played the game.

In fact, one of the biggest design breakthroughs came from a conversation I had with one of the playtesters.

He had played for quite a while, and when he was done, I approached him and asked what he thought. He said he really enjoyed the pacing and the mechanics, but what bothered him as an environmental artist, was how low the ceiling for the staircases were.

This was actually an issue I had received feedback from others about, but I thought that because I needed the stairs to be the same right side up, as well as upside down, there was no fix for this, that it was just something I had to deal with for the game.

I started to tell him this, but then he told me that all I needed to do was to stagger the staircases, like this:

Before:stairs_before

After:stairs_after

As you can see, by pushing the top staircase back a few units, I’ve greatly opened up the space inside. I couldn’t believe this worked. I didn’t think there was a solution to the problem of tight stairs, but here it was, and so simple too!

Again, my response at the time can only be summed up as a gif:woah

Here’s how the in game view of the staircases compare:

Before:BnaGSVE

After:Relativity_Game_Screenshot-2014-08-16_18-21-23

The new staircase isn’t finished yet, but already you can see that the ceiling is lifted and doesn’t feel like it’s bumping into your head.

New Friends
As always, the best and most memorable part of showing the game at any event is getting to know the other developers. This was no different, and I had a blast hanging out with everyone.

group_photo

Here’s a list of the studios (other than Yours Truly) that were a part of the showcase, and the games they were showing:

Conclusion
All in all, it was a ton of fun, and a very rewarding experience for me. I realized that the opening level had a ton of design flaws, and was really happy to have finally caught them. I will be making these new changes and testing them in the upcoming weeks.

Development Update – Moar Windows & Debugging Lesson

Hey all! I’m currently writing this devlog from Vancouver. I arrived here earlier today to showcase the game at the MIX Showcase at SIGGRAPH.

I’ve got some down time since the exhibition doesn’t start until tomorrow, so I’ve decided to write an update here.

Hub Level Windows

Much of the past week was spent working on a new hub level. The overall structure of the level was quite simple, so this meant I had room to elaborate on more “decorative” aspects of the architecture, which is mostly just the windows.

I ended up having a ton of fun coming up with different window designs:

relativity_windows_01 relativity_windows_02 relativity_windows_03

What I love most is the pattern of the shadows that are created as a result. It’s hard to predict exactly how they’ll fall when I’m creating the windows, so it’s kind of a nice visual bonus.

I think it ends a lot to the perception of the space, and also makes the aesthetics even more different from Antichamber, since that game didn’t have any shadows.

Here’s a shot of the exterior of the same hub level:

relativity_windows_04

And here it is with the repetition world effect implemented: relativity_windows_05 relativity_windows_06

Mysterious Shadows & Big Lesson In Debuggin

For several months now, I kept noticing this weird bug that would appear when I was showcasing the game. Basically, this set of circular-blob-like shadows would appear and stay in front of the player in different locations, like this:

relativity_debug_01 relativity_debug_02

 

One of the strange parts about it was that the shadow would lay out evenly on geometry, regardless of notice. For example, notice in the second image, the circular shadow is split between the blue floor and the white wall, but is still keeping its shape.

At first, I thought this was due to some objects in the scene in the distance that was casting the shadow. Since all the levels are loaded at the beginning of the game and then set inactive, it’s possible I may have missed some, and they were the cause of these mysterious shadows.

I figured it would be a fairly simple fix – just find the culprit objects, and make their meshes not cast shadows, so I kept putting this problem off.

Last night, I decided to finally look into the problem. It turned out to be much weirder… the shadows only appeared when I was running the game on my laptop! When I ran the game on my desktop, either inside the Unity editor or as a standalone, this is what it looked like:

relativity_debug_03

 

See, no weird shadows! (ignore quality of pics – I took them with my phone pointed at the monitor)

Ok, that’s really weird. I posted the problem on twitter, and several people offered suggestions – changing shadow quality, changing view distance, etc. Someone also suggested updating graphic drivers for bootcamp, since I mentioned i was running windows on a macbook pro via bootcamp. However, I thought this was too simple, and would have expected a problem w/ graphic drivers to be more of an “overall” effect.

Anyway, I ended up spending about 3 hours, changing different settings on the project on my desktop, making a build, transferring file to my laptop, and testing out the change. All in all, I made about a dozen builds, but nothing worked. It was an incredibly frustrating problem to debug.

Towards the end of the night, I was all ready to give up, but decided to see if the issue was the graphics card. I made an OSX build, then restarted my laptop in OSX, and lo and behold, the shadows were gone. So it’s not a problem with the graphics card…

Finally, I checked the status of my graphic card driver – the computer said it was up-to-date, but when I went to the Intel website to compare, the version numbers of the graphic card drivers were different.

So I downloaded the latest driver, ran the game, and boom! No shadows:

relativity_debug_04

 

My feeling then could only be summed up as a gif:facepalm

 

I learned an important lesson in debugging last night: always try the simple solution first!