Sunday, November 6, 2016

Unite 16

Since it's been awhile since my last post and I'm bored on my flight back from LA, I decided to write about my experience at this year's Unite.  Unite, for those who don't know, is a conference held by Unity3D where new features are announced or shown and knowledge is shared between other Unity developers.  Instead of going to GDC -- the Game Developers Conference -- this year, I decided to save my money and go to Unite instead.
This year's logo

I have to admit, I'm glad I did.  I wrote about this previously, but I feel it needs repeating.  I like Unite over GDC for three reasons -- focus, applicability, and positivity.  Though GDC is focused on game development, I feel it's very scattered.  You get high level design talks, low level tech talks, mid level art talks, etc.  For the price of admission to GDC -- about twice that of Unite's -- I just feel like I have a hard time focusing on what talks I should go to or want to go to.  Unite, though you do have design, tech, and art talks, connects all of its talks by the fact that Unity is involved somehow -- though this year I have to admit, some did a better job making this connecting than others.  Then, some talks at GDC don't really feel applicable to what I do at my current game development job or my current indie work.  Even though some topics discussed at Unite may be over my head, at least their connection to Unity makes them feel somewhat achievable.  Finally, there's positivity.  Unity is FAR from a perfect game engine, but a lot of people there are excited about it and that excitement is infectious.  The team is working hard to fix bugs and create new features, and they are excited to share that with attendees.  Anyway, here are some brief summaries of the talks I went to:

 

Keynote

I admit, I was pretty tired during the keynote, but the two biggest things shown off that excited me during it were the Timeline and the new Post-Processing effects -- the former I'll talk about later.  They also demonstrated VR editor tools so you can create and build world elements while in VR -- admittedly, I personally wasn't excited for this but could see its appeal.

 

HoloLens, HoloLens, HoloLens!

I went on three separate talks about Microsoft's HoloLens, four if you count the one-on-one demo I had right after the keynote.
This is a HoloLens; I think I saw this image like 5 to 10 times.

As a VR skeptic -- not as strong as I used to be admittedly -- I was curious to have a demo of the HoloLens.  So after being taught their navigational concept, GGV -- Gaze, Gesture, and Voice -- I experienced a short demo called Galaxy Explorer.  I was impressed!  Once I got used to the gestures, it felt pretty natural.  Also, the device was untethered, and I was able to see the world around me.  It felt like it was adding to my reality, not imprisoning me in a different one -- which is what VR makes me feel like sometimes, especially due to the wires.  So, after this demo, I was very excited to try and learn as much as I could about this augmented reality device!  I also got to play with the new Surface Studio -- I think I may have to save up and make one my next PC.
This post is starting to feel like a Microsoft ad, huh?

The first talk that discussed HoloLens was entitled A Guide to Building Mixed Reality Experiences.  This was a rather high level talk about various challenges involving working with the HoloLens such as stabalization, world-locking, sharing, and more.  The speaker essentially told the audience to use the learning tools out there if you plan on developing for HoloLens.  I'll just say it left me a little hungry for more.
The second talk felt more like an advertisement to use Vuforia's augmented reality software with HoloLens to create even better, more immersive AR experiences.  Vuforia's AR toolkit involves looking at a symbol or image and using that image to display 3D objects, usually through a phone; however, because the HoloLens has a camera, you can use it to do this AR and make HoloLens experiences even more immersive.  It seemed very complex, probably something I'd never utilize, but it was neat to see it in practice.
The third HoloLens talk I went to, which was on the conference's second day, was my favorite.  It started off rather dry -- going over the specs, again -- but finally, the speaker went over some actual HoloLens implementation.  The most interesting was the explanation of two Unity Components, the Spatial Mapping Renderer and the Spatial Mapping Collider.  Essentially, the HoloLens collects data about your environment and creates a 3D mesh of said environment, which is updated repeatedly.  The SMR allows the environment to be rendered; it's most common use case is for occlusion, making objects "disappear" when they go behind a wall, floor, or table.  Then, the SMC created a collider for these objects, so I could, for example, have a sphere fall and make it appear to roll on the floor.
Some challenges with HoloLens development were then discussed.  One is the concept of anchoring.  A lot of the time, objects will jitter and shake.  To prevent this, they need to be anchored, either to the user or to a point in the world.  This seemed like an interesting challenge, but one that didn't seem insurmountable.  They went over the emulation process as well as other tips such as treating the HoloLens like a mobile device that should have a constant frame rate of 60 FPS.
I was a bit sad at the end, however, when I learned that there isn't a way to hook up an Xbox One controller to the HoloLens.  Someone mentioned that bluetooth controllers may work, but it was at this time I realized that the HoloLens isn't really being marketed as a gaming device, at least not in the way VR sometimes is.  My excitement for developing for HoloLens was a bit deflated -- especially at its price points -- $3,000 and $5,000 for commercial development.  That being said, if I ever had the choice between working on another VR project or a HoloLens project at work, I'd choose HoloLens.

 

Great Design Talks

Usually, GDC has the best design talks; however, two design talks this year were really enjoyable.  The first was entitled What Makes Great Games?  The talk was given by a programmer who goes by the name Gigi on the Unity forums; this made me laugh since that's also the name of the protagonist from the tactics fighter I started earlier this year.  His talk discussed his journey to try and find a recipe or formula to what makes a great game.
His initial recipe was simple:  Flow and Simplicity.  Of course, these two concepts needed to be broken down as well.  He defined flow as the state in which people are so involved in an activity that nothing else seems to matter.  He then gave his recipe for flow:

 

Goals

The player needs goals; however, not all goals are the same.  There are explicit goals set forth by the game; less defined implied goals such; and player driven goals, those that players bring to the game and the most interesting.

 

Feedback

Feedback is how we perceive progress and is very important to flow.  Gigi told a story about how his old vacuum didn't let him see how much dirt he sucked up, but his new, expensive Dyson did, giving him feedback on his dirt accumulation.  Anyway, there is immediate feedback such as hit sparks in a fighting game; natural consequence such as fire burning somethings; and progress like levels or experience points.

 

No Distractions

He then mentioned the concept of No Distractions, which seemed more difficult than the previous two.  Essentially, he tried to make warn against distracting the player with too much -- with art, rules, pop-ups, anything really.

 

Just Right (Challenge)

Finally, he mentioned the Just Right challenge, which is a tough one because it's very subjective.  He showed the "Flow" chart in which difficulty over time/skill.  It reminded me of the Gamasutra blog post I wrote about fighting games recently.  It got some hate from those who don't find what I discussed hard; meanwhile, I wrote it to empathize with those who do.  Anyway, it really comes down to understanding your audience and what they find hard or difficult.

I think this is the exact same image shown during the talk.


He then went into simplicity, citing that creating it is very hard.  We yearn for grace and elegance in game designs, but it's not always there.  Again, wanting a recipe, he came up with 4 items -- though he cited these were ones he came up with that might not be as strong as others.

 

Core

Core to me I felt could also be called Edit.  On creative competition shows like Chopped or Project Runway, the concept of editing is always brought up.  It's essentially cutting and editing until nothing else can be removed, until you risk losing the core.  Essentially, it came down to Less = More.
I'll just assume Tim Gunn is hearing about an overly complicated garment game design.

 

Limited Choice

Games are said to be a series of interesting choices -- paraphrasing from Sid Meier.  More choice isn't necessarily better as we get into what Gigi called the Paradox of Choice, a psychological term in which too many choices cause Analysis Paralysis, which causes us to postpone a decision and then eventually regret not making one.  He then used an MMO called Rift that didn't do very well.  He alluded that its character leveling system was perceived to have too many choices for users -- at least at first -- and could have contributed to this failure.
Skill tree from Rift.  A bit complicated-looking, right?

 

Intuitive

Similar to Just Right Challenge, but spoke more about making small changes to make things more understandable.

 

Player's Perspective

Finally, he explained that games can have a lot of complex systems, but the more that can be done to hide these and slowly reveal them as to not overload the player is a good start.
Anyway, his recipe for Simplicity came down to a cute acronym phrase:  CLIP it.
Overall, though this was a basic design talk with little connection, it talked about very important subjects that I believe a lot of designers, including myself, often overlook.  It was refreshing and enjoyable -- despite the audience participation.

 

HATS

The other design talk involved hats!  It was from two game developers who discussed 9 different hats they felt are necessary to wear when developing a game -- big or small.  I liked the talk a lot too despite it having very little connection to Unity.  The nine hats were as follows:

 

Vision

Asks the big why questions:  What are we making?  Who is the audience?  Where do we see ourselves in the future?
Pretty sure they were not referring to this guy.

 

Production

Asks the how.  Has to make the choice between Fast, Good, and Cheap -- most say choose 2, but choosing 1 is more realistic.

 

Finance

The most groan-inducing; however, still important.  You need to think about how the game will make money, but also how will the game be funded, even if the answer to the first question is unimportant to you.
Probably what everyone envisions when they hear "Finance".

 

Marketing

You want your audience to know your game exists.  This involves public relations and community management and customer service.  It's important to look for promotion opportunities, regardless of the size.

 

Quality Assurance

Thinking about an efficient process for fixing bugs.  Theirs:  Play, Encounter, Report, Fix, Review, and Repeat.  Also, they included general playtesting under this hat.

 

Design, Art, Code, & Audio

The two defined these 4 -- and I'm happy they included audio -- as the basic hats needed to be worn to actually make a game or the product itself.
They also gave 4 tips about wearing said hats:
  • You need to wear all 9!  They are all equally important.
  • You may have to wear multiple hats -- as a solo dev I try to wear all 9 -- but trying to wear multiple at the same time is bad -- focus is key.  Be a laser, not a hose.
  • Every hat will not look good on you; this is fine and happens.  It still needs to be worn; you can always learn from others or find others to wear it.
  • Multiple people should not wear the same hat at the same time.  You need to clearly define roles; you want to enable, not impede.  Tasks need to be focused and clearly defined.
An example of bad hat wearing; he's wearing multiple but only one is touching his head

Again, a very basic design talk, but with information I have a tendency to overlook.  The talk helped simplify these concepts in a way where some of the less desirable hats -- such as finance or marketing -- are still approachable.  I did suggest a tenth hat (later on Twitter), or a zero hat, being self-care, which I feel people working on an indie title -- including myself -- sometimes neglect.

 

Other Cool Things

At one point, I saw a rather interesting talk about Houdini, which is a software package I've heard about before, but primarily thought people just used it to make cool particle effects for video production, not games.  A dev making a game for both the PlayStation Vita and the PS4 showed us how he used it to make procedural meshes; for example, he created a bridge and then used a Unity plugin to make that bridge expand varying length depending on the design of his platformer levels.  It was cool to see; however, similar to Substance Designer, the amount of time it takes to setup such things make me wonder how useful they really are.  It did give me some ideas for the tactics fighter I was working on awhile ago.
An example of procedural meshes from Houdini

Some Unity developers showed off the new Timeline tool, which will be coming in later versions of Unity.  If I had to summarize it, I'd say it's like an Adobe AfterEffects timeline but for elements in your game, usually used for cutscenes, but it probably has thousands of other, unique uses.
This is from Cinema Suite, which is apparently what the Unity Timeline will be based on

Another company showed off an asset called NeoFur.  Though the talk was short and felt a bit like an ad, seeing it in action did seem interesting. 
An example of NeoFur

Then, a talented GPU programmer showed off how he got high quality cloth physics in Unity; well, he didn't show us how really -- at least not in-depth -- he showed us that he did.
Finally, the Unite Party was fun; it's usually a blast, and this year at Universal Studios was no exception -- though King Kong 3D was a dud.  A mixer at Madame Tussauds on Halloween night wasn't bad either.

A photo posted by Matt (@mattrified) on

 

Not So Cool Things

Any other talks were rather forgettable or memorable for the wrong reasons.  For example, the multiplayer talk, which did happen after the party, was sort of a mess.  In the first half, the two speakers discussed how they did peer-to-peer multiplayer for an RTS, but it didn't use any of Unity's new multiplayer tools, which was sorta frustrating.  Unity stresses democratizing game development, and they started with making online multiplayer more accessible, yet no one ever makes anything with it or shows how to make games -- that aren't the spaceshooter demo -- with it.  The second half was its own mess; I left 5 minutes into it.
Also, I was annoyed how there was no breaks in between talks, not even 5 minutes.  This usually results in talks running into each other and some starting late; the multiplayer talk started 18 minutes late for example. 
Finally, and this is stupid, but the provided lunches, in my opinion, weren't good.  I would have rather saved money on my ticket and just bought food since there were almost a dozen restaurants surrounding the hotel.
Okay, the salads weren't this sad, but that multiplayer talk was.

Overall though, despite a few minor hiccups, I really enjoyed Unite.  It inspired me to continue working on some older ideas I abandoned earlier this year instead of doing National Novel Writing Month.  I also think I may go next year instead of GDC once again, but I think it's still too early to tell.