Stop Asking Me Unity VR questions! The Hidden in Plain Sight Post-Mortem

In-between making a game for Ludum Dare game jam, we were also responsible for organizing the Tech Valley Game Space Ludum Dare real-world meeting, and acting as a tutor for the Unity application in a VR Hackathon at Tech Valley Center of Gravity. While we have dealt with being an organizer and making a game at the same time in the past, it turns out being also a tutor for this jam proved to be a difficult task to juggle. Looking back, it feels like a miracle that a decently popular puzzle would come out of this hectic and stressful schedule. Here is the Hidden in Plain Sight post-mortem!

What is Hidden in Plain Sight

Hidden in Plain Sight is a 3D puzzle-platformer where the player character is, by default, invisible. Her silhouette, however, reveals an invisible dimension (similar to the Lens of Truth from the Legend of Zelda: Ocarina of Time) that she can interact with. Most puzzles rely on using the proper camera angles and character placement to simultaneously reveal the character, and navigate and/or use invisible elements in the game.

What went right

Taking inspirations outside of video games

Perhaps unsurprisingly, Hidden in Plain Sight‘s visuals are strongly inspired by René Magritte’s paintings, such as La Grande Famille:

While the visuals themselves may be well-trodden ground for the art world, putting them into a game form created an innovative experience for many players, such as the Let’s Play posted above.

Using built-in Unity features to implement the visuals

More surprisingly, putting together this “cut-out” visual effect was actually quite easy. The result is from a clever combination of using multiple cameras, render textures, and UI mask element, as revealed in this Twitch video: twitch.tv/japtar10101/v/63371555.

UI Mask

We did try to create a set of shaders for better performance, but quickly abandoned it when realizing we were neither knowledgeable nor quick enough to put it together in a short time frame.

Experiment early, experiment often

During the second of the four-day development, we spent an ample amount of time experimenting with this visual effect. Those following our Twitter account may recall this animated GIF below:

ldjam35-1

At this time, we discovered a number of important attributes with our game:

Polishing the visual language

The most basic rule in the game, “only objects you see through your character can be interacted,” was actually not finalized until the third day of development. Originally, any object regardless of how it was made visible could be material…or not. After a lot of experimentation, we realized that we ourselves couldn’t figure out what was interactive, and what wasn’t. To fix this, we implemented the rule above to create a more consistent visual-to-interaction language.

We also experimented with creating other methods of figuring out where your character was, such as creating a small cloud wherever she stood. We removed those details, however, when one of our play-testers pointed out that not being able to know where your character is all the time felt like a vital aspect of the game’s experience. Instead, we made interactive objects large and obvious from a distance, especially if they’re invisible.

big switches

We wanted to make sure the effort of finding that one switch was as fair as possible, so on top of making them large, we added a line that connects them to the door they activate, allowing the player to trace back the switch’s place.

Keeping platforming to a minimum

Having an invisible character poses a number of challenges that we had to work within. For example, we kept the platforming easy and to a minimum. Since your character is invisible in most locations, it’s difficult to gauge her position, and thus making the platforming difficult. Even with easy platforming, we went an extra mile to add mid-air controls that were missing in Unity’s Standard Asset 3rd-person controller script, so jumping would feel more natural.

What needs improvement

Less volunteering, more time to work

Those who saw our time-lapse video may have found the introduction to it really strange: instead of showing our brainstorming or development process, it shows a bunch of slides on how to create Unity VR applications.

In fact, we had volunteered to teach how to make VR applications to a hackathon occurring at the same place and time as our game jam. Fortunately for everyone involved in both events, the organizers were able to manage ourselves to different rooms, minimizing any possible annoyances. Unfortunately for volunteers such as ourselves, some of our time were taken helping both events, even if we were also working on a submission for either events. In our case, this manifested in answering any Unity VR questions, including giving a presentation at the beginning of the second day of Ludum Dare. The time loss wouldn’t have been such a big issue if we’ve allocated our time and efforts accordingly. Sadly we did not. Instead we were hit with the dreaded…

Feature creep

By the third day of development, we started adding multiple different invisible characters.

ldjam35-2

Originally, the game was meant to be about making human connections. In that sense, the non-interactive NPCs in the final game was a deliberate mechanic to emphasize how lonely your character is. To counteract this rather depressing fact, we tried to create Pikmin-like helpers that followed your character around. This feature, as with many other ideas such as switches that requires more than one person to hold down and an actual storyline had to be scrapped, despite a ton of time being spent on each of those features. This was easily the biggest time loss, and one we’re guilty of not-quite-learning.

Unclear visual cues

Notice the weird off-color floor in the screenshot below? That’s the area the movable block can be moved around.

Block Tracks

Practically no one understood that’s what the off-color floor stood for. For all the effort we’ve put into polishing the presentation and readability of the game, there are many places where we failed to portray what the visuals meant effectively. And that’s before we get into the (very few) platforming sections in the game. While the screenshot above provides a near-perfect solution to make it clear your character is walking on top of the block, we don’t use the same solution for the platforms themselves. Instead, the platforms in the final game looks exactly the same regardless of whether you’re looking through the character or not, resulting in this monstrosity:

impossible platforming

Leaving level and audio design to the last day

Due to all the feature creep, we’ve left level construction and audio polish to the very last day of development. This lead to a very short and unpolished game, such as blocks being pushed not necessarily playing the push sound effect, or the gap in the last level that makes the world beyond the walls in plain sight. Given how rushed the level design was, it sometimes surprises us when someone compliments how they liked the game.

Edit: Research the title before posting

As many people have notified us, there is already another game named Hidden in Plain Sight by Adam Spragg (note: it plays nothing like our game). Obviously, we should have researched the title properly before posting it on various web portals.

What to do next

Like most game jammers, time wasted in things that does not show up in the final product has been our biggest stumble block. We definitely need to divide our volunteering time more smartly so it would not conflict with a game jam, or else we’ll leave more than one person disgruntled. We should also be quicker at abandoning time-consuming tasks, and design around the lack of that feature.

While our experimentation time is serving us well in identifying some issues early, it failed to find other problems that became more obvious once the levels were laid out. As such, we should allocate more play-testing sessions to find them more easily, especially after some of the levels are constructed.

New Ludum Dare game: Hidden in Plain Sight

Ludum Dare 35 has come and gone, but not without a new game! We’ve attended the Jam (team development challenge) to try something completely different: make a surreal puzzle-platformer where your character’s silhouette reveals a hidden world. The journey was full of treachery and danger (read: distractions), but we finished what we set off to do! Our new game is Hidden in Plain Sight, created solo by Taro Omiya. Oh yeah it’s open-source, too!

Full Description:

A lone woman finds herself stuck in-between two dimensions, and only you can help! Guide this person to salvation using environmental cues and your own smarts. Hidden in Plain Sight is a unique puzzle-platformer where your character itself reveals a new hidden world. Use the visual cues in both the real and hidden to navigate through this treacherous world!

Note: a 3-button mouse (mouses with scroll wheels) is necessary to play.

Controls:
* WASD to move
* Space to jump
* Left-Ctrl to crouch and crawl
* Move the mouse to look around
* Use mouse scroll-wheel to zoom in and out
* Esc to pause

Created in:
* Engine: Unity
* Graphics: a combination of Unity Standard Assets, Unity-chan (Candy Rock version) and Autodesk’s free Character Generator.
* Music: GarageBand, something I made a few days ago
* Sound Effects: Unity Standard Assets and BFXR
* Font: Fira-Sans by Mozilla

This game is funded through Patreon. Many thanks to the following:
* Adam R. Vierra
* Joshua Jennings
* XanderHD
* Tommy Pedersen
* Jacob Clark

Made in Tech Valley Game Space!

If you can, please rate the game, and let us know what you think!

Link to Itch.io: https://omiyagames.itch.io/hidden-in-plain-sight

Link to GameJolt: http://gamejolt.com/games/hidden-in-plain-sight/142011

Link to Ludum Dare voting page: http://ludumdare.com/compo/ludum-dare-35/?action=preview&uid=20557

Some screenshots!

The Joyride updates!

Last time, we hinted that Astra Wijaya had some new updates to show off. This week, we’ve got some GIFs to cover those updates!

CerealJoyride

JetbootsJoyride2

In other news, we were hard at work submitting to the MAGFest Indie Video Game Showcase these few weeks, so if it sounded like we disappeared again, it’s actually due to tight deadlines and upcoming holidays that’s been breaking up our update schedule. Still, we can say with confidence that since our commitment to simplify and lengthen the game, Not a Clone has been drastically improving. While playtesting from a few months ago resulted in a lot of confusion, our local demonstration this month at the Rensselaer Game Showcase and TVGS’ monthly Interactive Showcase were exceedingly positive. We still have a lot of work left to do, but we can assure with the latest feedback that the game will be much more fun than the original prototype!

New trailer, game over screen redux, and more!

Many apologize for the super-late update. We’ve had a lot of events occur between updates, including a move to the new office!

The New Office!
The New Office!

But that doesn’t mean we didn’t make any progress. First is a new trailer that includes our updated menus:

Naturally, the new Top Charts is the highlight for this trailer. Next up, the Game Over has a new two-page look to it. We’re still developing the screen, but here’s a brief preview:

Score Screen
Score Screen
Played Games List Screen
Played Games List Screen

Lastly, Astra Wijaya is at it again with a new concept art for a minigame. Can you guess which one?

NotACloneScreenshotSaturday6-3

New game: Amanda Cluett

Hello, all. This weekend, we’ve attended Tech Valley Game Space‘s Local History Game Jam. So, yup, we have a new game out, and an educational one to boot! Amanda Cluett is an idle game about…well, Amanda Cluett. Revealing more would be a pretty big spoiler, so check it out and let us know what you think!

Link to Itch.io: http://omiyagames.itch.io/amanda-cluett

Link to GameJolt: http://gamejolt.com/games/amanda-cluett/93068

Can I Haz Monsters? Rating Analysis

Hey guys. Seeing that this is my (Taro’s) fourth Ludum Dare (and first for John), I figured it might be a good idea to look into how I’ve been doing for the past few entries. First with the latest: how did Can I Haz Monsters? do?

canIHazMonsters

canIHazMonstersRatings

Not bad at all! Certainly got my innovation groove back, which I’m really proud of. As mentioned to some Let’s Players, John Ceceri III was the one who pitched the game idea about adopting in an alien world, so kudos to him. I simply helped out simplifying that idea to something that can be implemented into the game.

In comparison, this is how I did in the previous Compos & Jams:

The Sentient Cube (Ludum Dare 26)

theSentientCube

Tragically, the first Ludum Dare I participated in was the first game I had to put down due to legal reasons. So no ratings, here. Even then, I was well-practiced with Unity and game jams in general, so it was pretty clear from the comments I was doing pretty well for a first-timer.

Laundry Day (Ludum Dare 31)

laundryDay

Screen Shot 2015-09-15 at 2.09.50 PM

Laundry Day was our first attempt at organizing a real-world meeting at Tech Valley Game Space. As a consequence, nearly the entire group participated in this jam, including dreamlogician and Brightstar. It was also our first time learning Construct 2! Ultimately, a lot of raters figured out our game was making fun of the free-to-play style games with pointlessly addictive gameplay, leading to high marks on humor.

Star Driller Ultra (Ludum Dare 32)

starDrillerUltra

StarDrillerUltraRatings

Star Driller Ultra was well-praised for its graphics and overall presentation. It didn’t do nearly as well on fun, which I extensively wrote a post-mortem about. Either way, it definitely was an improvement from the last two projects I’ve worked on. It certainly showed my talent on creating well-polished games.

Unconventional Stick Swinging Simulator (Ludum Dare 32)

usss

Screen Shot 2015-09-15 at 2.32.53 PM

And of course, the curveball: the joke entry, Unconventional Stick Swinging Simulator! This was just a fun exercise of getting a game done in 12 hours, so I figured I’d get low rankings here. And I was not disappointed!


Plotting everything together, here’s how I did (Audio and Graphics are assumed to be 0s if opted out):

RatingsProgression

PrecentileProgression

Overall and Innovation categories looks like a slow but progressive improvements, and I couldn’t be happier with that. Fun and Mood, on the other hand, are rocky. It looks like I might need to focus on these two categories a little more. Other than that, looks like things are improving smoothly!