 Hey, welcome. Thank you. Hey, so I'm JB. I'm C developer lead for C tools for unity and we are and I'm here with John Yeah, so I'm a program manager on the visual studio team for visual studio and visual studio for Mac and working on the visual studio tools for unit And John is visiting it is visiting us from Pennsylvania Pennsylvania. Yep I'm in town for the week for this thing with you. Thank you for visiting us. So do you like the campus? I like it a lot. Yeah, it's very nice here. Yes So yeah, I'm the developer lead for the tools for unity where we're bridging Unity the game engine and our developer tools and today we'll be talking about exactly this making game with dotnet Using visual studio unity and John you're going to talk a little bit about play fab afterwards So we'll talk about play fab Exactly. All right. So let's start Let's start with unity because This is dotnet conf not everybody is familiar with what unity is So if we're going to the slide unity claims that Unity is the most widely used real-time 3d development platform What does it mean is that unity is a tool that you can use to build all kind of experiences 2d 3d games and You can use unity to build games for more than 25 platforms from mobiles iOS Android console Xbox PlayStation To AR VR experiences including HoloLens and And even to the web now Okay, so we can target pretty much everything under the sun pretty much and The reason we were here at the conf is that it's a real nice thing Opportunities that you get to reuse your dotnet and C sharp skills and the visual studio ecosystem of tools to build your game Okay, so I'm a dotnet developer. I'm on dotnet comp and Maybe I want to make some games so I can reuse my existing knowledge on how to Use C sharp and dotnet and also work with visual studios to me. I'm familiar with exactly So you need to get unity to learn about unity, but you get to reuse all the skills that you built To learn dotnet and C sharp to build those games Okay, awesome. All right, so if I'm a dotnet developer and I want to get started What's the best way to get started? It's actually very easy. It's the best way to get started is to add to unity street calm and Download and install unity It comes as an installer for Windows for Mac and it's going to set up everything that you need from unity itself to visual studios that will be configured On Windows and on visualization for Mac with everything that you need to build write and debug your unity games using visual studio and if you want And if you're a complete beginner when it comes to games like I am myself The best thing to do is to add over unity street.com slash learn It's the learning section of the unity website. So you have tutorials from How to get started with a very simple scene with just like a sphere or a cube to FPS games or multiplayer games. They have tutorials for pretty much everything and it's free Okay, so I can download unity. I can get started a bunch of free content. Maybe you can show me like yeah Exactly. So let's let's get started with unity. So This is all right, so This is a program which is named unity that you can also install to manage your different unit installations If you're using multiple of them, so we're going to go ahead and create a new unity project and it's Basically as easy as that unity will create another project with everything that you need For your game Okay, so we create our project from unity. That's correct That's correct unity as it's on concept of what a project is and only unity knows what it needs in a project So you don't start using visual steel by doing like a new unique project You launch unity you create a new project and from there you'll be able to generate a visual steel project To modify your code of your game Okay, I see some chat can't hear me. Is that any better now? Let me know in the chat All right, so wait for you to run this. Yes, I'm gonna create our project here. It's about to finish What you need is actually doing is creating this entire project structure Where you'd be able to store your assets like your 3d models your sounds Even to code of your game and unity here is also getting a set of pre-built resources called packages That are shipped with unity So that you can use them directly without having to download anything else. Okay, so it takes a little bit of time and That's what you get Obviously, it's very different from Visual studio. It's almost its own enter IDE and that's where unity developers are spending the most of their time so you have your scene view which is Basically where you create the visuals of your game or at least like assembles them You're not good. You're not really going to create models from there So philosophy of unity is that unity aggregates different kind of assets So you can use something like blender to create a 3d model or 3d studio and Then you're going to import it Inside unity and it's the same for any kind of a facet like a texture that you would work with in Photoshop For instance, and you add that to unity and that's inside unity that you put everything together So on the left you have the hierarchy of your game in which we have a directional light that illuminates the scene You have the main camera and you can go to the game view to see what the camera views and we can add Like a 3d object. Let's add a sphere in the game and You have the inspector on your right which gives you all the properties that you can apply to your objects and And if you can view and if you play Well, it's a very simple game But it's a start like you have like a 3d spheres a 3d sphere in your game And the real nice thing about unity is that you can change pretty much everything On the fly you can move things around and you immediately see what's happening inside your game from the game view and it's a very iterative process of Creating a game where you move things around you see what works You can even change the code of your game on the fly and unity will pick it up And it makes for a very simple development experience Compared to the traditional way of building game with the main loop and you recompile your entire game before trying it You need to make it really easy to tweak things And see them live without having to go through the enter by trying to free compiling everything Okay. All right, so we can do everything kind of live and iterative. I mean earlier. We talked about visual studio So where does visual studio come into play and this whole dot net and C sharp thing? Maybe we can talk about that a little bit. All right How do you put it back? So let's go back to the slide one second. Yeah So, yeah in in visual studio, do we have the slides? Yes. Yeah. All right So as I was saying Unity when you install it is going to set up visual studio for you And one of the things that unity is going to install and it's something called the visual studio tools for unity just like we have tools for Xamarin or we have Tools for Asia or other scenarios. We have a dedicated Plug-in and workload for unity and in visual studio on Windows and visual studio for Mac We call it VST you sometimes and you'll find me use VST you Okay, so how do I get this if I'm a developer in visual studio? How do I get VST you? So if you are a developer in visual studio and you've installed visual studio yourself Like the best ways to launch the visual stream starter, which has this concept of workloads now where you can install everything that you need for different scenarios and we have the Game development with unity workload a workload dedicated to unity development That will install everything that you need to write and debug your unity game for visual studio Including the tools for unity and And on Windows it's directly included in the box when you download unity when you download visual studio it has the tools for unity built in so that when you select visual studio for Mac or As the c-sharp editor in unity everything would be picked up and just work Okay, so I can it's already included visual studio for Mac and if I already included in visual studio for Mac It's just a checkbox in the visual studio installer to include unity On Windows, yes, you just check the game development with unity workload But if you went through what we said if you got like unity first and that it installed visual studio for you as well Everything is ready to go Okay, awesome. All right, so Maybe you can tell me about what are some of the features that we include in visual studio so what we're trying to achieve with The visual studio tools for unity is to make sure that you can reuse all the skills And knowledge that you build of visual studio to write and debug your game and we're trying to make the experience As smooth as possible so that you have no interruption um So I think it's probably easier if we just Take a look take a look at what it does and then we can go through the Specific features that the tool for unity provide for unity game developers. Great. Yeah, let's take a look. All right While you're switching that I see a question in the chat How can unity work on the web and what's what are the requirements? All right, so unity Does work on the web and it's just another target That you can pick So let me just show you this window when you're So we've seen unity that where you build your game you created as we said it's very iterative and When you're happy enough with the game you export it for target platform So you want to export it to uwp. It's going to create a visual studio solution for uwp and You target ios it's going to create an xbox an xcode project and if you target the web it's going through a pretty complex Compilation pipeline and transformation process where ultimately it ends up being Where the entire unity engine and like the code of your game ends up being converted To web assemblies that turns into browser. Okay, it ends up like so they're They're not really it's a kind of like small unity games like they end up being you still have to download like a game engine and assets so So that's not really used to be very lightweight games yet Unity is working on that but right now if you target web It's a web it's going to go through that process and produce like a web assembly game. Okay. Awesome. All right So we're taking a look at it how visual studio encoding. So let's take a look Yeah, so this is unity with a project which is just a little bit more elaborate than the one we've seen before It looks more complicated because there are trees. There's an object in the middle but realistically it's It's not really that much more complicated The only thing that i've done is i've been to something called the asset store and the asset store inside unity is It's this window and you can think of it Uh I think i don't think we're sharing our screen here. Let me go back. We're not. No, let's go back Oh There you go. All right. Thank you. Sorry about that So the asset store you can think of it like as an app store on your phone But instead of getting apps you get you can get any kind of assets that you need to build a game So if you like me have no talent to build 3d models or paint textures or create sounds You can get started to create the games that you have in your mind using assets that you get either for free Or that you buy on the asset store And it's very convenient to very to prototype something very easily and make sure that it looks nice before investing strongly In the art of your game when you and you can use it to validate like The ideas that you have a few game are using assets. Okay, so maybe I want to get like some placeholder content or something or Maybe just like don't have the time to build a model or maybe even the skill Sure the asset store and pick up some can use it for that But I don't want to diminish what you can get on the assets or you can get very nice quality Assets or so. It's not only like place Orders, that's a way. That's the way I use it myself like when I want to do something like this But you get real pro assets That would not look bad in a triple a game. Oh, so even if I want to add it in my finished product Like yeah, could go the whole way out. Yeah, okay. Awesome. Yeah, it's pretty cool so I've downloaded two assets one which is called nature starter kit that provides you with trees And grass and that kind of visual and I've opened their Simple scene and that's what you get and I've downloaded a 3d model for flying saucer And I just drag and drop it to unity unity imported it I applied the texture on the saucer and it was ready to go. So this is my scene if I switch to the game view That's what I get. Oh, yeah, that's looking good. It's it's actually looking great And the way does that is by adding special effects on the camera like vignetting or Like blurring and I think like a field of view and also effects are built into unity like you can use it for free and you go from something that looks a little bit plain And by simply using like script that are provided by unity you can drastically improve the visuals of your game So again, this is a simple scene that I open and download it from the asset store a simple 3d model And I have already have something that already looks really nice Okay, and so if you place a game, so it's not really a game. It's more like a scene Then I have my flying saucer which rotates and hovers over the ground Nice So how did you make that type of interaction with that object? What exactly is involved with that? So scripting any time you you're going to want to program something in your game You're going to use a scripting and ultimately that means writing cshark code for unity So this is The hierarchy of my game and in my saucer object And on the inspector for this object, we can see this its position in the world its rotation But we can also see that I added like a saucer rotation script So if I double click on it, it takes me directly to unit to visual studio with the script opened And it means that this script is attached to this 3d object in the world So this is csharp We can recognize a few things as csharp developers and a few things that are Different in particular to the way unity does things The first thing is on the right. This is the unity project explorer And as I was saying earlier Unity has a different concept of what a project is compared to traditional visual studio project Visual studio project are built around solution and project files Unity are built around Folders you have one main folder where you where you have all your assets Different teams could contribute different assets in different folders and around gem this way And basically you'll be browsing it Like for the base and that like the default way With the solution explorer is to use a different project that unity generates To represent what unity is going to do when it compiles your game internally But we're providing this tool window to make sure that it's as easy to navigate into your Game structure in visual studio as it is in unity Okay, so it's going to mirror exactly what We're seeing in the project view of unity for your scripts So unity is doing something a little maybe not standard that we're used to seeing from as like a dot net developer So the solution explorer has some other things in there Maybe organized a differently and the the project files used a little bit differently So the unity project explorer maps things To be similar to what you see in unity editor. So it's a little easier to go back and forth. That's correct Yes, and we have your cc sharp view of your code We have a bunch of fields, which are public which is unusual. We're going back to the ad We have a type that extends a mono behavior type Which is a special type with special meaning with the unity engine And we have two methods start and update and you can see that they're colored differently The reason is that The reason why we're coloring them differently and that's something that is provided by vstu is that those methods a special meaning for the unity engine When you attach a script to a 3d object or to an object Uh the unity engine will look at the script and And look at those different methods and they're going to invoke it from the unity engine with a special meaning for instance start Is called when your game is starting And for instance update is going to be invoked by the unity engine at every frame So this code will run once when the game starts and this will run at every frame of your game Okay, that makes sense. All right So maybe we can look at You know if something goes wrong and maybe I need to debug. I mean, I'm used to debugging my project So what exactly can I do with unity games? It's very easy. So your game is running. You see that there's something wrong in another rotation uh It's as easy as putting a breakpoint And attaching the debugger to unity And it's as simple as that Now look, okay, there we go You're not starting the project like you would say for exam an application or a win from the application where you start the application and you debug it The unity workflow is your work Again in a very creative fashion from inside the unity editor Uh, you attach the debugger. You see what's wrong. You fix it. You tweak it And unity will automatically see what's changed and it's going to reload it and you'll be able to Replay your game in the editor with your fixes and it's as simple as that And so in terms of debugging you have pretty much everything that you expect from the Normal dot net debugging experience. Uh, you can you can step you can view your variables Everything that you need to debug a game you have your core stack Okay, I mean everything's there everything's there. Yeah, it looks looks great All right, so let's remove this breakpoint with because we're going to eat it at every frame And let's keep the game running. Uh, so let's stop debugging So let's go back to that So as I was saying we have, uh, those are special methods, uh, which Which are only identified by name so it's making it sometimes difficult To remember them. So the tools for unity are providing two things to make it easier The first one is you might not give your wizard Uh, it's especially practical for beginners, uh, which are learning unity I don't know all the different methods that they need to declare and they're one of the behaviors to get started And we let them just create them just at the click of a button and So say you want to end all the collision on the saucer at some point You just declared you just use the wizard and you declare on collision enter And that's where you get started. So this is kind of an example of maybe a productivity feature. Yes You know, maybe I don't remember what the method names are Be able to generate them and get some documentation there. Exactly and it's going to I'll give you a brief extra of what is when the unity engine is going to call them Say you want to learn more about the collision api one thing that you can do is simply go to l to the unity api reference And it's going to open the unity documentation directly for the types that you've selected Oh, okay. Yeah, I mean, I'm always finding myself kind of searching for the api and learn how I can use it So I can do this right inside the editor. Exactly and right And as a thing that we're doing as we mentioned, uh, you know, here's its own concept of what a project is Which means that every time you're going to Uh, add a new script unit is going to recreate those project files that represent what unit is doing to visual studio so that you get like cut completion uh, one thing that we've done recently is Make vstu smart about it. So it's going to monitor the project files and only reload what's necessary So that you're not prompted all the time. So anytime you you add a new script to unity Previously you were prompted or do you want to reload the solution? You want to reload the project? Do you want to discard the changes? Vstu is no smart about it and it is going to reload exactly what you need So that's your visual experience always represent what unity is doing in tune Okay, so I can transfer back and forth You know kind of that workflow you're talking about where I need to go back and forth between unity and visual studio And be able to do that seamlessly exactly that makes sense All right So, yeah, that's what the tools for unity are providing. One last thing I wanted to show is Uh, it's about the scripts As I was saying earlier, all right, let's go back to visual studio. We have those public fields Which are unusual for c-shop developers, but but they are actually a way for unity developers to modify The behavior of some script so they're effectively default values And unity is going to look at the script look at the public field and represent them in the ui So it gives you a way to very quickly tweak Some parameters of your game. So say I want to change like the speed of the rotation. I want to make it Like slower I just tweak it there and see what it means And see what it does to the game second Do you ever kind of tweak my game at runtime and exactly and it makes it very easy to I don't know like Play around with like the health of an enemy that you're battling in your game or challenge like the power Of the gun or whatever you're building. Yeah, you just expose a few parameters and you can tweak them very easily in your game Okay, great. Well, why don't we talk about that see a question in the chat about It's confusing typically won't these mono behavior overrides be protected virtuals So I think we're talking about those. Yeah update methods. Maybe the dot net world You're used to be on override something. Yes. So that's I think we can say it's a quirk. Well, which is specific to unity Is they're not declaring those methods as virtual One reason is that game developers have this fear of virtual methods because they've been told that virtual methods are slow So they're just looking for it by name and directly invoking them as a standard method goal Which also means that you can choose the the IDE to Override method or at least find which method you need to override Which is why we have the mono behavior wizard where we can select them and something that we built Like to go around the fact that it's not an override method Is that if you're inside a mono behavior we've Added from the intelligence the list of mono behavior that you can declare Like the list of messages that you can respond to in your mono behavior. So say you implemented on collision enter Uh, you want to have another on collision exit? It's directly accessible from the intelligence You present her and we're going to add it so we don't really lose any functionality there the fact that they've No, it's just some things that you have to learn right, but the the tool for unity are going to provide you with ways to work around the fact that they're not declared as Virtual methods, right? Okay, that makes sense All right All right, let's see what so what are we going to look at next maybe we go back to the sides here and take all right So one thing that I wanted to talk about was unity and visual studio Oh this one. Yep so Are we full screen? Yep. We get all right Unity ships pretty much every week and they have like Three to four major releases a year So we're not going to go into the detail of everything that's changing in unity and all the efforts they're doing to go like from triple a like quality of graphics to like 2d Pixel perfect games what I wanted to talk about is what's new in unity for dotnet developers because this is dotnet conf and One thing that has been brewing for the last year like if you've been doing like unity development You will have noticed that From inside unity the default right now is that you're targeting dotnet three five using c-shop for And this is dotnet conf. We are already starting to discuss about c-shop eight in the future Everything's that student dotnet four seven everything's that student that dead not state or two and unity For a long time has been using this version of mono as a dotnet runtime that offers a dotnet three five api and c-shop for surrealistically Unity developers have been haven't been able to use Or the nice teas and everything that shipped since Basically all those versions in dotnet four and dotnet four five right and c-shop years of years of fixes years of new features and when it comes to mono the open source dotnet implementation that unity uses to run the script well If no introducing unity 2018 an option to use this new mono version That offers a dotnet four seven api profile That offers a dotnet stir to profile if you want to target a smaller api profile to make smaller games But it also comes with years of bug fixes and performances as that the mono team has been doing for instance for Xamarin one big features that Come in performance improvement that come with the mono date is debugger improvements Where Basically attaching the debugger to this mono runtime would be much faster Yeah, so are we getting those benefits with the unity projects as well? And no unity is bringing this new mono version to run Descripts for unity games and you're getting all of that by simply choosing from unity to pick this new dotnet version Okay, so we can use Donuts 4.7 dotnet standard 2.0 exactly and in unity 18.3 Which is currently in beta and which is scheduled to ship at the end of the year They included Roslin as the default c-shop compiler and they're targeting c-shop 7 Okay, which means that once the nice features including like ref log calls that are tailored for performance sensitive code You'll be able to use them from your unity game Awesome. All right, so we can use all the all the nice things that we would want to use Exactly. So yeah, we're very much looking forward to that and the vstu team has been Working in cooperation with unity to make sure that everything that they end up supporting in terms of front time features or api profiles Basically, it just works from visual studio awesome. Yeah All right. So this is unity This is visual studio And we wanted to talk about Connected games and john's at your part. Yeah Let me check the chat here. Someone asked a question about how do you call a private method? So again what those Start and update those are marked private. Yeah, so you're not calling it yourself. It's something that you can think of it as reflection in a way And the unity engine is going to look at those private methods and invoke it Using like the mono a the mono embedding apis to make sure that the calls are actually fast Not using like the system reflection api which can be slow sometimes So directly calling them through the mono runtime embedding apis That's not something that you will call yourself That was saying start will be for instance would be called by the unity game engine itself At the beginning of your game So when you press play or when you exported it and it in the game actually starts And the update is going to be called at every frame of your game Okay, so these these messages are part of the like unity api for these scripts And they're there are ways to hook into kind of like almost like an api, right? It's like a protocol almost right that you need to follow for unity to talk to your script Okay, all right. We'll have to answer this question Um, is it possible to integrate a unity's scene in a wpf app? Uh, not today. It's not When you create a unity game it comes with the entire unity engine and unity Like act as a container for the script and not the other way around so it has to initialize So unity itself initializes the entire engine Uh, and then draws like this You're seeing and then course into your game script, but it's not something that you can ask yourself Okay, all right. All right. So let me talk about connected games So we talked a little bit like what getting started looks like What I was hoping to talk about a little bit once you maybe get past that hurdle And you've already started your game and We kind of developed games, you know today where everything is connected Maybe you want to do something multiplayer Maybe you want to sync some data between devices or you want to dynamically configure your game or something like that So I want to talk about a little bit how you can do that That's true like even if you're installing a single player games is the date will require you to be online Yeah, I mean, what if you change devices? Yeah, um, you know or as as a developer Maybe you want to send out an update without requiring, you know a full download of the game Maybe some configuration change or you do that makes sense So I wanted to talk a little bit about play fab And exactly what that so play fab is like a back-end platform for live games And so that basically what it allows you to do is do a lot of back-end services And makes everything really easy when you're building games So let's take a look a little bit about what we have for that So some of the services that we have are player management So things like identity and off authentication Some of those things are really hard to do So like if you're of a mobile game and you want to make sure that your users are looking in through facebook That's what you would use right? Yeah. So there's uh, you know all the social off providers There's a abstracted api to make sure that's all pretty easy to do Okay, so you can do that across multiple platforms There's some integrations with multiplayer There's some commerce you can set up like in-game stores and items handle in-app purchases and set currencies and things like that Oh, like in-app purchases. Yeah, that's And same as for logging in and authentication that that would be abstracted for like android in-app purchase or ios in-app purchase Right. Yeah. So the play fab sdk will facilitate all that for you Nice So you have a way to do that and then maybe you want to add a leaderboard to your game Of course something something simple. Maybe you're getting started. You just want to have a leaderboard So that's a simple just so you can compete with everybody, right? Yeah, you want to compete with everybody There's also real-time analytics So you can get data kind of real-time coming in so you can create events You know anything you want to do the player logs in or maybe they level up or any type of data You might want to see in your game. You can see that information real-time and you can there's dashboards to view that There's ways to run reports on that so you're launching your game and day one You can see everybody will start playing and other are progressing inside the game. Exactly. That's pretty sweet Right. So you could do all that real-time too, which is really nice So you can quickly respond to things that how they're changing in your community And then there's some things that are called some live op features Like you can send out email messaging to your community. You could provide content updates So if you maybe you want to provide New experiences in your game and not require someone to fully update The game so you want to like some downloadable content packs or something like a dlc Oh nice something like that. Is that having to users like to update the game itself? Sure You could also use that maybe to deliver content dynamically like so your your client of your game could be Lightweight and you could download like more assets Okay, you know sometimes you start up a game and there's a little bit of a loading in the beginning to download all the assets But the actual download of the game was Small like for mobile. There's you know, there's a whole bunch of systems to include that And you know in-game events or promotions you want to run within your gamer's ways to manage all that within playfab So it makes a lot of all these kinds of ways to manage a community in your game and and make money and handle all that It has all these different suite of products to handle all that so So yeah, that's like your back end for your connected game Exactly So one of the scenarios Maybe I wanted to show off this little bit is you're working in a game And you want to dynamically configure it So you have some configuration data like, you know, I have a player and I have some health or something and I want to set that up on my server. So if I ever need to change that I have to I can do that You know on the back end and then my game client can sync that information And download it without having like for you to push an update of your game Exactly Yeah, and maybe you're it may be even you're in development and you know, you want to do it for your beta testers And not do all that stuff and you know respond real time and be able to change these types of things So one way to do that with playfab is a concept called title data So title being kind of like a term for your game And then that's basically just key value storage So you can easily set up key value storage, you know, it's designed for configuration data that doesn't change Like rapidly but something that you could tweak or change And push to and push to use a base. Yeah and push to use a base that way So let me show you what that looks like. So let me jump in here To our other scene All right, so this is Basically the same thing that we have before. Yeah, so I have my saucer and Let's take a little beautiful saucer. Yeah, let me run this Make some more room here All right, let's switch. Oh, let me switch to the game view Yes, let me make some more room so we can see our scene. So same thing we had before So let me just give you a quick thing a tour of what I changed So one thing I did is I installed the playfab editor extensions. So it's an open source Package you can download that how do you get that? It's on the website and just go to like a Playfab and unity and then I'll take you to the github page and give you the unity package Oh, and click on that import it you import it in your product and you're ready to go So it's like an asset same thing we talked about using from the asset store and it gives you this little window right here And then the sdk tab if you don't already have it installed you can just click install sdk And it will install the playfab sdk for you and make sure that everything is up to Say even have a bootstrap or such again like update like it's gsdk Exactly, that's pretty so you can kind of manage it within the unity editor, which makes it nice So here is the title data I was talking about you can see I have a I have a couple key value storage things here So I have amplitude degrees per second and frequency and if we go back Let me open up the c-sharp project here So degrees per second maps to like the degrees per second of rotation of the saucer And amplitude of frequencies mark of the over movement that we had previously Yeah, so these were the Variables that you had made public and you were showing in the inspector and we were tweaking them in the inspector But you know, that's local to the development machine that we're doing So now what we're going to do is we're going to push those variables to play fab as title data And then I'll be able to change them on the back end and then our game client will sync with that So that if players were Like playing this game like live Like you could push like new changes and new configuration to sound Yeah, I mean, maybe this isn't a terribly interesting scenario, but you could think of a you were running, you know Hell you let player health or something and maybe their spawn health was too high You learned from you know, analyzing some of your events and you're playing never died Right, so you're right So you could go back in and tweak that on the back end and then the next time the game client launches You could you could be syncing that data. So you could tweak those type of values. So you can take a look here All right, so here's what we have so We call the play fab client api It has built, you know method built in for a good client title data And then we just parse the result to get our key value storage. So it returns the result with key value So very easy. Yes. Yeah, so very simple one api call Um, like using the keys that you set in the configuration Automatically play fab well like get the right ones for you. Right exactly very nice And this key value storage is just two strings. So you can make them whatever you want So when maybe your game scales you could make the values like full json values And I'll show you what that looks like in a minute. So you could really make this Sophisticated as you scale. All right. So right now I set these the default values are what's running so If we go here and We just hit update which is going to call that api you can see now All right, it's slowing everything slowed everything down. I changed the values and that's because the amplitude I set to two Um, and what these values are here? Is if we go back into It makes for less. So here's the play fab portal and here's the title data. So here's what I did on the back end So here's the two and I changed the degrees per second You can do it here in the play fab website On the back end too or for some of these things you can do right here In the editor extensions you need to extension that right and that will sink it to the back end for you So it allows you to not have to leave the editor when you're doing stuff like this Which is kind of nice if you're the developer working on this you can also view it as well Which is really cool. It's a mix for a less menacing saucer Right. So that's kind of a That's kind of a basic look of how you might use something like title data And play fab to dynamically configure Or deliver configuration to and it shows the entire point of play fab there It's very easy to call something like their api Which is going to abstract a lot of things from you from authentication to or the communication To your background and suggestion parsing Right exactly. So something That I can show some more of that But if you want to learn more about play fab you can go to play fab.com slash features And you can take a look at that and you'll see everything that's available there Nice. So do we have time for Yeah, I think we have a few minutes here. I'll show you one more demo of something that's cool. So we have this Uh sample here. That's a unity game It's called unicorn battle and I'll just show a little bit maybe more of a full story of how play fab And can be used for like an actual game project. Okay, so let's launch this And we'll do it windowed. You can see it's made with unity. Yep Powered by play fab beautiful All right, so we'll go in here So you can set up all the authentic agent too, but I'm going to skip that for the demo here Um, so here's what we have. So this is like my character selection screen And you can see here. I already made a character, but more interestingly Let's look at like a new character and you have some different Unicorn types here that you can select and you can see these abilities and like starting stats that I might want to have in my game On the back end Yeah, I was going to say I bet that's something you can configure Yeah, so if you look here at like this classes record here If we look at the json for that you can see Yeah, you can even have complex json objects. Yeah, so here's an example of like me uploading a full json file Maybe it's a little small, but You can see there's like here's bob Here's nightmare Yeah, maybe that helps. Nope to see that So you can see like I could change any of these values for the game that I want So there's all like the starting values for the game So that's pretty cool. Let me take a look. That's really nice if we create. I'll just go to my existing character here And click on play So here's my character Once you create your character, you can go back here and you can see okay. Here's my character that I created named roach You can see everything that my character has Let me go into character classes here All right, so I think in my inventory Oh, I got rid of it. Let me go back That's a complete game Yeah, it's actually a lot of fun Well, it's not here anymore, but take a look at this. So this is like an inventory so you can handle inventory You can create items. So here's alfalfa juice and there's a bunch of items in here So like crystal container was the one I was going to show you that's like a chest See if uh, so do you have public samples of playfabs that people can run? Yeah, there's uh, there are some samples you can find on there I'm not sure. I don't think the unicorn battle is a public sample. I'll have to double check on that But yeah, there's there's lots of learning material. There's a lot of tutorials, especially for unity Playfab also, yeah, uh, it also supports Multiple platforms, so if you're not building with unity and maybe you want to work on some other engine You can also do that too. There's sdk's for you know, multiple game platforms and also different languages Nice. So yeah, that's pretty much it. All right So let's see if we have any questions for anybody. There's anything in there No, it doesn't look like it Someone who started gaming with tech space But being able to create my own video games at some With graphics still misses with my head. Yeah, I know like When I look at unity, I mean if I had if I had unity when I was like 15 I would have Even been a bigger nerd I would have never left home I think and I would have spent countless hours just building worlds with unity. It makes it so easy Yeah, I agree. That's kind of why I got into it too because it makes it easy Yeah, um, you could take you know my background being with dot net and visual studio I wanted to of course reuse that knowledge and then being able to do with unity Uh, made it really easy for me to transition into kind of tinkering with games You know, I saw someone mention the chat. They wanted to do it as like a hobby. It's perfect Yeah, try it out. It's free Playfab is free You can get started with that individual You can use visuals to communicate as well. So I mean, there's really you know, there's low risk, you know, do it try it out You send us questions JB and I are both on twitter and I think well that's the best conclusion you can get It's easy to reuse your c-shop and dot net skills as dot net developers To be all very high quality game using unity and playfab on the background Exactly. All right. Thank you very much everybody. Have a good weekend. Thank you Hey everybody, we're live from studio c and channel nine studios and we're done. We're done. Yes Thank you so much everybody for watching it was such a successful event The three days have been absolutely fantastic. This last 24 hours have been like crazy, right? Raising overnight too in the morning. Thanks to James and Emma for joining us in the middle of the night. Oh my gosh Absolutely. So, uh, probably a little little statistics on the community days stuff, huh? Yeah, boy, not even now. I was showing it's like this, you know, the entire 24 hours were cleverly managed using a Printed out spreadsheet and red dots. So this this is the the core behind that net conf But what I think I was going to show you was this the history A little bit of a history lesson here. We started long ago in 2012 with ASP conf many many years ago So these are signs that that we all sign each year to say look look who participates So there was like five people that that's right because the internet didn't exist The internet hardly existed. That's right. I couldn't find the 2013 one. So we're going to skip straight 13s on lucky number We're going to skip to uh thirst.net conf 2014 out of channel nine out of channel nine studios here They're really good stuff. That was the actual .net branded. That's right. All right, so we expanded 2015 2015 right here Uh, yeah, so it's getting a little more full. I wasn't in marketing yet. So as you notice not a lot of people there I'm ruining a little space path. This was my first time 2016 2016 very nice There you go What's going on? Okay 2017 last year was two streams. Remember that craziness? multiple channels That one was terribly crazy choose your own adventure And last but not least the member of the family 2018 2018 Awesome people. What'd you guys think? It was awesome. You guys should we do this again? Here we go See you so much