Well, hello everybody. It is so Lovely to virtually see you.  I've was one of the founders of devconf us and We kind of modeled this conference off of devconf cz But I would also like to welcome my co-chairs for this year and last year in fact Sally O'Malley Sally can wave And or Vashi Mahani. No, did I say it right? Nope. I always say it wrong so one thing I wanted to say is as Many of you know, I kind of transitioned what I was doing over the past month to kind of a new job over at Boston University and I wanted to give a huge shout out to Sally and a Vashi for Really picking it up and taking the conference through and making it happen. I really it's there's a time when you drop the ball And then there's a time when you don't realize that you even dropped the ball And it just got fixed for you in the background and that's what happened here And I wanted to express my huge gratitude to how nice a job they've done So now I would like to introduce I'm not sure who's going first. So I'm gonna start with her Vashi and Because I think Sally might be doing the next slide. So Awesome, that was right Langdon. I'm going next and thank you for the amazing introduction. Hello, everyone Welcome to the fourth annual deaf month. You asked for the first time attendees We are super excited to have you here and for returning attendees Can you believe it has already been a year since the last death gone where did all the time go? We're really glad that you all could join us today First of all, we would like to thank our track captains for volunteering their time to curate all the awesome content You'll be seeing throughout the conference today. We would also like to thank Are the death can't the death con crew everyone from event planning to session moderators to social media managers This wouldn't have been possible without you. So a big shout out and thanks to all of you and now on to Sally I want to Definitely say that again a big shout out to our volunteers They were amazing this year and a big shout out to her Vashi because she is the one that kept the conference going So Some logistics you can check out the reception page It has all the information that you'll need to navigate the conference if you have questions head to the Helpdesk which is under the expo tab and there will always be somebody there to answer any questions You'll find all the sessions under the tracks tab each track or theme of the conference is a continuous room sort of it's a it's a it feels like a room because The talks are continuous throughout the day. So if you go to sked The schedule and find what time the talk you're interested in then just join the track at that time The previous talk may be finishing up. There may be a lull in between talks. Feel free to chat and Also during the talks feel please ask questions to the speakers use the session chat If you are asking questions, you should use the q&a tab in the session chat the moderators will be watching that If you if you use the this the chat the session chat, it's okay. We'll find it, but try to use the q&a tab. It'll be easier I don't think I forgot anything but If I did or she'll let you know No, you didn't that's great and just to let everyone know your The sessions and the tracks will show up five to ten minutes before the schedule time So right that's why right now you're not seeing anything under the tracks tab They will show up at 10 20 a.m. For the 10 30 a.m tracks All right So we know you all miss Boston and we'd like to bring a piece of Boston to you So we have created a video tour showing the amazing and beautiful places that Boston has to offer We hope you will get a feel of Boston via this virtual tour So join us back on the stage at 3 p.m. Eastern today to travel around Boston with us I want to interject there that this was an amazing idea that basically the video tour is being done by Participants in the conference So it is not like a professional tour And so you should really get some weird insights into Boston. I know the parts I submitted We're definitely some weird little clips. So it is definitely worth checking out Yep, thanks Langdon And we all need to keep our time with happy so we have arranged for some delicious food and drinks To get access take a few steps to your kitchen and join us for a virtual cooking class with a professional chef on Friday morning at 8 30 a.m Eastern We'll be making mocktails bagels and a frittata. So check out the schedule to grab the ingredients beforehand and let's get cooking Want to win some deaf conch goodies So join us for the closing and trivia session on Friday at 4 p.m. Eastern We will be testing your deaf conch knowledge So make sure you participate in all the events and attend as many sessions as you can for a chance to win Great and we have two contests running throughout the conference The first one is called shake it till you make it tweet a picture of a drink that keeps you going and tag us you'll find the instructions in the details at the in the expo in the help desk, sorry and and The other contest is red hot chili peppers that you'll tweet a picture of the results of the virtual cooking class and winners will be chosen and announced on Friday at the closing ceremony This is a lot of information to take in but just like any conference Just it's just like any conference, but virtual just enjoy and Engage and participate and we hope you really have fun here at deaf conch us. Oh One more thing that we we try really hard to make deaf conch an Inclusive conference and there are a lot of first-time speakers and that is awesome. So keep that in mind when you're giving feedback and Just maintain a very friendly crowd like we always do All right Sorry and so as we usually do at the dev conf Events is we announce kind of the next dev conf So the next dev conf will be CZ which is I think will be its 14th. Maybe it's 15th I don't know a ridiculously large number and The proposal for the CFP is open Probably right this minute if not, but it'll be done by for the weekend So you should go check it out and go submit a talk there if you didn't get your talk selected for this one I know they are attempting to do something in person But we'll see how that goes everyone knows the situation the whole world is in so, you know Hopefully we'll all be able to go But if not at least we'll be able to have a virtual conference and we can at least chat with each other But again, I wanted to reiterate what Sally was saying is that it is incredibly important that you Support the speakers at this conference. This is a conference that is meant to be a place to be training ground You know, we obviously have some very accomplished speakers as well as you'll see in a few minutes But we also have new speakers and we really want them to be able to grow and learn as speakers without having to worry about You know being criticized for you know, not being perfect. So make sure you submit your proposals Don't forget to submit your proposals for India, which will be after that And you know, obviously dev conf us in the fall of next year Hopefully person Yeah, one more note that I forgot there. I wanted to point out there are different chats So when you're in a session Up at the top right, you'll see the session chat tab that only people in that session can see the chat It's very easy to easy to toggle over to the event chat and that's in general Everybody in the conference can see that so I will make that mistake probably 50 times But I'm warning you yep, and If you're having any issues or questions or just want to say hi to us feel free to ping us in the event chat or at the Helpdesk under the expert booth Three of us will be floating around the conference throughout both the days And we hope you have an awesome conference Alright, so now it is time for our keynote drum roll We all love open source and I'm sure many of us love games too. I'm super excited to introduce our keynote speaker for today While O'Brien has served as a US Marine and is a business and engineering veteran with more than 30 years of experience in the corporate Enterprise and video game industry Much of his time nowadays is spent working with partners and the community to create business and open source practices for the open 3d initiatives in the Linux Foundation He previously served at Amazon as the game team team chief evangelist working directly with senior leaders at AWS To create the overall vision and strategy to define the o3d open source project Plan license and timeline and features Today we have Royale talking to us about building the o3d open source community welcome Royale and please take it away Thank you. Thank you for having me. We're gonna put a deck on this. This is I Can tell everybody this is gonna be like a fire hydrant There's a lot of information because starting up an open source project is not an easy feat All right, hopefully everybody can see it So today we're gonna talk about really not just open source of putting something out there But how to actually grow and sustain an ecosystem around it and to get it moving So, you know, it's kind of where do we begin? so if you think about it you first have to start somewhere of an idea and it really starts with that idea to question, you know, why would you do this and We took a look at the landscape and it was like well There's a huge divide between the big tech world and the gaming world and the funny thing is you'll find it big tech and startups They have a lot of you know open source use you'll find that they're really they really enjoy using open source They understand how to do contribute back into it They understand the quality security and the interoperability of using those projects But when we start going into games, you'll find out they don't share a lot And it's kind of generally licensed and you don't get much access to what's being built And so it came down to this we need more open source in gaming This was the basis idea that started of why going down this road and expanded from there And so you have to look at the landscape, you know, what does it look like? Well, there are AAA engines that are out there and they are proprietary But the thing is the source a hundred percent of it's not always available and there are strings attached And then there are other things such as if they're breaking changes that they do to the engine it can leave some projects orphaned or can be problematic and For in some cases when people want to build different innovations They'll wait until the engine implements or can support that innovation Which can kind of lag behind because you're following that company's initiative of what they're doing And then we look at the double a and limited purposes engines that are out there in open source They're out there and you know, they're pretty good But they don't really have the kind of high fidelity that people are trying to get to to build and commercialize like a triple a game or a high-fidelity simulation and in some cases they just lack modern features and when we talk about that I'm not talking about the small projects that have these great things.  You're talking about eight years at least to get the feature parity and then you have an ongoing commitment You've got to keep pace with the advancements which are continuously moving and then you have a huge amount of investment Just funding teams technology and then the other part is you have to have that specialized knowledge You're talking about science math engineering and you need developers who have years of experience in the graphics hardware physics Lighting engineering is going to be lighting networking cloud services and things like that and the integration experience You know, you've got to look at that expertise for binding all these things together How do we get my network stack my core my game loop my simulation? You know physics How do we get all these things to work together and then let it be diverse on different kinds of hardware and software? Platforms and OSes, so it's a pretty nasty web and it's very complex So to start out you've got to have a vision with a mission and so the vision in the mission We have here is that the mission of O3D is to make an open source fully featured high fidelity Real-time 3d engine for building games and simulation available to every industry if you notice We kind of grew outside of just that games we realized that a lot of other places are using the same technologies that are found in game engines so now you just need some values and I mean ones that people can actually really get behind and So if you think about it We had to first start out one of the things the core pieces of this Well, it's got to be neutral and I don't mean just neutral like you know a couple companies throwing it around I mean to all technologies in all companies, you know It's got to be something where the interfaces aren't just tied to hey I'm making an interface for Windows It's how do I make an interface is going to work with Mac Linux Windows Android everything and remove any of the encumbrances Possible so that any company can get involved and you're not tying yourself to one company It needs to be agnostic to the industry that means even though the core is based in a game dev engine It should be able you should be able to bring other industries who want to use these things if car companies want to build dashboards out Of 3d engines and things like that They should be able to strip it down and use it for what they want and it needs to be open Transparent and accessible that means that no matter what somebody's agenda or interests are it has to be open to the community To actually make those decisions in a distributed manner and it accepts the contributions from everybody based on the merit of What they're actually going to do and that's got to be you know, and you follow that to these values It's got to be easy to adopt that means as things change You've got to be able to onboard change the documentation the materials So they're up to date and people can explore how they can use it if they can't figure it out They're not going to touch it it needs to be fair That means any kind of undue influence bad behavior or pay to play You don't want where you have companies sponsoring this and then dragging it where it's a where it's a company's initiative It needs to open with a level playing field and then the other part is it's got to be modular This is really important because the problem is if you don't make it modular people have to start kind of shimming it into places into the core and it just creates a lot of breaking changes and Collisions and things like that so making sure it's done modular show people and take out what they want and use it That's really essential and it has to be platform agnostic, which means it can't just be built for windows It's got to be built for Mac or Linux or any of these other platforms and the architecture and operating systems because they can use it anywhere So to whom and why is this important? Well, why is it important to developers because that means they can spend more time building their game and simulation and not maintaining the Engine they get a big head start because they have everything they need in one inclusive package that they can build upon and They become a part of a community because it's about there are a lot of high quality experts in many diverse areas that are both Private and corporate that are contributing to this and it's free to use you have the flexible open source Apache 2.0 licensing licensing so that they can actually create their intellectual property and carry it with them So why is it important to companies then well because they can support and sustain projects So developers can actually depend on this and that means that they can drive and influence the future direction of the project If they build something to support it We all use our web browser today, but you don't build your pages in your web browser You use Photoshop or things like that these are the support projects that go behind one that create this kind of ecosystem And they can accelerate the needs by taking on kind of a formal role if they see an opportunity They can get involved and do something with it And it allows them to kind of better align their downstream projects with some of the upstream community And the other part is when when companies start trying to look for help or resources in an area It can be tough to find you'll find it in some of their game engines A lot of the really good engineers are hard to find but in an open source community You can go to GitHub and take a look at where they're making commits or go into like discord or where people are talking to find the talent And then the security of course by transparency because of a lot of contributors It's not in a box where somebody finds that hole which means you get higher reliability lower maintenance and sustainment costs So how does it get consumed so the license to the users is Apache 2 But there's an option to actually license it under MIT for different groups that need gplv2 compatibility But the contributions are licensed under both Apache 2 and MIT It's the requirement that we have to ensure that it can be used by almost anyone But the contributors can retain ownership of their IP and license it That's the thing they can make a fork and carry it if they wish There's no CLA that's separate We actually have a DCO that simply says that yes I can contribute this and this is what I'm able to do and you agree to it and The use of the name and logo for the related projects and services just you follow the trademark policy And the open-source versions that we support out of the gate are PC Mac Linux iOS and Android But it doesn't mean that we don't support the rest because you can actually do console platforms Xbox PlayStation switch, but you have to get the authorization to get from the console providers to get their libraries And it's delivered under an NDA from them, but understand the capability is there So if we take a look next at some of the benefits on the implementation of this for one complete fry freedom of licensing fees You get to actually spend your money where it needs to be You get faster innovation because it's open openly governed and collaborative So you have a lot of different groups that are working on a lot of different pieces that are brought up in a governed manner And then these implementations, you know, it's not like somebody's thinking. Hey, I think the world wants this You have actual needs and wants that the community is promoting through RFPs And as a result you get that support and talent that empowers this project growth research and development And of course having all the documentation ready to go that's getting updated for support is crucial And then of course the Linux Foundation, which has about 20 years of expertise in open sources in general So I want to talk a little bit about that with the Linux Foundation If you're not familiar the goal is to create the greatest shared technology investment in history by enabling open open collaboration across companies developers and users So the idea here is that the Linux Foundation is there to build ecosystems from All the different companies and initiatives that are all around bringing them to a level playing field so that it can be adopted on a global scale So and it's more than just Linux you might recognize a couple of these logos things like you know Jenkins and Oat GraphQL and You know node Risk so the thing is it's the largest open collaboration nonprofit You have 1,700 members across 40 countries 100% of them a 4200 tech and telecom We have over 40,000 developers that are contributing on each of these different projects So there's quite a bit happening here and there were over 300 projects that are underneath of it So you've gotten pretty good at it So what is the thing that the Linux Foundation actually puts into this? Well, they have the governance and membership where they actually help make sure the policies are together that the business development and membership Recruitment and the management of it stays on top if you don't have people you don't have a project Also making sure that the technical decision-making getting the technical steering committee put up making sure that the lifecycle is operable Make sure that we have release process and mechanisms that are in place and also making sure that you have the continuous integration Development infrastructure so that you can use the best practices so people can actually get to the to the software And at the same time you have the different release engineering DevOps security And also it's just as important to have that ecosystem development Which is the evangelism at the outreach projects bringing developers to conferences bringing them together and helping train different developers and Administrators and kind of put together that professional certification program So people know when they want to hire or use someone that they're credential They know what they're getting and then of course the IP management Nobody wants to try and build a project on Something that has patents or potholes if things are going to get them sued when they go to commercialize the product So that's one of the big things that the IP management making sure that it stays clean So people can use that even when there are groups contributing in so open source You can't just throw it over the wall This is one of the first things that we kind of ran into when we started down this road And that's because sustainable ecosystems matter Now when I talk about a sustainable ecosystem in open source It's not like kind of like Gen 1 and Gen 2 and the current generation of Open source projects you'll find out that you have a lot more companies that are involved with groups And so the way that we've looked at this is from a flywheel mechanism You have a technical community that are working with companies and that community has felt needs. I need this product I need this feature. I want to see this I want to do that Which are great because it's driven by that and so they work together with both Engineers from companies and the community to start building these technologies was a result It winds up creating products and these products then actually create markets that companies can get into and they can start generating Revenues which allows them to be able to participate back into the open source project So this flywheel allows it to continuously grow where it goes back into the technical community and we repeat the cycle of innovation So to a company perspective they look at it where projects Create products which create profits and there is a balance here of this flywheel between community and commercial We're creating that alignment is actually essential for rapid growth because they have when they have that ecosystem They can support the open lease about developed technology into those products and solutions Which then when they're able to turn into profit they contribute back And so this is a sustainable ecosystem where it's not just driven on who's going to show up But also who is aligned to make sure that it's successful So who would be your partners when we took a look at the partners We wanted to say well you have to make sure you have a motivated community and the right partners for growth So some of the ones you might recognize here like Adobe Intel These are different companies that have interests that believe that an open 3d engine would be fantastic And would be able to have the right opportunities from their grow with and so we wound up talking with each one of these Walking through what does the case look like and you'll find out you've got everything from large companies smaller game developers support companies you have You know open-source projects as well you have support groups for the independent game developers and education that are involved So you have to complete the ecosystem.  You actually have to be able to address each one of those different areas to complete your right ecosystem to motivate the community and The thing is the community needs growth and It's key if you don't have community You just don't have it and people need to be invested in the project You have to be able to encourage open discussions if they aren't talking they don't feel invested They're not sure what they're getting involved with and not everyone is a coder people think well when I get involved in an open-source project I need to be able to program. It's not the case some of the most brilliant ideas come from people who are not coders Becoming a coder is the result of something but you still need people who like process and flow and art and Documentation and these are all just as critical because without them the project can fail And you have to provide ways to mature those creative ideas You don't want to just shut someone down You want to open up a process where people can actively contribute from their disciplines and then having events meet up some jams These help strengthen those bonds and relationships which then strengthens the community The expectations are essential you cannot overstate what the capabilities are if you walk out there and say oh This is the greatest thing since sliced bread and the world finds it That's not today you're gonna have a dead project with a lot of frustrated people So don't ever overstate give a roadmap show people where they can find the work in progress of what's going on and then Also highlight the maturity of a feature or a platform if there are things that are new that are great highlight it talk about it people may find some things that could be make it better Or really they could say hey, I incorporated in this way and you've got yourself a great use case Don't ever compare yourself to others. It's just bad practice The reality is that you are building something that is unique to your community You don't have to compare yourself and the funny thing is an open source a lot of other projects that maybe you may compare Yourself to they may be more beneficial for them to use some of your technology and you to use some of theirs So why create an adverse scenario when you don't need to so comparing yourself doesn't really help anybody Especially an open source and clearly communicate what works now and what will work later? So in other words you have to tell people here's what you can use Here's what's gonna be buggy or cause problems so they can understand. What will they build with this? Transparencies require don't go into a dark hole and try to plan you need the different perspectives to provide the greater Capabilities if you take this whole thing and you kind of go Hey, let's go talk in a dark room. You've missed out on half the community that can contribute Meetings are done always in the open so in other words, there's nobody that can kind of have this background agenda It's always in the open. Everyone can talk about it We do RFP's request for proposal and what it does is you take an idea You put it up We have a template and then everybody contributes to it and it matures into a feature that's well thought out You don't have to be the only person thinking of something and the more people it gets behind it The better it will become and having a consistently public schedule that allows sigs to grow This is a big piece too is that you want people that if they know they're involved with a special interest group And they want to be involved in that discipline They can show up at a scheduled time and always be able to put into it what they want for their interests And when I asked a question in private ask to move it to public Just try to keep it from doing side DMs and things like that put it out in the open You'll find out that a lot more people are just as interested as the question is and try not to be embarrassed This is how we grow and how we mature as a community in a project They get open source communities can get really upset when they aren't given the opportunity to contribute when you're talking in a dark space And you're not transparent. They don't get to contribute now. You're fighting an uphill battle of why didn't you even bring this up? Why is this a sudden bomb?  It's all communication and at the end of the day the talents and ideas speak the loudest It's great that you've done all these amazing things in the past. What what can we do now? What is it you contribute you'll find out that people get behind you and your projects must faster by doing this and Encourage issue and encourage kind of raising issues that need to be discussed Changes is only effective really if you're using your voice And the other part is that you've got to have frictionless discovery and contribution people have to be able to communicate We use discord as a central hub That means that you'll see hundreds almost thousands of message flying through per day in each one of the special interest areas The providing special interest groups will help you focus the feature disciplines and the social media sites like Reddit and things like that You want to highlight these achievements The automation of social media is where we have if something gets posted on all these different social media sites They actually go back and they kind of post back into discord So we don't have any islands of information if you post something in reddit It shows up in discord discord community comes out and talks in reddit So you find they blend in and then you have a clear process in docs so that people can onboard into the community quickly These are essential and then having simple tools like search capabilities so they can find historical references Allows them to save a lot of time and frustration and asking the same questions over and over And we have a governance the governance is what provides the structure I'll give you a quick rundown on this. We have a governing board that makes a business and budget decisions Premier members are companies that put in a project and considerable money They have a governing board seats each and then we have general members who are companies that put in smaller amounts But have a project they get elected governing board and that's for doing the business and budget decisions Then we have a technical steering committee, which is completely separate that is the strategy and conflict resolution There are nine seats in there four of them are selected by the governing board But five of them are done by the open source community Which means that at the end of the day the open source community actually drives where the project goes from a technical perspective And then we have the special interest groups which actually go through the product features and selections And then the maintainers and owners which are done through an election process usually a simple majority vote Special interest groups they're divided into these sigs They're really important because they're members from different disciplines with a common purpose of advancing that topic So in other words, you don't want to be talking about rendering inside of networking It just becomes too much of a clue. So your special interest groups help you segregate this and there are a lot of disciplines involved in this project And so it allows that focus distributed decision for each topic like what should we be doing next in graphics? What should be doing network next in networking and then providing the focus resources and forums so that we don't have that cross You know that that cross noise of things that aren't related but still having those pieces put together where they can Collaborate when it crosses multiple sets special interest groups So they can get worked on and bring new contributors in and then they they have that kind of code ownership Where each sub part of it has their pieces of what they'll be releasing on schedule and what they're managing by the SIG And that goes for how it rolls up to the technical steering committee So if there are any conflicts they can resolve them with an overall view and the technical steering committee is made up of the people from the six Give an example. These are the six that we have Development pipeline content creation core engines You can see some of these things that we have laid out people who are interested in those areas They get involved in those areas if they don't have much knowledge in there. They may not go in there and So things like platform graphics and audio the release SIG security testing UI UX we have all these different areas so people can actually actually do what they want in those areas where they enjoy the best So let's talk about this kind of solution here There are major components. We have an editor Which is all the component entities the effects the terrain vegetation and that actually can provide that renderer Which is a brand new render and I'll talk about that. I'm going to dive into the technology after this But where they can do realistic 2d and 3d in a scene they have a deferred Rendering and lighting system. We actually have partners that are doing some of the particle effects Like popcorn effects. We have a shader material system That we have as part of this as well And then you also have the animation system so it has a complete motion effects animation system in it the cinematics The networking clouds you have a full networking stack That's kind of like reminiscent of the quake tick model And I'll dive into that as well and some of the cloud services support And then you have the platform support which means mac windows linux with authoring and runtime support So i'm not just talking about how do I make a linux world that just plays games? I mean I can go and edit it and build my game in linux and never have to touch a windows machine Or the same thing in mac The other part is that it will also compile out to android and ios You have vr and limited vr and ar support which is still being matured and of course the console support So you can build your project in one place and be able to have it expand out into multiple areas So let's get a little dirty here um get under the hood and let's talk about what we're what we've got here on this Mind you this is the developer preview We decided to release it earlier than later when everything was perfected because as I said it technical advancements They keep moving forward very quickly So there are a lot of things that work and a lot of things that are broken And that's part of why we get people involved in the community because the velocity of what's going on in this Is been absolutely ridiculous with the number in uh with the number of people that have been contributing code and building on this So the first thing we did was uh, we decided it was a change in approach and really making it unencumbered So it's no longer monolithic. You'll find out that when you start using a game engine The first piece is if you're on you know unity or unreal okado, you are using that engine You're not going to take a piece of unity and shove it into unreal or vice versa You're on that engine So we broke that model instead and said that you don't have to adopt the whole engine We separated all the components and made they're completely modular So that means that everything in here the rendering system the networking system all of the different pieces here These are all actually libraries that get loaded from a bootstrap Which means you can detach and separate them and use them in another project if you wanted to So you can adopt what you want with your current stack Let's just say somebody has a game already and they want to use the new network stack They could rip the network stack out of this as a module and reduce their tech debt You can take the renderer in here and you can literally disable it and it will still operate So as a matter of fact, there's a couple of groups right now that are building True ray tracing software renderers on top of this And the other part is having that kind of cross industry innovation support Which means having film and action animation where we're driving the aces color aces color space compliance Fbx also supporting usd and hdr 10 standard so that when somebody starts building on this You actually have hdr native in any color space that you want to use That also means that looking at how games training and simulations are driving the arm vr with pc and mobile devices And having that native arm exit arm arm 64 x 64 support for all the pc platforms as well as mobile devices and consoles as needed So the data driven next next generation rendering so this is actually a live shot That came out of the engine on what we're doing and we'll be able to post this later on So you can zoom in and check out all the fun stuff happening here with this So we have adam, which is our new renderer from the ground up to pbr Data driven renderer and so it supports vulcan metal direct x12 with ray tracing support and we have hlsl compatibility We extended it for azsl So that you can do kind of more exporting and control per rendering back end And this is kind of important because it has a rendering pipeline interface that allows you to do creation of forward Forward plus deferred or hybrid through the pass system That means that if there's a preferred rendering model that works better on mobile versus pc You can use that but not have to rebuild your entire game And that means you have no limitations in other words each one of the render eyes The render passes can be made to match the particular hardware restrictions And you have the global illumination which allows the forward or deferred on a per mesh per material basis with the different filtering support And there's no restrictions on the resolution size for reflection cube maps We have support for parallax correction mixed reflections per render pass runtime editing and the visualization for lighting artists And it's fully multi-threaded and it's a modular renderer. Like I said that you can pull apart But that means we can also do future distributed rendering rendering supports You could render out to multiple boxes multiple nodes or cloud instances We went there with a quality kind of a quality of life We want the c make build system and that allows us to open up kind of c test gems code and gems and code generation So that means that you have your native ide environment project generation visual studio xcode ninja client make All that you can find on github on how to build it or you can go into discord and people will actually show you Here's how you can build them and that also allows you to kind of edit and continue and the profiling with the tool support And the thing is that when you have this you actually get a proper dependency tree So that when you need to build the target you're only building the actual dependencies that you need to worry about Instead of just building the whole entire thing So the other part of this was the ly sdk, which was so that you don't have to recompile everything So you can actually use pre-compiled binaries and libraries and header support The engine of the project can live in independent folders And you can update the libraries that are used in the in the game engine folder versus the game project folder So that means you can add or remove pre-compiled gems and not have to recompile the entire project on the changes And if a new version comes out you could take those new version binaries Plug them into your prior project And as long as there's any long as you don't have any kind of compiled issues or incompatibility You can use them and not have to recompile those whole areas The good part about this is that if you decide to customize a particular module or a node And not create your own gem You could continue to use upgrading of what the public binaries are and just throw yours in there as part of the pre-built components With your custom modules. So it kind of saves a lot of time when you're doing that We took the physics approach on this something a little bit different now as the fault we have physics That's in there. We don't need the old cry physics, but it's data-driven design For independent simulation. So in other words, it's not just bolted for for physics It's actually an api system and we did that intentionally because we knew that developers wouldn't just be using it for games So i'm going to do, you know, uh water dynamics and air flow dynamics And so we made it as an api so that people can actually plug in the physics systems that they want to use And so as a result, you don't have to unwind code That's been the critical thing making sure you don't have to unwind code to put something in And then we have the script canvas 2.0, which is the ability to actually writing code Kind of the drag and drop connect code logic so that you don't have to Write anything so i'm familiar with like blueprints It's the same kind of model that you can actually do all of it with just drag drop and connecting logic But this will compile down to lua and we have future native code support We have a behavior context that actually allows you to connect any language into the system and be able to extend it out And then you have the reusable prapid prototyping without having to rewrite everything for optimized output because it's actually able to compile down So the networking stack, uh, this was a rewrite as well So we have a highly flexible tcp udp low latency transport That's behind a simple api, which means you have encryption and compression support But we built in the simulator so that you can do your latency jitter reorder and loss Um, you know within the stack itself We have where you can do entity replication using unordered unreliable data replication for the lowest possible latency Uh, and then you have player hosted and dedicated server. So you can do, uh, you know peer to peer Or you can have dedicated server or scaling But we have the local prediction latency compensation with the backward reconciliation So that you have the server authority to kind of keep some of the cheating at bay And you have detachable player behaviors. So in other words, you can, uh, automate that desync and correction based upon what you want To have on the player behaviors of that are actively going on And we have rpc and future elastic fault tolerant multi server support So in other words what you build on top of this network stack as we continue to mature it And we do multi server support you can then scale it to multiple nodes have way more users per server instance Um, or do it in a cluster and not have to rewrite your network stack with the same prediction reconciliation So the ui improvements, um, the whole entire engine is fully asynchronous loading So in other words, it's all it's everything is streamed in without Any kind of blocking, uh, it has support for it, but it's all asynchronous loading So now you get to take advantage of how the underlying file system operates And how the system can actually run depending on what the hardware you're using But that reduces the cpu memory and overall load times We also have the python ui tooling So we found out the big thing here is that people want to be able to customize the different modules of how they use the editor So the editor itself is all built in qt And so we have the python extensions and within the editor you can actually write python and create a whole new editor Or a whole new modules or do automation and create custom editor components right through python Or you can write it in c++ if you want, um, which is the native engine We also updated the math on it because a lot of times you'll find out the engines don't have the newest optimizations for the new processors So we have an az simd library which produces the best simd code either for x64 se arm nova Or it'll do pure scalar code if you need for that compatibility But this means that we also built that in as part of a transform library that as the position quaternion orientation And scale fields so that you don't actually have to convert out of these type of Out of these transforms and positions for an intermediary to get a graphics to come back You can actually do the direct trans transfer calculations natively in the libraries The other part is we have native prefab support so that means you have reusable assets with complete properties components and hierarchies Everything in this engine was changed. You'll find out that a lot of things With it are commonly an engine You'll find that they used to they like to use binary formats for the authoring Everything was changed to jason which means it's all human readable text formats You can go through and write all your scripts and change everything you want in the background Just shifting it all with jason and so the media tooling we have an asset builder that when you bring assets in They don't get compiled when you go to build it out They're compiled on the fly as you bring them in and then they're ready to go The thing is you can actually do a pre and post step So if you have let's say an fdx with a lot of objects in it where before it gets processed You could say break this out into a hundred objects and re-home them to zero rescale them to zero And then I want you to build custom shaders based on these materials You could do those in the python bindings and modify them in-flight processing If you have certain types or structures you want to do that means that gives you that custom behavior for how you want to Split assigning re-home Assets control we have greater faster processing. So again the material creation Everything is done in jason So you can actually build everything you want for complete control The asset processor is reduced to seconds is able to recognize things that have already been processed and skipped over them So that you can get into your project much faster And we have a motion fx animation system that uses kind of a new shared format for mission characters And that allowed us to make things run a lot faster for modern gpu and streaming when you're doing animation to kind of prevent some of that hitching So the project management all the complex tools all these weird funky binary tools They've all been removed and basically it comes down to a simple json config Projects and gems if you want to add gems or modules into a project. It's done with cmake and json You can literally update a gem. You can go into the projects json and edit a line and include a gem and it's there You don't have to go through a long drawn out process But at the same time your libraries and enable components are done where they're self described so what happens is When the components are put together It is actually able to do the reflection on it on load up and that allows it to understand What things what functions and calls are available within that particular library and how it can be used You can use simple python scripts that actually do the automation of creation for gems and projects or the management of everything So the core improvements that we did in here a few things if you've done a lot of engines Um, the big thing here is we have all of the libraries are done with a standard interface So we did that as a replacement for the single handle for ebuses So that means that for each object that you build it's able to reflect and expose the interface of that that library To any other caller which means now you can do direct function calls with autocomplete out of your say visual studio or your editor And call the functions directly instead of having to go through a bus We also changed our event system using kind of c sharp event design patterns So you don't have to worry it so it kind of replaced our notification bus But then we also have a scheduled event So you'll find out a lot of times instead of ticking constantly for every frame You can go through with a scheduled event set time placing and priority So that you don't have any starvation or you're not running your cpu out And you can increase the number of objects that you're working with The console supports supports network sync to cvars So it makes a mock of the actual raw type that's thread safe And that allows you to use it by other threads And we replaced our logger so that you can actually do runtime toggling and taggable Without having to recompile so you can change The layer the levels of logging without while you're actually operating it The quality improvements we changed some of the collision and culling The old octree that we had in there was much faster But this time now we've moved over to spatial hash based Which allows us to do that kind of an adaptive octree to cluster spatially closed entities The reason for this is because you can visit the cells of the entities rather than individual entities And that guarantees that unique set of entities per cell So that means that not one of them exists in more than one cell So I don't need to do any sort and deduplication as a result So now you have the generic intersection testing spheres wwe frustrums And it's built on top of the simd layer which allows us to use the caching and paging for top performance The auto gem programming pipeline on this thing here that we put together It has a code generator which allows you to do the expansion times on this With no real custom binary requirements You don't have a binary executable you need to use and this can build work with the cmake system or python scripts So you can allow that kind of data files and templates with expansion rules in your cmake To operate this with regex wildcard matching To support kind of individual bulk files, but it's all data driven So in other words, you can use xml or json documents and use ginget to as your templating language And the last but not least we have a white box So it allows you to do the fast creation of manipulation for rapid prototyping It's all driven by python so you can create and extend and modify this as you wish So we'll go real quick over to these industries some of the areas that we're looking at where people can get involved We have from hardware simulation game publishers dev studios kind of oil and energy And then also you've got real estate automotive training and self-driving companies The events We have o3d con coming up if you haven't seen it go check it out. We have our first conference This is really essential for how you build a community start building conferences We'll have about 21 dev tracks for people to learn how to use the system That we're putting videos online and having live presenters and then we actually have an entire schedule of different talks that are involved in game Diversity and inclusion and things of that nature within our second day track The last part here is cultivating which is driving the adoption through every industry That's putting that training and education through leadership Building white papers and sharing success stories between companies and and and consumers Building the interactive landscapes so that people understand who's using it. Why should I care about this? The different training courses to evangelize and promote the best practices creating a Developer certification and then launch some of our dev stats and then of course a meet-up program to do all of this The other part of this is to make sure that we're focusing on diversity and inclusion within our communities to make sure We have a safe place for people to be actually use all their brain power I think there's a quite a bit of that's untapped and we need to change that So that means providing internships for underrepresented groups to work on projects some of code community bridge So the other part is the diversity scholarships and accessibility for events Partnering with other organizations that are focused on these things like women who code travis ci and esa And then also working with different Different communities such as gdc packs e3 and being at those conferences working with them as well as the collaborations with aswf for film energy AI and machine learning That's everything if you're interested in what we're up to we have a discord channel when you get in there It will probably overwhelm you because there is a tremendous amount going on and thank you for your time Thank you royal. That was an amazing key. Oh, I can't hear you Can you hear me now? Nope So i'm sure that was a real firehorse for everybody, but there's a lot of information I will turn my sharing off All right, okay, um, I just found out that I can be heard All right, uh, thank you royal for the amazing keynote. Um, we had a few questions Um from the chat, so i'm gonna read them out. Can you hear me any better? There we go. I can hear you now Good to go I guess you can't hear me No, I can hear you. Can you hear me? Oh, okay. Okay, sorry. We're good You can read other questions. Um, so the first question is apart from amazon games Who is using o3de and industry now talking about partners the real-time usage So it's very early in the stage right now for o3de. So we have different there are a considerable number of companies that are not part of amazon There are from the last I remember There were six that were actually building Products on it that are not part of amazon that are working on this o3d that are working with this o3d engine That are not part that that are also not partners But I can't say who they are because it's until they decide they want to announce it All right, perfect. Thanks One more question. I'm wondering what the evolution of this from close to open has been What of these were hardships? I wonder what different projects they consider in those decisions to split out to jason and the And the python plus qt, etc How are they working with their parent programs? What were the community versus project leadership decisions around all of the elements? That is boy, let me tell you Um, so there were a lot of decisions that went into this on how to arrive there One of the first problems was really taking a look at what are the pain points people are dealing with when they actually try to build that And the reason why jason came around it's most flexible Um, and binary was just prohibitive. Uh, it became such a problem for so many areas because you had to write your own tools I'm a big binary junkie. Um, I'm actually developed by trade for over 30 years So I don't mind writing code not the binary but For the rest of the world It's not really as much of it Some of the decisions on how we did this in the community model was taking a look at What was successful and what was not successful and then what applies to the games industry and what applies to different verticals And how do you actually grow that? So there was a lot of research that went into this to figure out What were the best practices? I've been involved with this from day one um on all of it so Yeah, there was there was a tremendous amount that had to go into how the decision were made and to be honest You never get them perfect and that's why we have it and it's why we put it out at the time We did so that we can continue to hone and build this with the rest of the community um There's something to be said about having you know thousands of people Kind of kicking at you and uh looking for where the holes are to help fix them Right. Um, okay one more question. What is the timeline for your 2022? 2022 um Context isn't really there. So I'm going to take a wild guess on it Uh, so in 2022 it is for one We plan on getting a kind of a ga version of that's not a developer preview by the end of the year in 2022 It's having quarterly cycles of regular instances uh really working on building more game jams and development and uh development studios to build on top of this Getting more partners that can bring some of the very, you know, the mature commercial tools Into this so people can build some pretty wild experiences And also, you know, you've got to start taking a look at things that are going on like the metaverse And vr and ar and really building on top of those And helping people understand that this is a platform they can grow with and they can build with And if they decide they want to take pieces of it and put it elsewhere that works as well But it's really about how the community can build and adopt something that we all want to use Awesome. I think those are all the questions. Thank you once again for the amazing talk If you all love this talk, we have a lead coffee scheduled for later today at noon Which is a structured but agenda less meetup Where the audience decides the topic and the theme for that lean coffee today is open source in gaming interactive media and entertainment So hopefully to see you all there to talk more about this and thank you so much once again, royal Thank you very much. All right So the sessions are going to start in about four minutes. Take a quick coffee break and we will see you in tracks in four minutes Thank you all and have a great conference


Asking for help. We all have to do it at some point even if you're the best programmer in the world There's so much that you need to know that you're not gonna know anything anything everything and Eventually, you're gonna have to look stuff up I mean you're always you're always looking stuff up as a programmer You're always looking stuff up, but occasionally you find things you can't find an answer to you just don't know The right wording or whatever the issue is so you go to a forum or a chat and you ask Okay, so here are two a couple of rules for people asking questions and people answering the questions Because I have issues of the way people do both of them. First of all if you're going to ask if you have code You've been writing and there's something wrong with it Don't just post a screenshot so many times we'll just post a screenshot of their code or even worse They take a picture of their screen with their cell phone Okay, if I'm gonna answer your question I'm not gonna sit there and look at your code and try to guess what's wrong with it I want to run that code on my machine and see what errors I get Maybe you're typing everything right and you're just missing a dependency and if I try to run I go He doesn't probably doesn't have this dependency installed or something like that Always post your code if it's just one or two lines of code put it in the comments If it's more than that you have to post it you should post it somewhere like paste in get love get love Get hub get lab someplace where I can copy that code or download that code and try running it I want to actually run your code to try to find out what's wrong with it Okay on the flip side if you're answering somebody's question actually try to do what you're asking I don't want to call anybody out, but currently I'm having an issue with a program I'm trying to write trying to detect some inputs right and I've asked the code and I said this is what I've tried I posted it right in the comments because only like two lines of code. I tried this and I'm not getting any response I have two people currently trying to help me But it's obvious that they're not actually running what they're saying because there's typos obvious typos That they're they're doing and they're still trying to look at the input the way I've already checked I've already stated. I'm not getting any input when I run this command, okay? And I don't want I get I want to go into specifics because I don't want to call anybody out But it's clear that the code they're posting isn't code that works because again There's typos in it and it just doesn't make sense So basically they're saying I think this is the answer, but they aren't actually trying it and I respond to both of them saying no, that's not working. Did you actually try this and Got it working and they both replied and neither of them actually said yes, I tried this or no I didn't they just said well, this is the code. This is how you do it and they Type the variation again with obvious typos in what they're typing So it's not code that they actually ran and now they're copying and posting for me to try and it's kind of aggravating They shouldn't say this is the answer because I know how to do what they're telling me how to do the thing is the specific Scenario, it's not working and I tried it on multiple devices desktops, laptops, phones, and it's it's not working and they just keep on telling me to do what I already know how to do and It's not working and again It's clear that they aren't actually running the code they're typing because the code is not typed properly If you're going to answer somebody's question You should actually type that code out on your machine run it and see if it works Then copy that and put and post either again in the comments on paste then or get lab or someplace where I can now get that code that you wrote to try it and if it works on your machine and Not on mine. There's something different either. I was typing something wrong But if I'm taking your code and it's not working There's something else different than I need to figure out and I'm doing something different than you But if you're just guessing at what the answer is and you're typing that and not trying it It's like for example one of the responses They put such and such equals such and such Well, the the thing it equals is supposed to be a function supposed to have parentheses and they didn't have the parentheses there So obviously they didn't run this code because they just posted they just type something out knowing Oh, it's this is the the function, but they didn't actually put the parentheses So it's not code that actually runs so I know that they didn't actually run this code and post it so If you're asking a question actually post your code so people can try it don't leave people to guess or have to retype everything that you've posted in a screenshot and If you're answering again run the code first and then give them the code that you ran that you know works That's it. That's it. I'm not trying to be rude I'm trying to just educate people on how to do things properly if you're Asking or even giving advice you should do it in a way that's respectful of the other person and doing these things is just Disrespectful to post a screenshot to where they can't actually run the code or to give them code that you think might be right But it probably isn't okay. Thanks for watching and have a great day To some place a bird just pooped on me a bird just pooped on me I've never been pooped on by a bird before and it just pooped on me