Tuesday, April 8, 2014

The Last of Us: Factions Review

So I never gave The Last of Us' multiplayer mode ("Factions") any serious thought after finishing it in 2013. I guess previous games have taught me that online PvP experiences are drastically different than their single-player/story-mode counterparts. Maybe it's because you usually end up having to alter your play style; you can't try the same cinematic moves you normally do and have to rely purely on trigger reflex.

This can chip away at the integrity of a game's story mode since you're always comparing your online experience to what would have happened if that same interaction occurred in the storyline.

0.0001 seconds to pull that trigger or instant death

Well about a month ago after finishing the Left Behind DLC, I stumbled across some amazing youtube Last of Us reviews, including some that covered multiplayer. After watching a few I decided to give it a try and wow, it blew me away.

The Last of Us: Factions is, simply put, incredible. Why? Because it feels just like an extension to its single-player world. Not once have I felt like I needed to change how I think or move, simply because I'm fighting human opponents. Maybe that's just a testament to how good the AI is in Last of Us (that's likely part of it) but it seems more likely due to its design and structure. Here are some of my highlights.

Close Quarters Stays Cozy

Hand to hand fighting is just as up-close, violent, and desperate as in single-player mode. But those moments when you're out of ammo and decide to rush an armed opponent can still pay off, and boy are they satisfying as hell when they do.

I've never once felt like the game punished me for trying a brazen leap over a barricade to engage a pistol-wielding enemy with my 2x4, which is something I would often try as Joel.

Should've stayed home today

Crafting Under Fire

A big part of Last of Us is crafting items and weapons "in the moment" while you're constantly looking over your shoulder for trouble. This doesn't change at all in Factions. Items play a key role in winning but you're almost always sweating your way through it. It is possible to speed it up by taking certain skills but as with everything there are tradeoffs.

Also because craftable items are so powerful, you're constantly on the lookout for supply drops on each map (very much so like in single-player).

Crafting a shiv to use on the hunter around the corner

Listen For Your Life

Listening for enemies is still a crucial element in Factions. I remember so many times in single-player where you're holding your breath, praying that a nearby enemy will pass you by. They've preserved that element beautifully here and I've yet to play a single match that doesn't have one of these nail-biting moments.

Go left, go left, please go left...

Only the Strong Survive

The world in The Last of Us is immensely dark and gritty. It's dog eat dog and the match types offered in Factions are a perfect fit. There's Supply Raid, Survivor, and Interrogation. Supply Raid and Survivor are super fun and are the closest to the traditional deathmatch/attrition mode that most online PvP offers.

My favorite type however is Interrogation. Normally when an enemy is wounded they go into a "downed" state where they crawl around on all fours and from there you can perform a brutal execution on them by getting close. But in this you interrogate them instead to find the location of a hidden lockbox somewhere on the map. After five interrogations the location is revealed and it's a race to see which side can unlock the enemy's first. The closest game type I'd compare this with is Capture the Flag and it fits so well with the survive-at-all-costs mentality of the Last of Us universe.

Shivs make for a faster interrogation

I feel like it would be unfair for me not to mention a weaker part of Factions, namely the "clan" component:

A little soulless

In Factions you play a hunter trying to salvage supplies for your clan, an unseen group of survivors presented to you in the form of roving red and blue dots on a mini-map in the matchmaking lobby. Clan members can get sick or hungry, give you missions, or just idle around and do clan-member activities (presented in text form, "Billy Joe is going fishing at the creek").

I feel too much here is left to the imagination and they should've either removed this piece entirely or doubled down and made the entire online lobby an explorable survivor's camp (similar to Uncharted's Tibetan village experience)

No Fireflies here

How cool would it have been to be given missions by survivors who approach you or to see your clan grow by the number of wandering members as opposed to a simple number increase? Or if the method to initiate a match was by walking out the front gates into the wilderness instead of simply selecting "Find Match"?

I feel like that would've done more to create a believable and personalized bond between the player and their clan and was slightly disappointed with the dynamic we were given, especially from a game that did such an amazing job of making me attached to its characters. But I understand that building all that would've practically been an entirely new game in itself.


All in all, The Last of Us is by far one of the best stories that I've ever experienced, in any medium. But Naughty Dog has not only raised the bar on how well a game can tell a story, but also in how we play that game with each other while still preserving said story.

Factions doesn't take anything away from its single-player world and I'm eagerly looking forward to future titles that combine their story/online game modes so well.

Thursday, April 3, 2014

Turn your iPhone/iPad into an RSS ticker with Passive

So this post is pretty late but I'd still like to talk about an app I released last month called Passive. It's uber simple and I only spent a few weeks on it, but I couldn't find anything else in the app store that serves the same need. Basically it's a list of RSS feeds that you can follow and displays them as a scrolling ticker:

I got the idea after watching Her (If you haven't seen it, go do so now!) The movie focuses on AI and relationships but one thing that really stuck out to me was how passive all the technology felt. Lights came on by themselves as you walked by, phones and computers could just be spoken to; the effort it took to interact with technology was minimal yet the power and data that was readily available at your finger tips was incredible.

When I got home I sat at my desk and looked around. Why can't we have that sort of world now? There's a million changes going on around us at this very moment and why should we have to seek them out to know what's happening? 

Another thing I noticed was a neglected iPad sitting on my shelf. Passive is a great way to put unused iOS devices to work. By turning it on and letting it run, Passive will subtlety trickle breaking news and headlines (or even your tweets) across the screen. Then while working or walking by you can simply glance to the side to learn something new. If a headline warrants additional attention, tap it to open the full URL and from there you can save or share with friends.

I even went ahead and purchased an iPad wall mount so I can get updates when first waking up in the morning:

(not my actual hallway)

I know this post doesn't have much to do with VR but I really wanted to express how much I can't wait for a cool cyberpunk future. Let's all push in any way we can.

Sunday, December 22, 2013

Rift Command v0.13

Download: [WIN] [OSX]
I've never been that good at Missile Command yet it still holds a special place in my heart. Maybe it's because it's one of the first games I remember playing as a kid (I also just recently re-read the Wargames sequence in Ready Player One so that could be it) but regardless, I wanted to replay it with a rift.

You look in the direction you want to fire and press (1, 2, or 3) to launch a missile from that specific battery. Rift Command is pretty basic and I haven't had a chance to really tweak the balance yet, but as of v0.13 there's increasing enemy missile speeds, a persisted best score, and a couple different enemies that you encounter. 

If people get into it I'd like to add bonus cities and maybe even a global high score table :)

Would be great to hear any thoughts or suggestions anyone has or lemme know what's your best score! Mine so far is somewhere around 12,000.

Download: [WIN] [OSX]

Thursday, December 5, 2013

Signing a Unity game for the Mac App Store

A compiled list of the hoops you have to jump through for getting a game built with Unity 4.3.0f4 signed for the Mac App Store.

There's a handful of posts already on this but I found that many were out of date or missing a step or two. Terminal Commands are in Blue, Error messages are in Red, and any reference to Game.app or Game.pkg should be substituted with your game name. Let's jump in!

1. Create a Mac Installer Distribution and Mac App Distribution certificate on the developer portal.

2. In Unity > File > Build Settings > Player Settings...  make sure that Mac App Store Validation is turned ON. Then build your game.

3. Right-click your built Game.app file and select Show Package Contents. Under Contents... open up Info.plist and ensure that CFBundleShortVersionString and CFBundleVersion match the version set for your app awaiting upload on iTunesConnect.

You also have to add a string value for the LSApplicationCategoryType key and set it to your sub/primary category in the form of "public.app-category.subcategory-primary category" In the case of Wriggle 3D (a puzzle game) it was public.app-category.puzzle-games

4. From the Unity documentation: Fix the read permissions for your app with

chmod -R a+xr Game.app

5. Here's a tricky part. At the time of writing, you must download an older version of Xcode and use its codesign tool instead (Current version is 5.0.2). Download Xcode 4.6.3 and install it somewhere other than your existing Xcode location (so as not to overwrite it!). Then in your terminal export this variable:

export CODESIGN_ALLOCATE="path to Xcode4.6.3/Contents/Developer/usr/bin/codesign_allocate"

Skipping this step will result in later errors with the following message:

Game.app: object file format unrecognized, invalid, or unsuitable

6. Once you've done that, create an entitlements.plist file with the following entitlement (and others if your app requires them)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">

And run this command:

codesign -f -s "3rd Party Mac Developer Application: **Company Name**" --entitlements "entitlements.plist" Game.app

Skipping this step will result in later rejection with the following message:

App sandbox not enabled - The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list. Refer to the App Sandbox page for more information on sandboxing your app.

7. Now we have to codesign all *.dylib and *.bundle files in the following Game.app directories:
  • Contents/Frameworks
  • Contents/Plugins
8. After this, it's time to package the app with this command:

productbuild --component Game.app --sign "3rd Party Mac Developer Installer: **Company Name**" Game.pkg

8. Now under Xcode > Open Developer Tool > Application Loader... you should be able to upload Game.pkg to the store! Pat yourself on the back :)

Coming from an iOS developer used to working exclusively with Xcode, this is an annoying, but ultimately manageable, process. If you'd like to see the finished product that was submitted after all this, check out Wriggle 3D!

Thursday, October 31, 2013

Razer Hydra support added to World of Reddit (v0.15)

After a couple nights work I've added Razer Hydra support to World of Reddit. [WIN] [OSX] [LINUX] If they're connected you'll be prompted to bind the controllers by pulling the Left and Right trigger. The controls for using them are:

It's a lot cooler using these to navigate and you can even use them standing up. I'll try to record a video of this next week for those without a Hydra.




Sunday, October 27, 2013

6 Awesome cyberpunk songs for coding

Anytime while coding or using the Oculus I loop some music to get me in a futuristic vibe. Thought I'd jot down some of my favorites:

1. "Butterfly" - Bassnectar 

2. "Hayling" - FC/Kahuna

3. "Small Time Shot Away" - Massive Attack

5. "Blade Runner Blues" - Vangelis (of course)

6. "Window Seat" - Bassnectar

Thursday, October 17, 2013

World of Reddit (v0.1)

Welcome to World of Reddit! [WIN] [OSX] [LINUX] A new way to experience our favorite site (and eventually the web?) as inspired by cyberpunk classics such as Hackers, Snow Crash, Neuromancer, etc.

Each subreddit is displayed in Yellow text with the posts displayed as cubes beneath it. To visit a subreddit you simply fly in that direction and look at the cubes.

What's cool is there's some discovery on the way as opposed to immediately clicking a link with no middle ground. Hooray serendipity!

Subreddits that are 18+ in nature such as nsfw, WTF, creepy, etc. are displayed in Red text. They're also further away in distance and require a few extra seconds travel time to reach them. This makes it harder to accidentally click a link and end up somewhere you don't want to be (it happens quite regularly on reddit, beware!)

Some subreddits even have ambient 3D sound, which can draw your attention to them as you fly by. Currently they're all preset but eventually these could be pulled from the web.

Oculus Rift support has been added but because of the lower resolution it can be harder to read small text. This sort of issue will eventually resolve itself though as Oculus resolution improves.

After using this for a bit there's already of ton of features that beg to be implemented. As it stands now though I'd rather people try it out and hopefully voice the things they'd like to see (and thus prioritize them).

To keep the content fresh, the current implementation uses the new filter as opposed to hot. It also ignores posts that link directly to articles for now since photos are more interesting.

Eventually it will have to include a way to view articles and text-only posts so these are some of questions I'm asking:
  • How to make text interesting?
  • What other Reddit features would you like to see? Search? Saving posts? Sharing posts? Viewing a specific subreddit by name?
  • What about customization? Would users like to dictate the positions of subreddits themselves or do they prefer a fixed, persistent map?
Hopefully I can add Razer Hydra support soon. In the meanwhile, check out the downloads here: