SlideShare a Scribd company logo
MAKING




1   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
IAN VERCHERE                                                      FUNKY SWADLING
          CCO ROADHOUSE                                                         CEO A.C.R.O.N.Y.M.

2   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
CO-FOUNDER AND CHIEF CREATIVE
                     OFFICER OF ROADHOUSE INTERACTIVE

                     EX-EA, Co-FOUNDER OF RADICAL
                     ENTERTAINMENT, THEN EX-EA A
                     COUPLE OF MORE TIMES

                     MADE SOME AMAZING GAMES AND
                     A COUPLE OF BAD ONES

                     LEARNED MORE FROM THE BAD ONES
                     THAN THE GOOD ONES



3   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
ROADHOUSE IS A PRODUCTION
                     COMPANY – WE MAKE GAMES THE WAY
                     MOVIES ARE MADE

                     FIND THE RIGHT TEAMS, TOOLS AND
                     TALENT FOR A GIVEN PROJECT

                     FAMILY GUY ONLINE IS A VERY
                     DIFFERENT MODEL: IT’S NOT A LICENSED GAME.
                     WE’RE BUILDING IT FOR FOX

                     WE’RE WORKING DIRECTLY WITH THE SHOW TO
                     EXTEND FAMILY GUY TO ONLINE


4   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
WE CHOSE A.C.R.O.N.Y.M GAMES AS OUR LEAD
                     DEVELOPMENT PARTNER

                     I HAD BEEN WORKING IN UNITY BEFORE AND
                     BROUGHT it TO A.C.R.O.N.Y.M.

                     HAD TO CONVINCE THEM AT FIRST BUT ONCE
                     THEY LOOKED AT IT, UNITY SOLD ITSELF

                     WE BUILT A FAMILY GUY PROTOTYPE
                     IN 7 DAYS AND CAPTURED THE DEAL




5   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
DAVID HELGASON                                                                     TONY GARCIA

6   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
DESIGN AND ART LEADS ARE AT A.C.R.O.N.Y.M.
                     BUT A LOT OF THE MODELS
                     AND ANIMATIONS ARE BEING DONE BY
                     MINDWALK STUDIOS IN BEIJING, CN

                     ROADHOUSE PUT THE WHOLE THING
                     TOGETHER AND WE MAKE SURE IT RUNS.

                     MY PARTNERS IN ROADHOUSE HANDLE
                     OPERATIONS AND CONTRACTS




7   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
JAMES HURSTHOUSE                                                                            TARRNIE WILLIAMS
       CEO                                                                                     PRESIDENT

8   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
•      For fans of the TV Show
                                       •      Free-to-Play
                                       •      Unity Web Based MIDCORE
                                       •      ”MMLOL”
                                       •      CHARACTEr CREATOR IS LIVE
                                       •      CLOSED BETAS STARTING
                                       •      FUNKY WILL NOW TELL YOU HOW
                                              WE’RE GETTING IT DONE



9   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
• 39 People in Vancouver, Canada.
• Founded in 2004 to make small fun games
• Currently developing two large free-to-play
  Unity Web titles, including Family Guy
  Online

10   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Previous work:
• Rocketmen: Axis of Evil
• Rocketmen: It Came from Uranus
• Sony NBA
• Tecmo NBA Unrivaled
• Wipeout (no, not that Wipeout. The TV show)
• Zombie Cookin’ (using Unity iOS)
11   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About




12   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About

• Over 200 developer months spent so far
• Systems and methods we used to
  extend Unity to make a MMO game
• “Awesome Practices”



13   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About

•    Unity and Client/Server Architecture
•    Project Architecture
•    Perforce Integration
•    Photon Socket Server



14   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About

• Network Packet Architecture
• Instance Game Design
• Cute Tidbits




15   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About

•    Streaming World
•    GUI
•    Art Implementation
•    Character Creator



16   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About

I guarantee some part of this session will
be irrelevant to you.

Hang in there... I bet you’ll find something
cool.

17   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About

Question: Can you have our systems?




18   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
What This Session is About

Question: Can you have our systems?

Answer: NO!!!!
  (but please make your own)



19   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Unity




20   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
We Love Unity

                                           •      Web Deployment
                                           •      Cross Platform (PC and Mac)
                                           •      Cheap Licensing
                                           •      C# for Coding
                                           •      Perforce Integration
                                           •      MAYA Support


21   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Client and Server




22   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Client and Server: One Project

                  One Unity Project generates:

• Client Webplayer
• Client Data
• Server Windows Executables

23    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Client and Server: One Project
                                                           WHY?

• Guarantees Server development and
  Client development always in sync
• Write common systems once, rather than
  reimplementing in a non-Unity way


24    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Client and Server: One Project
                  WHY?
• World editing done once in Unity
• Unity has already written collision,
  component based objects, main loop,
  resource management, data importers,
  etc.


25    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture




26   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture

                                                            Fact:

There are many types of developers, most of
 whom don’t care about the way other types
             want to develop.


27   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture

     Content builders (modellers, animators)




28   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture

     Content builders (modellers, animators)
                  World artists




29   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture

     Content builders (modellers, animators)
                  World artists
                 Game scripters




30   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture

     Content builders (modellers, animators)
                  World artists
                 Game scripters
              Server programmers



31   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture

     Content builders (modellers, animators)
                  World artists
                 Game scripters
              Server programmers
              Client programmers

32   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Architecture
     Content Builders (modellers, animators)
                  World Artists
                Game Scripters
              Server Programmers
              Client Programmers
           Testers / Product Owners


33   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Content Builder

• Wants to see how his work will appear.
• Wants quick iteration between art
  programs and in-game.
• Does NOT want to run servers, does NOT
  want to wait for a deployment build.


34   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Content Builder

ASSET VIEWER
(Unity World)




35   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: World Artist
• Wants to see how work looks all put
  together
• Wants to see how work looks as it’s
  streamed in
• Does NOT want to run servers, does NOT
  want to wait for a deployment build.


36   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Content Builder

ARTIST
MASTER FILE
(Unity Scene)




37   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Content Builder

STANDALONE
WORLD
STREAMER
(Web Player Build)



38   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Scripter / Server
            Programmer
• Wants to see the game working.
• Wants to debug the server.
• Does NOT care about the client




39   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Scripter / Server
            Programmer
WEB CLIENT
(Web Player Build)

SERVER DEBUG
(Unity Scene)

40   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Client Programmer

• Wants to see the game working.
• Wants to debug the client.
• Does NOT care about the server.




41    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Client Programmer

SERVER
(Windows .EXE)

CLIENT DEBUG
(Unity Scene)

42    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Product Owner or
                Tester
• Wants to see the game working.
• Can wait for internal deployment.
• Does not want to run anything – only
  cares about final user experience



43   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
User Type: Product Owner or
                Tester

WEB CLIENT
(Web Player Build)




44   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Output




45   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Output

•    Web Client + its Resource Data
•    Game Asset Bundles
•    Server Executables
•    Streaming world “grids”
•    World Asset Bundles

46   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Output

                  All from one project, please!




47   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Output

                  All from one project, please!

                                                          How?

                                   SYMBOLIC LINKS

48   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
49   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Project Output
                                       Why one project?

• Common code and data is shared
• Compatible with source control
• Simple build process for any type of
  developer


50   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
We Learned Something

• Asset Viewer was a single world
• It blew up our PCs
• Now it is several “worlds” which can be
  symbolically linked together as needed



51   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Perforce




52   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
We (mostly) Love
                                           Perforce
                                           • Fast, reliable.
                                           • Not too expensive
                                           • Good for art and code assets
                                           • Branches and Integrations are
                                             awesome
                                           • Allows local experiments


53   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Perforce

 Unity (Pro version) and Perforce are able
     to get along, thanks to metafiles.

                                                           But...



54   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Perforce

     Unity loves to create files, move files and
      make files writable without telling you.

                  Perforce does NOT like that.



55    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Perforce

                 So, we wrote a consistency tool.

A Unity Editor Script which works out what
Unity changed (including file moves!), and
   builds Perforce changelists for you.

56   11/3/2011    Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon




57   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
We Love Photon

                                           •      Solid, fast, scalable
                                           •      Written in C and C++
                                           •      Extensible in C#
                                           •      Unity works out-of-the-box
                                           •      UDP and RUDP



58   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

     We use Photon as a Socket Server only.

                   The game is written in Unity.




59    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

         We’ve extended Photon for:
•    Server creation
•    Server destruction
•    Server configuration
•    Player assignment (load balancing).

60   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

           We started with “Lite”
• C# project which ships with Photon
• Sort of like a chat server
• Rooms, operations and events



61   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

                 Each Server has its own Room

Entry room is used for joining the game or
            switching worlds.



62   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

         Entry Room talks to the database,
        configures servers on demand, and
          moves clients into those rooms.




63   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

 For a server-to-server transition, a server
   will update the database then kick a
   Photon player into the Entry Room.
    The Entry Room process repeats.



64   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon
     If an underpopulated, open world matches
      what a player is seeking, the player is put
                          there.
     Otherwise, Photon finds an available world
       and sets it into the correct mode before
                  placing the player.


65    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

 Registering a Server is simple. When you
 launch any of our Unity Server Windows
   Executables, it automatically registers
    itself with Photon, creating a Room.



66   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Photon

     Photon 3 (just out!) features Photon to
     Photon communication, so we can now
      load balance not only between Unity
      Servers but between Photon Servers.



67   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Network Architecture

     (you thought that last section was dry?)




68   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
First... a joke.

 What’s the best thing about telling a UDP
                   joke?




69   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
First... a joke.

 What’s the best thing about telling a UDP
                   joke?

                 I don’t care if you get it or not!



70   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
First... a joke.

What’s the worst thing about telling a TCP
                  joke?




71   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
First... a joke.

What’s the worst thing about telling a TCP
                  joke?

     If you don’t get it, I repeat it slower and
               slower until you do!

72   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Feel free to leave now
                            

     I promise I’ll show you something shiny
                 after this section.




73   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: Update

      Update messages sent at high rate,
     describe the state of something that is
      frequently changing its state (like a
                     player)



74   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: Update

     If you don’t receive one, don’t worry. A
          better one will be along soon.

                                                   Use UDP!



75   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: Update

                      Safety tip:
     UDP messages can cross, so don’t use
     data if it’s older than your most recent
                 successful receive.



76   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: Reliable
 Data that has to get through, in order, or the
              game won’t work.

     e.g. Instantiate, deinstantiate, UI requests.

                  Use RUDP (or TCP if you must)


77    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: Reliable

                       Important:
         A messed up RUDP or TCP delivery
     will block all other packets of that type to
             that client. Minimize these!



78    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: ROM

Some objects update infrequently, but rely
 on their previous state being sucessfully
                    set
 e.g. Doors, Combat actions, Collectibles



79   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: ROM

 If one object isn’t yet updated, don’t hold up
 other objects. They are independent of each
                      other.

     We invented Reliable Ordered Messages


80   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Message Types: ROM
       A ROM is quite a lot like RUDP, but server tracks
     them separately per-client per-object instead of one
                        list per client.

      We can also obliterate them from the queue if we
     know an object is no longer in a client’s relevant set,
        and the message hasn’t been acknowledged.



81     11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Throttling and Pruning

  If we find ourselves trying to send too
  much data per “frame”, we spread the
load over multiple frames – sending a few
 milliseconds later is better than dropping
                  packets.

82   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Throttling and Pruning

  The game goes on generating updates
    and ROMs at the same rate, though.
When an update is put into a queue, older
still-queued updates are removed, as new
           data is always better.

83   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Throttling and Pruning

                    Important:
If you’re pruning the queue like this, maintain
the queue position of the old data, otherwise
 it will never get sent – it will keep moving to
               the back of the line!


84   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design




85   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

                 The problem:
       How to make sure the game feels
       populated and multiplayer, while
     preventing players from messing with
         each other’s “misadventures”

86   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

         We considered using traditional
                     instances.
     Go into a “misadventure” world, and your
                party is there alone.
             No party? You play alone!

87    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

                  Cons:
• Not very multiplayer
• Uses a lot of server power for one
  person
• (in other words, too expensive!)

88   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

     We considered using traditional shared
                   spaces.

                 Everyone adventures together!



89   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design
                     Cons:
• People can “ninja” your drops
• Players may have to camp spawns
• Some designs mean that everyone
  progresses through the misadventure,
  regardless of if they’ve helped.


90   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

                                              Our solution:

     Additive and Subtractive Relevant Sets




91   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

      Items that everyone should be able to
     access, but get removed from the world
             when you access them:

                        Subtractive Relevant Set

92   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

   Items that only one person or group
 should be able to access, but can exist in
        a multiplayer environment:

                              Additive Relevant Set

93   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Instance Design

We can extend this system (in a tutorial, say)
to give each player their own private enemy.
The effect is like multiple solo instances, but
          all running on one server!



94   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Cute Tidbits




95   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
XML based object instantiation
     We specify our game objects in XML, and use reflection to
            create and assemble all the components.

     Components can be conditional based on server or client
                        instantiation.

      Solves problems from duplicating or mismatching data.




96    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Server Warnings sent to Client
     Most developer types run the servers as a Windows .EXE

      But, there can be hidden bugs that only show up on the
                              server.

 We extended Unity’s exception handler and debug logger to
 send server problems to the Client, so errors are noticeable.




97    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World




98   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World

     Streaming your worlds is a Good Thing.




99   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World

We divide each large world into grids, and
 only load the 9 grids surrounding you.




100   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World




101   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World




102   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World
                                                      Problems:

  Line of Sight – you ought to see large structures
              further than one grid out

          But, if you increase grid size, you lose the
                     benefits of streaming.


103   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Whole World




104   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
One Grid




105   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World
                                                                                     BEFORE

                                      Average Grid Size                                   858

                                      Backdrop                                            116

                                      Shared Assets                                           1

                                      Initial Load                                       7837

                                      Total Load                                        13724




106   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World
                                           Solution (part 1)

      Textures take up more data than models

          Move ALL textures to “shared assets”
                        loading


107   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World
                                                                         BEFORE               AFTER

                           Average Grid Size                                  858              467

                           Backdrop                                           116              116

                           Shared Assets                                        1              501

                           Initial Load                                      7837             4821

                           Total Load                                       13724             7474




108   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World

      How can we squander these savings?




109   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World
                                           Solution (part 2)

           Move low detail meshes into a single
                       backdrop

           Leave high detail meshes grid-based


110   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Low Detail Backdrop




111   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
High Detail Grid




112   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Streaming World

                                                          BEFORE                 AFTER        BIG BACKDROP


                     Average Grid Size                        858                   467           449

                     Backdrop                                 116                   116           781

                     Shared Assets                              1                   501           545

                     Initial Load                            7837                  4821           5371

                     Total Load                             13724                  7474           7191




113   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
GUI




114   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
GUI

      Sorry, Unity. We don’t love your default
               GUI implementation.

      Immediate mode GUI is fine for single
            developer prototyping.

115   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
GUI

      Beg, borrow, license, steal or write an
        event-driven, widget based GUI.

           (We wrote, if you were wondering)



116   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
GUI

  Web based games need to resize to any
             web page size.

      We lock our aspect ratio, so our artists
                 don’t explode.

117   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
GUI
 Widgets are hierarchical, and have layout anchors specified.

           If webplayer is below target resolution, scale down.

             If webplayer is above target resolution
      DO NOT SCALE UP! Build the UI according to its anchors.




118    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
119   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
120   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
121   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art




122   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art
      We had to match the art direction of the TV
                       show.

• Family Guy is 2D
• Family Guy Online is 3D
• Uh-oh!


123    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art

                    Step one:
      Art Geniuses (creatives and technical)
               must be in-house.
           Outsourcing is for bulk work.



124   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art

                  Use a toon shader (obviously)

 Mouth is a sprite, which mirrors based on
      character and camera facing



125   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art




126   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art

  Facial Animation is done through a sprite
  sheet, based on mouth type and desired
                 expression




127   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art




128   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art

      Characters are assembled from multiple
       meshes, each its own asynchronously
               loaded asset bundle.




129    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art

      Asset Viewer (discussed earlier) is used
      for previewing and piecing together the
                       parts.




130    11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art




131   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art
           We wrote a custom memory manager for
                      character assets.

                  We didn’t trust C#’s garbage collector.

       Maintain a Most Recently Used list to avoid
              excessive loading/unloading.


132   11/3/2011    Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Art

       Assemble the parts into a character in
      coroutines, to avoid any performance hit.

  We run “ghosts” around on the client before
          all assets are streamed in.


133   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Character Creator

                                    Last thing, honest!




134   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Character Creator

 Character Creator was the first part of the
  game we wanted to reveal to the public.

                                       It had to be slick.



135   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Character Creator
                                  “Grey Block” design




136   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Character Creator
                  Flash Prototype (sorry Unity!)




137   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Character Creator
                                    Finally, using Unity




138   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Character Creator

                         Demo of Flash Prototype




139   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
Character Creator

                         Demo of Unity (in Editor)




140   11/3/2011   Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
THANK YOU!
           … any questions?

Roadhouse Interactive and A.C.R.O.N.Y.M. Games

More Related Content

Similar to Unite11: Making Family Guy Online

What Augmented Reality Means For Game Developers
What Augmented Reality Means For Game DevelopersWhat Augmented Reality Means For Game Developers
What Augmented Reality Means For Game Developers
joeludwig
 
GMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic Bodin
GMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic BodinGMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic Bodin
GMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic Bodin
Great Wall Club
 
Idia 616 homestar runner
Idia 616 homestar runnerIdia 616 homestar runner
Idia 616 homestar runner
Isaac Hammelburger
 
Task 1 outline
Task 1  outlineTask 1  outline
Task 1 outline
hamza_123456
 
Gaming Update October
Gaming Update OctoberGaming Update October
Gaming Update October
Advance A/S
 
My production log final one!!!!!!
My production log final one!!!!!!My production log final one!!!!!!
My production log final one!!!!!!
JohnLongworth
 
Production log
Production log  Production log
Production log
hamza_123456
 

Similar to Unite11: Making Family Guy Online (7)

What Augmented Reality Means For Game Developers
What Augmented Reality Means For Game DevelopersWhat Augmented Reality Means For Game Developers
What Augmented Reality Means For Game Developers
 
GMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic Bodin
GMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic BodinGMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic Bodin
GMIC 2012 - 3D Social&Mobile, CMUNE, Presentation by Mr Ludovic Bodin
 
Idia 616 homestar runner
Idia 616 homestar runnerIdia 616 homestar runner
Idia 616 homestar runner
 
Task 1 outline
Task 1  outlineTask 1  outline
Task 1 outline
 
Gaming Update October
Gaming Update OctoberGaming Update October
Gaming Update October
 
My production log final one!!!!!!
My production log final one!!!!!!My production log final one!!!!!!
My production log final one!!!!!!
 
Production log
Production log  Production log
Production log
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 

Unite11: Making Family Guy Online

  • 1. MAKING 1 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 2. IAN VERCHERE FUNKY SWADLING CCO ROADHOUSE CEO A.C.R.O.N.Y.M. 2 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 3. CO-FOUNDER AND CHIEF CREATIVE OFFICER OF ROADHOUSE INTERACTIVE EX-EA, Co-FOUNDER OF RADICAL ENTERTAINMENT, THEN EX-EA A COUPLE OF MORE TIMES MADE SOME AMAZING GAMES AND A COUPLE OF BAD ONES LEARNED MORE FROM THE BAD ONES THAN THE GOOD ONES 3 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 4. ROADHOUSE IS A PRODUCTION COMPANY – WE MAKE GAMES THE WAY MOVIES ARE MADE FIND THE RIGHT TEAMS, TOOLS AND TALENT FOR A GIVEN PROJECT FAMILY GUY ONLINE IS A VERY DIFFERENT MODEL: IT’S NOT A LICENSED GAME. WE’RE BUILDING IT FOR FOX WE’RE WORKING DIRECTLY WITH THE SHOW TO EXTEND FAMILY GUY TO ONLINE 4 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 5. WE CHOSE A.C.R.O.N.Y.M GAMES AS OUR LEAD DEVELOPMENT PARTNER I HAD BEEN WORKING IN UNITY BEFORE AND BROUGHT it TO A.C.R.O.N.Y.M. HAD TO CONVINCE THEM AT FIRST BUT ONCE THEY LOOKED AT IT, UNITY SOLD ITSELF WE BUILT A FAMILY GUY PROTOTYPE IN 7 DAYS AND CAPTURED THE DEAL 5 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 6. DAVID HELGASON TONY GARCIA 6 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 7. DESIGN AND ART LEADS ARE AT A.C.R.O.N.Y.M. BUT A LOT OF THE MODELS AND ANIMATIONS ARE BEING DONE BY MINDWALK STUDIOS IN BEIJING, CN ROADHOUSE PUT THE WHOLE THING TOGETHER AND WE MAKE SURE IT RUNS. MY PARTNERS IN ROADHOUSE HANDLE OPERATIONS AND CONTRACTS 7 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 8. JAMES HURSTHOUSE TARRNIE WILLIAMS CEO PRESIDENT 8 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 9. For fans of the TV Show • Free-to-Play • Unity Web Based MIDCORE • ”MMLOL” • CHARACTEr CREATOR IS LIVE • CLOSED BETAS STARTING • FUNKY WILL NOW TELL YOU HOW WE’RE GETTING IT DONE 9 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 10. • 39 People in Vancouver, Canada. • Founded in 2004 to make small fun games • Currently developing two large free-to-play Unity Web titles, including Family Guy Online 10 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 11. Previous work: • Rocketmen: Axis of Evil • Rocketmen: It Came from Uranus • Sony NBA • Tecmo NBA Unrivaled • Wipeout (no, not that Wipeout. The TV show) • Zombie Cookin’ (using Unity iOS) 11 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 12. What This Session is About 12 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 13. What This Session is About • Over 200 developer months spent so far • Systems and methods we used to extend Unity to make a MMO game • “Awesome Practices” 13 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 14. What This Session is About • Unity and Client/Server Architecture • Project Architecture • Perforce Integration • Photon Socket Server 14 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 15. What This Session is About • Network Packet Architecture • Instance Game Design • Cute Tidbits 15 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 16. What This Session is About • Streaming World • GUI • Art Implementation • Character Creator 16 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 17. What This Session is About I guarantee some part of this session will be irrelevant to you. Hang in there... I bet you’ll find something cool. 17 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 18. What This Session is About Question: Can you have our systems? 18 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 19. What This Session is About Question: Can you have our systems? Answer: NO!!!! (but please make your own) 19 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 20. Unity 20 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 21. We Love Unity • Web Deployment • Cross Platform (PC and Mac) • Cheap Licensing • C# for Coding • Perforce Integration • MAYA Support 21 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 22. Client and Server 22 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 23. Client and Server: One Project One Unity Project generates: • Client Webplayer • Client Data • Server Windows Executables 23 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 24. Client and Server: One Project WHY? • Guarantees Server development and Client development always in sync • Write common systems once, rather than reimplementing in a non-Unity way 24 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 25. Client and Server: One Project WHY? • World editing done once in Unity • Unity has already written collision, component based objects, main loop, resource management, data importers, etc. 25 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 26. Project Architecture 26 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 27. Project Architecture Fact: There are many types of developers, most of whom don’t care about the way other types want to develop. 27 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 28. Project Architecture Content builders (modellers, animators) 28 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 29. Project Architecture Content builders (modellers, animators) World artists 29 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 30. Project Architecture Content builders (modellers, animators) World artists Game scripters 30 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 31. Project Architecture Content builders (modellers, animators) World artists Game scripters Server programmers 31 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 32. Project Architecture Content builders (modellers, animators) World artists Game scripters Server programmers Client programmers 32 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 33. Project Architecture Content Builders (modellers, animators) World Artists Game Scripters Server Programmers Client Programmers Testers / Product Owners 33 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 34. User Type: Content Builder • Wants to see how his work will appear. • Wants quick iteration between art programs and in-game. • Does NOT want to run servers, does NOT want to wait for a deployment build. 34 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 35. User Type: Content Builder ASSET VIEWER (Unity World) 35 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 36. User Type: World Artist • Wants to see how work looks all put together • Wants to see how work looks as it’s streamed in • Does NOT want to run servers, does NOT want to wait for a deployment build. 36 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 37. User Type: Content Builder ARTIST MASTER FILE (Unity Scene) 37 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 38. User Type: Content Builder STANDALONE WORLD STREAMER (Web Player Build) 38 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 39. User Type: Scripter / Server Programmer • Wants to see the game working. • Wants to debug the server. • Does NOT care about the client 39 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 40. User Type: Scripter / Server Programmer WEB CLIENT (Web Player Build) SERVER DEBUG (Unity Scene) 40 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 41. User Type: Client Programmer • Wants to see the game working. • Wants to debug the client. • Does NOT care about the server. 41 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 42. User Type: Client Programmer SERVER (Windows .EXE) CLIENT DEBUG (Unity Scene) 42 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 43. User Type: Product Owner or Tester • Wants to see the game working. • Can wait for internal deployment. • Does not want to run anything – only cares about final user experience 43 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 44. User Type: Product Owner or Tester WEB CLIENT (Web Player Build) 44 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 45. Project Output 45 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 46. Project Output • Web Client + its Resource Data • Game Asset Bundles • Server Executables • Streaming world “grids” • World Asset Bundles 46 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 47. Project Output All from one project, please! 47 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 48. Project Output All from one project, please! How? SYMBOLIC LINKS 48 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 49. 49 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 50. Project Output Why one project? • Common code and data is shared • Compatible with source control • Simple build process for any type of developer 50 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 51. We Learned Something • Asset Viewer was a single world • It blew up our PCs • Now it is several “worlds” which can be symbolically linked together as needed 51 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 52. Perforce 52 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 53. We (mostly) Love Perforce • Fast, reliable. • Not too expensive • Good for art and code assets • Branches and Integrations are awesome • Allows local experiments 53 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 54. Perforce Unity (Pro version) and Perforce are able to get along, thanks to metafiles. But... 54 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 55. Perforce Unity loves to create files, move files and make files writable without telling you. Perforce does NOT like that. 55 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 56. Perforce So, we wrote a consistency tool. A Unity Editor Script which works out what Unity changed (including file moves!), and builds Perforce changelists for you. 56 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 57. Photon 57 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 58. We Love Photon • Solid, fast, scalable • Written in C and C++ • Extensible in C# • Unity works out-of-the-box • UDP and RUDP 58 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 59. Photon We use Photon as a Socket Server only. The game is written in Unity. 59 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 60. Photon We’ve extended Photon for: • Server creation • Server destruction • Server configuration • Player assignment (load balancing). 60 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 61. Photon We started with “Lite” • C# project which ships with Photon • Sort of like a chat server • Rooms, operations and events 61 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 62. Photon Each Server has its own Room Entry room is used for joining the game or switching worlds. 62 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 63. Photon Entry Room talks to the database, configures servers on demand, and moves clients into those rooms. 63 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 64. Photon For a server-to-server transition, a server will update the database then kick a Photon player into the Entry Room. The Entry Room process repeats. 64 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 65. Photon If an underpopulated, open world matches what a player is seeking, the player is put there. Otherwise, Photon finds an available world and sets it into the correct mode before placing the player. 65 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 66. Photon Registering a Server is simple. When you launch any of our Unity Server Windows Executables, it automatically registers itself with Photon, creating a Room. 66 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 67. Photon Photon 3 (just out!) features Photon to Photon communication, so we can now load balance not only between Unity Servers but between Photon Servers. 67 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 68. Network Architecture (you thought that last section was dry?) 68 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 69. First... a joke. What’s the best thing about telling a UDP joke? 69 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 70. First... a joke. What’s the best thing about telling a UDP joke? I don’t care if you get it or not! 70 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 71. First... a joke. What’s the worst thing about telling a TCP joke? 71 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 72. First... a joke. What’s the worst thing about telling a TCP joke? If you don’t get it, I repeat it slower and slower until you do! 72 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 73. Feel free to leave now  I promise I’ll show you something shiny after this section. 73 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 74. Message Types: Update Update messages sent at high rate, describe the state of something that is frequently changing its state (like a player) 74 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 75. Message Types: Update If you don’t receive one, don’t worry. A better one will be along soon. Use UDP! 75 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 76. Message Types: Update Safety tip: UDP messages can cross, so don’t use data if it’s older than your most recent successful receive. 76 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 77. Message Types: Reliable Data that has to get through, in order, or the game won’t work. e.g. Instantiate, deinstantiate, UI requests. Use RUDP (or TCP if you must) 77 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 78. Message Types: Reliable Important: A messed up RUDP or TCP delivery will block all other packets of that type to that client. Minimize these! 78 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 79. Message Types: ROM Some objects update infrequently, but rely on their previous state being sucessfully set e.g. Doors, Combat actions, Collectibles 79 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 80. Message Types: ROM If one object isn’t yet updated, don’t hold up other objects. They are independent of each other. We invented Reliable Ordered Messages 80 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 81. Message Types: ROM A ROM is quite a lot like RUDP, but server tracks them separately per-client per-object instead of one list per client. We can also obliterate them from the queue if we know an object is no longer in a client’s relevant set, and the message hasn’t been acknowledged. 81 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 82. Throttling and Pruning If we find ourselves trying to send too much data per “frame”, we spread the load over multiple frames – sending a few milliseconds later is better than dropping packets. 82 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 83. Throttling and Pruning The game goes on generating updates and ROMs at the same rate, though. When an update is put into a queue, older still-queued updates are removed, as new data is always better. 83 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 84. Throttling and Pruning Important: If you’re pruning the queue like this, maintain the queue position of the old data, otherwise it will never get sent – it will keep moving to the back of the line! 84 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 85. Instance Design 85 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 86. Instance Design The problem: How to make sure the game feels populated and multiplayer, while preventing players from messing with each other’s “misadventures” 86 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 87. Instance Design We considered using traditional instances. Go into a “misadventure” world, and your party is there alone. No party? You play alone! 87 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 88. Instance Design Cons: • Not very multiplayer • Uses a lot of server power for one person • (in other words, too expensive!) 88 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 89. Instance Design We considered using traditional shared spaces. Everyone adventures together! 89 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 90. Instance Design Cons: • People can “ninja” your drops • Players may have to camp spawns • Some designs mean that everyone progresses through the misadventure, regardless of if they’ve helped. 90 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 91. Instance Design Our solution: Additive and Subtractive Relevant Sets 91 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 92. Instance Design Items that everyone should be able to access, but get removed from the world when you access them: Subtractive Relevant Set 92 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 93. Instance Design Items that only one person or group should be able to access, but can exist in a multiplayer environment: Additive Relevant Set 93 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 94. Instance Design We can extend this system (in a tutorial, say) to give each player their own private enemy. The effect is like multiple solo instances, but all running on one server! 94 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 95. Cute Tidbits 95 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 96. XML based object instantiation We specify our game objects in XML, and use reflection to create and assemble all the components. Components can be conditional based on server or client instantiation. Solves problems from duplicating or mismatching data. 96 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 97. Server Warnings sent to Client Most developer types run the servers as a Windows .EXE But, there can be hidden bugs that only show up on the server. We extended Unity’s exception handler and debug logger to send server problems to the Client, so errors are noticeable. 97 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 98. Streaming World 98 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 99. Streaming World Streaming your worlds is a Good Thing. 99 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 100. Streaming World We divide each large world into grids, and only load the 9 grids surrounding you. 100 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 101. Streaming World 101 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 102. Streaming World 102 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 103. Streaming World Problems: Line of Sight – you ought to see large structures further than one grid out But, if you increase grid size, you lose the benefits of streaming. 103 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 104. Whole World 104 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 105. One Grid 105 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 106. Streaming World BEFORE Average Grid Size 858 Backdrop 116 Shared Assets 1 Initial Load 7837 Total Load 13724 106 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 107. Streaming World Solution (part 1) Textures take up more data than models Move ALL textures to “shared assets” loading 107 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 108. Streaming World BEFORE AFTER Average Grid Size 858 467 Backdrop 116 116 Shared Assets 1 501 Initial Load 7837 4821 Total Load 13724 7474 108 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 109. Streaming World How can we squander these savings? 109 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 110. Streaming World Solution (part 2) Move low detail meshes into a single backdrop Leave high detail meshes grid-based 110 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 111. Low Detail Backdrop 111 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 112. High Detail Grid 112 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 113. Streaming World BEFORE AFTER BIG BACKDROP Average Grid Size 858 467 449 Backdrop 116 116 781 Shared Assets 1 501 545 Initial Load 7837 4821 5371 Total Load 13724 7474 7191 113 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 114. GUI 114 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 115. GUI Sorry, Unity. We don’t love your default GUI implementation. Immediate mode GUI is fine for single developer prototyping. 115 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 116. GUI Beg, borrow, license, steal or write an event-driven, widget based GUI. (We wrote, if you were wondering) 116 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 117. GUI Web based games need to resize to any web page size. We lock our aspect ratio, so our artists don’t explode. 117 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 118. GUI Widgets are hierarchical, and have layout anchors specified. If webplayer is below target resolution, scale down. If webplayer is above target resolution DO NOT SCALE UP! Build the UI according to its anchors. 118 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 119. 119 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 120. 120 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 121. 121 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 122. Art 122 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 123. Art We had to match the art direction of the TV show. • Family Guy is 2D • Family Guy Online is 3D • Uh-oh! 123 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 124. Art Step one: Art Geniuses (creatives and technical) must be in-house. Outsourcing is for bulk work. 124 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 125. Art Use a toon shader (obviously) Mouth is a sprite, which mirrors based on character and camera facing 125 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 126. Art 126 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 127. Art Facial Animation is done through a sprite sheet, based on mouth type and desired expression 127 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 128. Art 128 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 129. Art Characters are assembled from multiple meshes, each its own asynchronously loaded asset bundle. 129 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 130. Art Asset Viewer (discussed earlier) is used for previewing and piecing together the parts. 130 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 131. Art 131 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 132. Art We wrote a custom memory manager for character assets. We didn’t trust C#’s garbage collector. Maintain a Most Recently Used list to avoid excessive loading/unloading. 132 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 133. Art Assemble the parts into a character in coroutines, to avoid any performance hit. We run “ghosts” around on the client before all assets are streamed in. 133 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 134. Character Creator Last thing, honest! 134 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 135. Character Creator Character Creator was the first part of the game we wanted to reveal to the public. It had to be slick. 135 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 136. Character Creator “Grey Block” design 136 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 137. Character Creator Flash Prototype (sorry Unity!) 137 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 138. Character Creator Finally, using Unity 138 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 139. Character Creator Demo of Flash Prototype 139 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 140. Character Creator Demo of Unity (in Editor) 140 11/3/2011 Making Family Guy Online (Roadhouse Interactive and A.C.R.O.N.Y.M. Games)
  • 141. THANK YOU! … any questions? Roadhouse Interactive and A.C.R.O.N.Y.M. Games

Editor's Notes

  1. I WORK DIRECTLY AS EP/CREATIVE on FGO WITH A.C.R.O.N.Y.M. AND MINDWALK,AND I’M THE FACE OF THE PROJECT TO FOX AND THE PEOPLE FROM THE SHOW