7 months
ago -
Ashes of Creation
-
Direct link
Transcript (by Youtube)
0s | [Music] |
---|---|
15s | hello everyone and Welcome to our |
18s | glorious ashes of creation June |
20s | development update we hope that everyone |
22s | has been well and safe we know this |
24s | one's coming a little hot for you that |
26s | just means you got to look on the bright |
27s | side you get two in July technically I'm |
30s | no this this is like a Fourth of July |
32s | stream we should have had uh we |
34s | fireworks and cration just explode some |
38s | money um obviously you see a different |
41s | face uh here as well I'm Margaret CR |
44s | your director of communications and with |
45s | me as always is Steven Sharie our |
47s | creative director but we have uh Brian |
49s | lford who you've seen on the stream |
51s | before but he's joining us for this |
53s | little special one and a while Ash's |
55s | merch you're G to make him |
58s | jelly yes look good yeah you can see |
61s | some behind him as well but uh as a |
64s | little sneak peek we are working on |
65s | merchandise we know that we've been |
66s | getting a lot of people asking us for it |
68s | takes time you have to go through |
70s | manufacturing and you have to find the |
71s | right people that you want you have to |
73s | get all your designs ready and then it's |
75s | back and forth getting samples and then |
77s | you have to have our models inhouse like |
79s | Brian that's testing everything yeah you |
83s | got for us um but yeah so we'll just get |
88s | right into all of the goodness but as |
89s | you can see both below us what we're |
91s | going to be covering today is reminders |
93s | server meshing technology Studio update |
96s | art update and we'll have some Q&A from |
98s | the forums we'll also be pulling some |
100s | live questions as well as we usually do |
102s | after the server meshing technology |
104s | stuff so stay tuned for that um but |
107s | before we begin those things we have a |
110s | our quick reminders and the first one |
113s | here is of course our YouTube Spotlight |
115s | and if you would like to be spotlighted |
117s | for our YouTube uh Spotlight all you |
119s | have to do is subscribe to over on |
120s | YouTube make sure that you are your |
122s | subscription shows publicly it's a |
125s | little weird thing um and leave a |
127s | comment on our development update the |
129s | full development update and you could be |
131s | chosen for next month so this one is |
135s | from Kevin um and they would like to |
137s | know love the vid are there any plans in |
141s | the future of making skills that require |
143s | team effort like 10 Summoner players in |
146s | a guild sacrificing 50% of their HP to |
148s | summon a giant Golem that can break down |
151s | walls and Gates and sieges or act as a |
155s | front to block damage from enemy arrows |
158s | maybe 10 Mages sacrificing 50% of their |
160s | Mana to cast an ice storm in certain |
163s | area that significantly reduces movement |
165s | speed which can be used on holding down |
168s | choke points that was a lot they had |
170s | they had some imagination go into that |
172s | one I mean regardless regardless of the |
175s | specific examples there right um I think |
178s | that the Crux of the question is do we |
181s | intend for there to be Synergy between |
184s | multiple archetypes or different |
186s | archetypes in skill activation and I |
189s | think we've talked about this in the |
191s | past we gave an example actually I think |
193s | I heard a Gollum in this example but we |
195s | gave an example of Summoners summoning a |
197s | you know using combined powers to summon |
199s | a larger Golem there is a desire to |
203s | explore that path I think our ability |
205s | system facilitates that already um one |
209s | of the things that we look at like right |
210s | now with the current archetypes for A2 |
213s | there's a wall ability on the tank it' |
215s | be nice that as you're in a party or in |
217s | a raid you as a tank have the option to |
220s | set on that ability whether or not you |
223s | want that wall to connect with others so |
226s | that it it it uh it snaps to another |
229s | wall potentially creating a stronger |
231s | barrier those types of interactions I |
233s | think are interesting I think they're |
234s | cool I know the combat team thinks |
236s | they're interesting and cool um we |
238s | definitely want to aim for that being a |
239s | potential |
241s | um right now that hasn't yet been |
242s | implemented but it is something in the |
244s | future that I think we're open to and |
245s | want to explore really awesome and of |
249s | course we have our Dev discussions we |
251s | love whenever you all uh give us your |
253s | feedback we're wrapping up The Siege in |
255s | war on so if you have any feedback on |
257s | that one definitely go go over there but |
259s | right now we have camera perspectives up |
261s | which we want to know about camera |
262s | perspectives what camera perspectives do |
264s | you prefer in terms of both angle and |
267s | distance from your character do you do |
269s | different situ ations call for different |
271s | perspectives let us know and of course |
273s | our next one coming up after that will |
274s | be storytelling with archetypes and as |
277s | we've alluded in the past already |
279s | there's some Bard action coming up in |
281s | the future so we know folks are excited |
284s | for that coming up you know what's |
287s | interesting um s sorry just it reminded |
289s | me um that |
291s | question a game I played a long time ago |
295s | had a um had these like three different |
298s | types of wizards one was wind one was |
301s | water and the other was fire and they |
304s | each had an elemental infusion that you |
306s | could cast on another wizard of a |
308s | different type oh I know what G you're |
309s | talking about yeah I like |
312s | that and if you did cast it there was |
315s | like a 10 to 20 minute long cooldown on |
318s | the infusion but it powered them up to |
320s | do a mega like Nuke right on a Target |
324s | now I didn't find the efficacy of that |
326s | you know to be anything particularly |
328s | game-changing it was a kind of nifty |
330s | for a single nuke but like what did that |
333s | do in the long run of me constantly |
335s | casting my normal nuke over and over and |
337s | over again right but I thought it was an |
339s | interesting attempt at creating some |
341s | interclass dependencies or Synergy from |
344s | a party perspective with those classes |
347s | and if you if you dive a little bit |
348s | deeper into that maybe you can come up |
350s | with some fun you know regular momentto |
352s | moment |
353s | gameplay 100% And with that we move |
358s | into our server meshing technology this |
362s | is going to be a long 1 hour and 18 |
365s | minute segment uh so buckle in if I told |
369s | everybody in the beginning I was in chat |
371s | I was like get your snacks ready because |
372s | you're going to maybe take a pee now and |
376s | and you know I as as we were talking |
379s | through this and you know Brian and I |
380s | have talked about this in the past as |
382s | well you you really kind of have to |
385s | wonder what segment of our community is |
388s | interested in this depth of a technical |
391s | discuss that are here we told them in |
392s | advance coming we're like this is GNA be |
395s | very nerdy talk prepare it's a super |
397s | nerd that yeah totally yeah it is a |
399s | super it is a super nerd thing um and to |
402s | be honest with you you know it's it's |
404s | not what your general population cares |
407s | to see it all right they want to see the |
409s | game play they want to feel the game |
411s | play they want to talk about that and |
413s | that's like if you think about the ratio |
416s | of streams that we do what is gameplay |
419s | versus technical discussions maybe it's |
421s | like a 1 to 10 right it's like yeah it's |
423s | like a 1 to 10 or every 10 or so streams |
425s | we have a super in-depth you know |
427s | technical discussion this one let me |
430s | preface is going to be the most |
432s | technically oriented discussion we have |
435s | ever done as a live stream but we made |
438s | our lovely Mike Veo our Graphics |
440s | designer made some great IM imagery to |
443s | help thought it was |
445s | phenomenal so hopefully you're you won't |
447s | be too bored visually either I I I I |
451s | thought I thought it was phenomenal but |
452s | let me just let me just speak to this um |
456s | there is a lot of magic that goes on |
458s | behind the scenes of what makes these |
460s | kinds of games possible yeah and um |
463s | there are a lot of individuals who are |
465s | not the VFX artists who are not the |
467s | combat designers but who are in the |
471s | literal weeds of the deepest code |
474s | possible that is so nuanced and and |
478s | complicated |
480s | that it is you know without a without a |
483s | degree in this specific field you you |
486s | really have a very difficult time even |
488s | following along so I would just want to |
490s | give kudos to um the guests that we had |
494s | on this particular live stream Zach |
496s | Hunter andon they did a phenomenal job I |
499s | think even with the visual aid that that |
501s | Veo did which he did a great job with um |
504s | in kind of walking through from a |
506s | Layman's |
507s | perspective just the level of complex |
510s | that's necessary and also the magic that |
512s | we're Brewing up here at Intrepid um |
515s | because that magic is going to be on |
517s | full display for Alpha 2 you guys are |
520s | going to be experiencing it and without |
522s | an in-depth showcase like the one you're |
524s | about to have you would have no idea of |
527s | what's going on in the background it |
528s | would just feel like seamless gameplay |
530s | to you but there is really if the pi |
533s | folks cuz the pi folks who uh joined us |
536s | for our node Wars testing even realized |
538s | what was going on behind the scenes |
540s | because the Ser measuring technology |
542s | isn't just something we're talking about |
544s | today it exists in the game and they |
546s | experienced it so and we've been working |
548s | on for for years now right so um I think |
551s | they do because sometimes as as an |
553s | individual server worker might go down |
555s | we're like why did I get disconnected |
557s | and they get disconnected but I don't |
559s | know if they put two and two together |
560s | that it's the same technology for sure |
563s | yeah right absolutely so these guys were |
565s | so excited they were like we could have |
567s | talked even longer oh yeah for sure this |
570s | is total total nerdgasm area uh but um |
574s | let me say this so as a preface before |
576s | we get into this this is going to be up |
577s | on YouTube afterwards we're going to |
579s | post it there it's a it's a standalone |
581s | discussion like Margaret said hour 18 |
583s | minutes this is very in-depth technical |
585s | discussions we're going to answer some |
587s | questions afterwards so make sure you |
588s | guys are posting Margaret's going to be |
589s | watching um feedback Point necessarily |
592s | only uh we have our wonderful Community |
594s | team and and social team that will be |
596s | we'll be grabbing questions from all the |
598s | places absolutely so so make sure as you |
601s | guys are watching this you know H the |
603s | types of questions we would love to hear |
605s | from you is how are these types of |
607s | technical discussions received by our |
609s | audience do you enjoy them do you like |
611s | getting a look under the hood um try to |
613s | formulate you know the types of |
614s | questions you can better understand it |
615s | Margaret and the community team will |
617s | capture them we'll answer them |
618s | afterwards but please understand |
619s | everything here continues to be a work |
621s | in progress all of the conversations |
623s | that we're having about this technology |
625s | is what's going to be tested as part of |
626s | Alpha 2 um and sit back and enjoy and |
629s | insight to what most companies really do |
632s | not ever reveal about what's under the |
634s | hood all right time to get nerdy see |
638s | y'all on the flip side |
643s | [Music] |
661s | hello everyone Welcome to our glorious |
663s | server mesh technology showcase segment |
667s | exciting it is I'm Margaret cron your |
671s | director of communications and of course |
673s | with me as always is Sten Sharie our |
676s | wonderful creative director I'm excited |
678s | we have a fun showcase today I mean it's |
681s | this is something that I don't think a |
682s | lot of companies go into a lot of |
685s | projects don't really talk about and and |
687s | you know it can be a little bit on the |
688s | techie side but I think this is stuff |
690s | that a lot of players uh like hearing |
693s | about and I know we got some we got some |
695s | exciting people to chat with today what |
697s | do you think Mar and um of course we |
699s | tried to make it as visually appealing |
701s | as possible shout out to Mike beio as |
703s | you you may know him from all of our |
706s | other Graphics but he's our Graphics |
707s | designer and he did a wonderful job on |
709s | these slides so hopefully they help |
712s | portray what our wonderful engineering |
714s | team is trying to toh showcase so we |
718s | will kind of introduce them we have some |
720s | new people who you've never met before |
723s | we'll kick it off first with Zach if you |
725s | want to talk about who you are what you |
727s | do at the studio and maybe a little fun |
730s | fact hi guys uh I'm Zach I'm the |
732s | technical director here uh at Intrepid |
735s | Studios I run the networking team and |
738s | the engine team |
740s | um I'm generally responsible for |
743s | performance and making sure that the |
744s | game scales to the amount of players |
746s | that we wanted to a hefty and lofty goal |
750s | many of us players will have thoughts on |
754s | that and of course we have Hunter with |
756s | us which some of you if you hang out on |
758s | our Discord maybe have interacted with |
762s | before hi yeah thanks for having me um |
765s | my name is Hunter I am a game networking |
768s | engineer at inet studios I've been here |
770s | for almost about four years now and |
773s | first initially started off as a |
774s | gameplay engineer and then I slowly |
776s | worked my way over to networking because |
778s | that's what I've come to find I love and |
780s | I love solving the hard problems and |
782s | very excited to Showcase to you all what |
783s | we've been working on the gameplay |
785s | engineering just wasn't torture enough |
787s | for Hunter so he wanted to go straight |
790s | straight The Impossible |
792s | problems oh my God I like I like solving |
795s | problems like this hard problems I think |
797s | Sol problem F problem to solve yeah um |
800s | and then of course last but not least |
802s | Anton hello I'm Anton uh I'm a senior |
806s | networking engineer over here at |
808s | Intrepid I moved straight into this |
811s | position Cu uh yeah I wanted to suffer |
815s | immediately I didn't want to start with |
817s | a game |
820s | play all right well let's kick it off |
823s | Zach I think you have a little intro |
825s | here for us as we move |
827s | in yeah um so Zach just I'm sorry just |
830s | to start a lot of people you know |
833s | sometimes don't know what networking is |
836s | yeah talk to talk to us about what is n |
839s | networking what is a network layer at at |
842s | at its core networking is just the |
845s | concept of moving EST state from the |
848s | server to the clients that that at its |
852s | core that is the problem we are trying |
853s | to solve we are trying to do that as |
855s | fast as possible with as many players as |
858s | possible um since we are making a very |
861s | very large game uh we have a lot of |
864s | problems that most games don't usually |
868s | have yeah and and you know with with |
872s | regards to like an mmpg versus like a |
874s | peer-to-peer versus like a small |
875s | dedicated server like our networking |
878s | needs are intense because the types of |
881s | numbers we're looking at are extreme |
885s | yeah we we we every everyone on the |
887s | networking team here has worked on other |
888s | multiplayer games before and this is |
891s | definitely the project where we have to |
893s | get the most creative with how we are |
895s | going to solve uh our scaling problems |
898s | you know like we |
900s | we we we are working on an MMO most MMOs |
902s | don't don't do what we're about to do |
904s | here they don't talk about how they you |
906s | know made it so they can support |
907s | thousands of players per server um so |
911s | it's very much we have to you know kind |
912s | of like figure out what what has been |
914s | done and and do a lot of um R&D to |
917s | figure out what what we need to do for |
918s | our game right and kind of answering |
921s | that question of what we need to do for |
923s | our game starts out with well what is |
925s | our game trying to achieve right yes |
927s | yeah there are a lot of different types |
929s | MMOs some that heavily you know utilize |
932s | instancing um some that you know maybe |
935s | don't care about replicating to hundreds |
937s | of players at a given time um so first |
940s | it starts with a vision what is ashes of |
943s | creation and then that kind of leads you |
946s | down the architectural path of okay what |
948s | does that mean we have to set up because |
951s | this isn't out of the box Unreal Engine |
953s | five this is a custom Network layer yeah |
956s | yeah this is this is this is fully |
957s | custom Taylor Made for the needs that |
960s | ashes has like this is not none of this |
963s | is is is off the shelf none of this is |
965s | standard unreal this is all built for |
967s | the kind of game that we are |
969s | making right and so how do you go about |
972s | kind of you know determining that that |
973s | architecture what does that look like |
975s | for a game like ashes and and you know |
977s | we've been working on this for a number |
978s | of years yeah for years um so I gu I |
981s | guess the first the first step is we |
983s | need to figure out the requirements like |
986s | what do we actually need to like what |
989s | what what are Ash's requirements um you |
992s | know the the first place we start is you |
995s | know we're an open world PVP game so we |
997s | can't really control where players go we |
999s | can't do match uh typical matchmaking |
1002s | where we just you know spin up more |
1003s | servers SP put them on the new |
1006s | matchmaking servers and you know not |
1008s | have these issues we're an open world |
1009s | game anyone can go anywhere um you know |
1013s | we're a highly PVP game so we need to |
1015s | have low latency people can't just uh we |
1018s | we can't do what other games do where |
1020s | you just like lower your tick rates |
1022s | really low and |
1024s | then um just simulate at a really really |
1027s | low rate since we're you know action PVP |
1030s | we can't do that um one of our I guess I |
1034s | I I would do you call this a game design |
1036s | pillar Stephen like this is we that we |
1038s | don't want to do layering like that's a |
1040s | that's that's a very like |
1042s | absolutely game thing we wanted we |
1044s | wanted so like you can go anywhere in |
1047s | the world stand there and and the people |
1050s | who are there are there like |
1053s | yeah and I was just going to say like |
1055s | game laring you know obviously everyone |
1057s | on this call is a gamer who's played |
1059s | MMOs and we played games that do that do |
1061s | layering yep you know it's just a very |
1063s | different experience when you can switch |
1065s | channels you know yeah yeah yeah it's |
1069s | like a different world a core like MMO |
1073s | memory for me is like you know old wow |
1076s | you would go to the same place like |
1079s | uh and and there would be the same |
1081s | person there you know dancing on top of |
1082s | a mailbox every single time or dancing |
1085s | on top of a corpse and looking at you |
1087s | with Hungry Eyes they were they were |
1089s | always they were always there and they |
1091s | were always and they were always there |
1093s | and with layering you don't get that uh |
1095s | you don't get that that same level of |
1096s | experience that we that we that we want |
1098s | to give uh to our |
1100s | players um and then I guess our last |
1102s | requirement which is like you know just |
1103s | a typical MMO requirement is that we |
1105s | have you know very very high player |
1107s | count goals um |
1109s | and you know typically uh High player |
1112s | count goals with no layering don't |
1114s | really go together so right that's where |
1116s | it comes into like you know we need to |
1118s | get really creative with how we're going |
1119s | to solve these problems and we and some |
1120s | of us you know Hunter Anton we've played |
1124s | these games that have high player |
1125s | accounts but a lot of ways that they get |
1128s | around having higher player accounts is |
1131s | by being less server adjudicated less |
1134s | server authoritative and more player |
1136s | which has its own risks and isn't really |
1139s | preserving the Integrity of that player |
1142s | experience indeed like some some games |
1145s | do not um do proper physics simulations |
1148s | on the server side to validate player |
1150s | movements in order to achieve that kind |
1152s | of thing which means like cheaters uh |
1155s | can have an easier time right going |
1157s | through walls and stuff like that or |
1160s | they well I guess they do layering or |
1163s | Shing where uh they yes they have real |
1167s | high player counts but technically not |
1170s | really cuz they're kind of broken up I |
1173s | can't tell you how many times I've I've |
1174s | jumped into either um you know some |
1177s | session based game or I don't want to |
1179s | call any any of them out but where |
1181s | there's just one single player that's |
1183s | either hacking or or or doing something |
1185s | and they're just running around and |
1187s | ruining the experience for everyone and |
1188s | it's because the way they've architect |
1191s | it in such a way it's more it's easier |
1192s | for those types of experiences to occur |
1195s | always trust the client right yeah |
1198s | exactly |
1201s | you just made everyone sweat Hunter do |
1203s | we want to kind of transition that into |
1205s | talking about the issues that we are |
1208s | trying to address yeah of |
1212s | course yeah so um I guess the issue |
1215s | start with it's like you know we're |
1217s | making MMO and unreal um the amount of |
1221s | entities we want on the server um it's |
1224s | just not really going to work with |
1225s | standard out ofth box unreal replication |
1228s | unre replication and unreal simulation |
1231s | so there there are two problems here |
1233s | it's like okay even if we could fit all |
1235s | the players we want on a single server |
1237s | um you |
1239s | know we we still can't replicate them |
1242s | because those are two separate problems |
1243s | we have the simulation and then the |
1245s | replication problem um so since this is |
1249s | is a problem and you know there there is |
1252s | no standard unreal solution for this we |
1255s | we we had to go about you know making |
1258s | our own customs solution to solve these |
1261s | problems um and this is where Intrepid |
1263s | net um I guess was born um entrep net is |
1267s | a fully distributed networking stack |
1269s | it's tailor made for as creation fully |
1271s | built in house um none of this is offthe |
1274s | shelf technology it's all custom built |
1276s | for our game |
1278s | um we you know we'll we'll get into |
1282s | these more in a bit but Intrepid net is |
1284s | made up of quite a few different |
1286s | Technologies um the the one that you |
1290s | know people are most interested in |
1291s | people are always talking about is |
1292s | server meshing we'll talk a lot about |
1294s | server meshing and how we how we |
1296s | implemented it for our game um we have |
1299s | inter server replication uh which is you |
1302s | know we have Ser we have multiple |
1303s | servers and they're replicating to each |
1305s | other how do we deal with that problem |
1307s | we have our own microservice layer for |
1311s | servicing our |
1313s | um uh uh communication I guess between |
1316s | our servers um we have uh Dynamic |
1321s | griding which is very exciting and you |
1323s | guys and you guys will like a lot and |
1325s | then we have the replication graph um |
1327s | which is just more um custom replication |
1332s | uh I would almost call them formulas um |
1335s | for our game so we'll be going into all |
1337s | this it's very this is very detailed |
1339s | very Tech heavy |
1341s | so buckle yeah we need some like theme |
1344s | music for the Intrepid net logo there |
1346s | too I know they were so excited when mik |
1349s | made a logo they're |
1350s | like nice of a logo I'm just thinking of |
1353s | like the Indiana Jones theme song right |
1356s | now right right |
1358s | totally so where do we start off with |
1361s | this yeah so I'm gonna kick it over to |
1363s | Hunter and he'll kind of like start with |
1366s | the like giving some of the base |
1367s | knowledge for like how unreal works and |
1370s | then he'll start with you know talking |
1372s | about how some of our server technology |
1373s | our server meshing technology |
1376s | works yeah hello um so before before we |
1379s | start diving too deep into Intrepid net |
1381s | um there's probably a few terminologies |
1383s | that we wanted to preface with just so |
1385s | that it helps the community and everyone |
1386s | else here follow along better with like |
1388s | the lingo and the terminology that we |
1389s | will be |
1391s | using um the first concept that we |
1393s | wanted to touch on is an actor um in |
1396s | Unreal Engine you can think of an actor |
1398s | as like almost any physical |
1399s | representation of an object or an entity |
1402s | that's inside the |
1404s | world as you can see on the photo that |
1407s | an actor can be anything such as as an |
1409s | NPC a mount a tint a piece of card cargo |
1414s | um pretty much anything that you can |
1416s | visually see and represent is what we |
1418s | call an actor and these actors they can |
1420s | be replicated which we'll get into on |
1422s | the next slide and PC would be player |
1425s | character for those who don't |
1429s | know personal |
1433s | Caravan so touching on replication here |
1436s | um replication is a term you might often |
1438s | hear in network working I believe Zach |
1440s | touched upon that a little bit briefly |
1441s | in his |
1442s | introduction um replication is the |
1445s | process of synchronizing some sort of |
1446s | State you can think of it like a value |
1448s | or a property that's on an actor on the |
1450s | server and then it's synchronizing that |
1453s | state from the server to all the clients |
1455s | that are relevant to the said actor um |
1458s | this is an important because of a |
1460s | concept called server authoritative |
1463s | networking um the server when you think |
1466s | of like networking in video games the |
1467s | server normally has a authority over |
1469s | your game world and the properties |
1471s | they're normally updated and checked |
1473s | against the server which can then be |
1474s | shared and synchronized between your |
1476s | clients which is through the form of |
1479s | replication um this is also part of why |
1483s | you never want to trust the client as we |
1485s | said earlier um because when networking |
1487s | you want when the client does some |
1489s | action to the server for instance you |
1491s | always want to verify that action on the |
1493s | server in some way or shape or that's |
1495s | how you can get hackers or cheaters or |
1497s | something disrupting your game because |
1499s | they're able to just send anything they |
1501s | want to to the server and your server |
1502s | will just trust it without verifying and |
1504s | then that's where you can get the |
1505s | concept of like I said hacking Andor |
1508s | cheating um so as long as the server |
1510s | kind of holds your source of Truth the |
1512s | client sends the data that your server |
1513s | doesn't agree with you can decline the |
1515s | actions and or kick or ban the user |
1517s | depending on how severe the action is |
1519s | they're taking that you're not trying to |
1524s | allow and obviously we've seen you know |
1526s | a lot of games that we've played in |
1528s | where |
1529s | as um as as the latency becomes uh worse |
1534s | for certain players or as the load on |
1536s | the server becomes higher um to process |
1540s | that replication can can show some weird |
1543s | effects uh in games right wait a minute |
1547s | what's that person doing that doesn't |
1548s | look right yep that's when you would |
1550s | that's typically when you would get like |
1551s | rubber banding like if your servers |
1553s | really slow down because you would only |
1554s | get an update every you know X period of |
1557s | time |
1559s | yeah so as you can kind of see in the |
1561s | the video we showed you can kind of see |
1562s | like player one is going into the water |
1565s | this is from the perspective of the |
1566s | server so as player one enters the |
1568s | server it'll be like okay player one is |
1569s | swimming so now player two and three |
1572s | since they're visually seeing player one |
1574s | swimming they're going to get a state |
1576s | for player one saying they are swimming |
1578s | and then that can kind of perform like |
1580s | the necessary actions of like seeing |
1581s | them play the swim animation or whatnot |
1584s | and and and and like I guess to add on |
1586s | to Hunter is saying this is the this is |
1588s | pretty much the entire problem like |
1590s | you're doing this all the time for |
1592s | everything in the game that's replicated |
1594s | all the time every movement every |
1596s | ability everything you click on interact |
1599s | with touch yeah all the Goblins that are |
1602s | running around they're playing |
1604s | animations uh the players moving stuff |
1606s | in their inventories the the trees |
1610s | leaves moving subtly yeah the the trees |
1613s | is falling being cut down |
1615s | yeah so not everything needs to be |
1617s | replicated across cross the server right |
1620s | some things can be client only like the |
1622s | ways the leaves might move specifically |
1625s | but when the tree gets cut down that |
1627s | needs to get replicated across yeah well |
1629s | and and and you you can do interesting |
1632s | things to try and like reduce this |
1634s | problem like like if we're talking about |
1636s | the wind for example you can just |
1637s | replicate you know the wind direction in |
1640s | speed yes and then the client can just |
1642s | apply that to all the trees instead of |
1644s | you having you know a specific |
1646s | replicated you know wind and speed |
1649s | for example right and that's part of the |
1651s | Finesse of replication trying to |
1653s | identify the problem exactly that's |
1655s | right yeah a big part of our job |
1657s | especially with working with gameplay is |
1659s | trying to figure out how to make that as |
1660s | efficient and optimized as possible so |
1662s | that our game and servers can perform to |
1664s | the expectations we need speaking of |
1666s | servers the server meshing what |
1668s | everyone's been excited to talk about |
1671s | right so now we do replication so now |
1674s | originally we just talked about how |
1675s | replicating a one server works so now |
1678s | first part of intrepid net is what we |
1680s | would like to call what we basically |
1682s | normally know as as server |
1685s | meshing |
1686s | um in Unreal Engine um your game |
1689s | normally works under a single process |
1690s | server scenario that means all your |
1693s | clients are connected to a singular |
1695s | server that runs the entire game now for |
1697s | an MMO RPG like as of creation um this |
1701s | can't work for us like for a few reasons |
1702s | Zach talked about in the previous slide |
1704s | there's just with the mass amount of |
1706s | entities and actors we have simulating |
1708s | and processing the replication of all |
1710s | that for everyone every actor in one |
1713s | server that's pretty |
1715s | insane um our solution first and |
1718s | foremost here is basically we had to |
1721s | modify unreal engin so that it is |
1723s | capable of having Min server processes |
1726s | that are kind of meshed together or |
1728s | quilted |
1729s | together that allows us to use all these |
1732s | servers together to make up your whole |
1734s | entire game world or your game |
1737s | room um this all us to split up that |
1739s | simulation work between many of the |
1741s | server processes and each server process |
1744s | has its own authoritative state of the |
1746s | world that it kind of owns and |
1749s | controls um this task it was not a |
1752s | trivial task and it required us ripping |
1754s | apart deep layers of unal engine and |
1756s | their networking stack in order to |
1758s | really modify it to fit the architecture |
1760s | that we have really |
1763s | envisioned um outside of this too |
1765s | there's like a lot of proprietary |
1767s | programs as well that we made that kind |
1769s | of run in the background to help it |
1770s | orchestrate all this functionality as |
1773s | well and by using underall engines API |
1777s | um and doing all this we were also able |
1779s | to add a lot of minimal overhead for our |
1781s | Engineers When developing for this |
1783s | solution and it allows us General |
1785s | control over like what how things |
1788s | replicate and where they replicate that |
1790s | we'll get into in the next few |
1793s | slides |
1795s | um so right now you see we have like the |
1798s | static Dynamic world grid okay that's |
1799s | great but now you're probably thinking |
1802s | okay now that we stitch many servers |
1804s | together what is my experience like that |
1806s | in regards to traversing the world will |
1809s | I be able to see into the other servers |
1810s | from mine or will I randomly just start |
1812s | seeing actors pop in and out of |
1813s | existence right in front of |
1815s | me that kind of takes us to this |
1818s | slide um so our answer to that of course |
1821s | is we want to make this experience as |
1822s | seamless as possible for our players if |
1824s | you cannot tell what's going on behind |
1826s | the scenes and everything that we've we |
1829s | are making then that means we did our |
1831s | job right if you can tell then it |
1833s | probably means something's wrong and we |
1835s | need to look at what we're doing here |
1836s | and how we can improve and optimize it |
1839s | further |
1841s | um we've developed what we call here |
1844s | inter server replication for this case |
1846s | which means that instead of traditional |
1849s | replication as you might have as we |
1851s | explained was like server to clients |
1854s | this is basically representing between |
1855s | servers now or replication between |
1857s | servers |
1859s | and we do this replication to what we |
1862s | call a proxy |
1864s | actor um as you can see in the video |
1866s | here we can see there was like a |
1868s | transparent white uh wall going across |
1870s | the screen that represents our in-game |
1872s | debug tools with our border regions |
1875s | being |
1875s | drone you can see that vexent is on one |
1878s | server and then Kevin is on another one |
1881s | as he's on the other side of that border |
1883s | so what vexin is seeing right now is |
1885s | actually not Kevin but a proxy of Kevin |
1888s | is what we have deemed it is it really |
1890s | Kevin yeah who knows if only could |
1893s | actually duplicate Kevin after expand a |
1896s | little bit on you know a lot of a lot of |
1898s | people who obviously aren't familiar |
1900s | with game development they might not |
1902s | understand the the terminology of |
1904s | debugging tools right so talk a little |
1906s | bit about what a debug tool is right so |
1909s | when making a networking solution as |
1911s | complicated as this we need a lot of |
1914s | information about the state of the world |
1916s | what's happening where things are going |
1918s | on |
1919s | so we've developed a lot of like |
1920s | debugging tools that can be used inside |
1923s | the game and outside of the game which |
1925s | these tools kind of help us collect that |
1927s | information see where all the important |
1929s | things are happening see where a failure |
1931s | might be going on so in this particular |
1934s | instance we have a debug tool that's in |
1936s | game that allows our developers to kind |
1938s | of draw these server borders so that you |
1941s | can kind of see while you're playing |
1943s | like okay there's a border here um and |
1946s | then if QA is testing something they can |
1947s | be like okay we transferred across the |
1949s | server and then this broke so that means |
1951s | something's probably wrong with the |
1952s | server transfer so that can kind of just |
1954s | help you like narrow down more of the |
1955s | problem space and give you that |
1957s | necessary information of like what was |
1959s | going on at the |
1960s | time um because without that if if we |
1963s | have it turned off you pretty much |
1966s | hopefully should not be able to tell the |
1968s | difference between the proxy we talked |
1969s | about or the actual |
1971s | actor um you can kind of think of the |
1974s | proxies here as a puppet any |
1979s | actual um action that was done by the |
1982s | actual actor on its own like Authority |
1985s | server which is the server that owns it |
1987s | it's then replicated to this proxy on |
1990s | your server which then gets replicated |
1992s | to yourself so that you can kind of see |
1995s | the representation of Kevin as if he was |
1998s | on the same server as |
1999s | you um we do it in a form of like a we |
2003s | call it lightweight because it's an |
2005s | up-to-date copy of the original actor |
2007s | but we can specifically our developers |
2008s | can specifically control like what does |
2011s | and doesn't get sent to this actor so |
2013s | that we're more optimal in like what |
2016s | we're sending how we're sending it and |
2017s | when we're sending |
2020s | it that was a |
2025s | mouthful I I think I think the other |
2027s | thing you know to think about Hunter |
2029s | Zach Anton is that um not a lot of |
2032s | players obviously follow development of |
2035s | the games that they're excited about |
2036s | right they they wait until |
2038s | you know the game is ready to play and |
2040s | and marketing begins and you know they |
2042s | can join in and and purchase or whatever |
2044s | obviously ashes has followed a little |
2046s | bit of a different path where we're |
2047s | giving people a bit of insight into you |
2049s | know what it actually takes to make |
2051s | these types of games and we generally |
2055s | tend not to delve too deeply into the |
2058s | highly technical components of our |
2060s | development process because that's where |
2063s | a little bit of a cliff starts to form |
2065s | of player interest even you know viewers |
2068s | ship interest um because uh it's nice to |
2072s | have the magic work in the background |
2074s | and you don't necessarily care or want |
2076s | to know how or why it's working just |
2078s | that it feels good that the you know |
2080s | it's responsive and that you know it |
2082s | accomplishes from a gameplay Loop |
2084s | perspective what you're expecting it to |
2087s | but you know because of the level of |
2089s | complexity because of the amount of |
2091s | effort because of what we're trying to |
2094s | create is a is a Next Generation level |
2098s | of complexity of gaming um we feel it's |
2102s | important to provide you guys an |
2105s | opportunity to get some insight into |
2108s | what we're doing that's unique into what |
2110s | we're doing that is going to service a |
2114s | long-term |
2116s | MMORPG at the scale that we need Ashes |
2119s | to be and that requires some really |
2122s | smart people in the room who are |
2124s | creating proprietary technology that |
2127s | allows us to achieve that in a way that |
2129s | presents players with a game at the |
2131s | Quality they expect and so I you know I |
2134s | think this is a lot of a lot of fun to |
2136s | kind of you know have you guys come and |
2138s | and explain this front facing it can be |
2140s | a mouthful it can be a headful to kind |
2143s | of digest but at the same time yeah I |
2146s | know we're nowhere near done but at the |
2148s | same time it gives you now an |
2149s | opportunity to to really see how the |
2152s | sausage is made um and I think that's |
2155s | cool right I can talk about this all day |
2159s | people don't talk about this there are |
2161s | so many games that are that are doing |
2163s | things like this not exactly but like |
2166s | you know there are other games that have |
2167s | to solve these problems and you know |
2169s | other other games don't talk about this |
2170s | you know this is this is a first |
2173s | absolutely |
2176s | right yeah so as you see in the video um |
2180s | you can see into the other server but |
2182s | now you're probably thinking okay what |
2184s | if I want to interact with this proxy |
2187s | how how do I do that across the server |
2189s | boundary well um because the proxy is |
2193s | like a puppet controlled by the higher |
2195s | authority we basically just now need |
2198s | events that we can send from the proxy |
2200s | up to its Authority and then we tell the |
2203s | authority that we want to modify data or |
2205s | execute some action on the authority |
2207s | server so that it can then replicate |
2209s | down to the proxy and then back to you |
2212s | um we have what we call a cross server |
2214s | event or an inter server event that's |
2216s | done through what it's normally known as |
2219s | an RPC or remote procedure call which |
2221s | allows pretty much just for |
2224s | this um our goal with entrep net is to |
2227s | make all the routing and the actions |
2229s | that we do as fast as possible so that |
2231s | we can keep the latency and interactions |
2233s | between servers a pretty seamless |
2235s | experience and you hopefully shouldn't |
2238s | even be able to tell the difference |
2239s | between like I said a proxy or an |
2241s | authoritative actor yeah and I guess to |
2244s | add here this is so important because |
2247s | you know these these server borders that |
2248s | we're talking about they're invisible |
2250s | you you you won't know where they are um |
2254s | so the the I think the big important |
2257s | thing here is like we need to have we |
2259s | need to make it so PVP can happen on |
2260s | these borders without people noticing um |
2264s | and that's that's that's that's really |
2266s | that's the real Crux of it here that's |
2267s | why it has to be so |
2268s | fast right and as you can see in like |
2272s | the video here we have some fighting |
2273s | across the border um you can see while |
2275s | we're fighting kind of over the boundary |
2278s | combat and everything seems pretty |
2279s | seamless and smooth as you would expect |
2281s | it without any noticeable issues um this |
2284s | is kind of showcasing like what we can |
2286s | do with just those events and that |
2288s | replication we talked about we can have |
2290s | these like in-depth battles or |
2293s | interactions between the servers with |
2295s | hardly any downside yep |
2298s | um so what what we're trying to achieve |
2302s | here is the seamless experience that you |
2304s | hopefully can't tell where that border |
2306s | crossing is and and the other important |
2308s | thing about this particular you know |
2311s | this cross server uh information and and |
2314s | the Border itself which I think you guys |
2316s | are getting into a little bit later is |
2317s | that these borders are not static they |
2319s | can change they are Dynamic you're |
2321s | you're spoiling it I'm I'm sorry I'm |
2324s | sorry I'm so sorry this is my first time |
2326s | seeing the |
2328s | slide okay go no no go I'm sorry I think |
2331s | you were talking about seamless |
2332s | transition so we |
2334s | can yeah so if you look in or go back |
2337s | one more Maggie I'm |
2339s | sorry um so if you kind of see in the |
2341s | video there as well um now that we can |
2344s | kind of do interactions to the proxies |
2346s | across the border you may have noticed |
2347s | in the video I did charge myself across |
2350s | the border and then I basically attacked |
2352s | what we call the proxy of |
2354s | Kevin however during that charge we did |
2358s | basically a server promotion that took |
2360s | place behind the scenes that you |
2361s | probably didn't |
2363s | notice um so if we go to the next slide |
2368s | we can kind of see now we're introducing |
2370s | the concept of server transfers this is |
2372s | kind of where Intrepid net gets very |
2376s | complex um this allows us to not only |
2379s | share and split the statically defined |
2381s | server areas but we can also transfer |
2383s | actors to new server areas that are |
2386s | moving across the world or happen to |
2388s | have a new server come up on top of |
2391s | it into a different server and then we |
2394s | do and then this allows us to do |
2396s | basically that Global load balancing |
2397s | across the |
2399s | room and then so basically when a player |
2402s | or an actor is within range of this |
2404s | border our system on the back end kind |
2406s | of begins a negotiation and the creation |
2410s | of a proxy so that it can replicate it |
2412s | to the nearby |
2413s | server um this doesn't only happen on |
2417s | like a one by one scenario that you |
2419s | might see here even if it's a 2 by two |
2421s | when you're in like the corner of four |
2422s | different |
2423s | servers your proxy will then get |
2426s | replicated be replicated to on three |
2428s | different servers from the one Authority |
2429s | so that way no matter where you are |
2431s | whichever server you're in around that |
2433s | area you'll still be able to see this |
2435s | actor on a different |
2440s | server |
2442s | um if that actor then fully crosses the |
2446s | Border going outside of the authority |
2448s | region of the server it's currently in |
2450s | um this the the two servers then kind of |
2452s | start negotiating what we call a |
2454s | promotion or a transfer this is when now |
2457s | server a is passing over that Authority |
2460s | we previously defined to server |
2462s | B and then promotions they're like a |
2465s | whole different Beast um in order to do |
2467s | a lot of like the promotions there's a |
2468s | couple things we have to do such as like |
2470s | ensuring the first you have to ensure |
2472s | the actor is like fully made with all of |
2474s | its components and |
2475s | children um we have to ensure they're |
2477s | all up to date with the entire state |
2479s | that was deemed necessary for the new |
2481s | copy to have because we don't want to |
2483s | lose any data during this entire |
2486s | transfer um |
2488s | and Hunter you people hear the term like |
2490s | you know children and the state and |
2492s | whatnot elaborate a little bit about you |
2494s | know what what that means at a high |
2496s | level right |
2498s | so when we have all these entities such |
2501s | as like an actor actors can then have on |
2504s | them what we call components which is |
2507s | basically building blocks that you can |
2509s | then add to your actor that kind of make |
2511s | up the actor what it does how it's |
2513s | supposed to act things like that um so |
2516s | for example you could have like an actor |
2518s | and then that actor has an interactable |
2520s | component so that means you can interact |
2522s | with this actor or it could have an |
2524s | inventory component so that means okay |
2527s | this actor has something of like a bank |
2528s | or a it it stores goods and to |
2533s | contextualize that let's say you know |
2534s | you have your Mount out you're not on |
2536s | your Mount right another player could |
2538s | walk up to your Mount and they would be |
2540s | prompted with an interact that says to |
2541s | Mount Your Mount as you're moving across |
2544s | the boundary that actor has that |
2547s | component that is the interactable |
2548s | component that needs to go with it right |
2551s | because if you transfer this actor or |
2553s | you're proxying it it still you still |
2556s | need to be able to do that interaction |
2557s | across the boundary so we proxy that |
2559s | interaction component and just like we |
2562s | could do cross server events on the |
2563s | actor itself we can also do them at the |
2565s | component level so that way it can |
2567s | communicate with its authoritative |
2569s | one um because we kind of treat the |
2571s | proxies as like a readon concept so the |
2575s | proxies are just visually kind of |
2576s | representating what Authority |
2578s | represents so any data modifications or |
2581s | anything that has to happen has to |
2583s | happen at the authoritative level so |
2584s | that way then the proxy can get updated |
2587s | appropriately across any server um |
2589s | that's kind of how we have like that |
2590s | Central truth of the actor is whatever |
2592s | server it's Authority on and there's |
2594s | only ever one copy of that I just want |
2597s | you to know this conversation so far has |
2600s | probably induced about 30 to 50 people |
2604s | now wanting to take computer science |
2606s | degrees that would awesome yeah no it's |
2609s | it's pretty cool stuff |
2612s | um it definitely took a lot of time and |
2614s | a lot of effort to try to figure out how |
2616s | we make these things possible and after |
2618s | all this work this is we're excited to |
2620s | be able to show it um although watching |
2622s | Kevin run back and forth is making me a |
2624s | little |
2626s | naous yeah so in the scenarios 2 this |
2629s | also works where you may not be proxying |
2631s | to that nearby server because say you |
2633s | teleport across the map um this kind of |
2637s | means that when promoting there it kind |
2639s | of does the same exact route except it |
2641s | may just need to make your actor instead |
2643s | of making a proxy of it so it all falls |
2645s | kind of under the same generalized um |
2648s | system y um and then when we normally do |
2653s | have that proxy actor on the other |
2655s | server that means when you're promoting |
2657s | we can reuse your existing two actors |
2659s | that are from server a and server B your |
2661s | Authority and the proxy and we can |
2663s | convert that proxy to the authority and |
2666s | then demote the authority one to a proxy |
2669s | so this allows us more to have that more |
2671s | seamless experience when you're swapping |
2673s | servers so that way it's a lot faster |
2676s | you don't need to send a lot more data |
2678s | to copy over to be created and then |
2680s | there's not really any visual hitching |
2681s | at all when this happens because we're |
2684s | not spawning or destroying a new one on |
2686s | the fly during that |
2688s | promotion and this helps also with |
2690s | client |
2691s | performance it it can um not going too |
2696s | too into detail but |
2698s | yeah actors aren't actors really aren't |
2701s | cheap so replicating an actor can be |
2704s | expensive and every new actor you kind |
2706s | of open and close to the client which is |
2709s | basically like a create or a destroy |
2711s | that just adds this additional overhead |
2713s | that you we didn't want so we can kind |
2716s | of negate it by just reusing the |
2718s | existing ones we already |
2719s | have and then doing that swap so that |
2722s | way you don't even notice anything |
2724s | happened cuz something Stephen no no he |
2728s | got it on the spawn and Destroy nice |
2730s | okay yeah yeah like like I said our goal |
2732s | is to make it as seamless as possible |
2734s | and one of the main pillars when we were |
2736s | making this uh entire system |
2740s | was we try not doing anything on the |
2743s | client if all of our actions are kind of |
2746s | done on the server in a fast and |
2748s | efficient way the client shouldn't |
2750s | notice anything happening at all and |
2752s | that's kind of where this comes in |
2754s | because we don't want the client to |
2756s | notice so every time we're doing |
2758s | something we're like okay how can we do |
2759s | this without affecting the client's |
2761s | experience because we don't want them to |
2763s | have a bad time |
2765s | yeah okay so um let's talk a little bit |
2771s | about how all this stuff is |
2773s | working uh because yeah we are |
2776s | communicating between servers we're |
2778s | sending events between servers we are |
2780s | transferring between servers but how is |
2783s | that information flowing how do the |
2785s | clients end up seeing that stuff |
2788s | and typically uh the way this is done is |
2793s | uh you create a centralized rep |
2796s | replicator and all the different servers |
2798s | from all across the realm send all the |
2802s | relevant information about all the |
2804s | different entities to that replicator so |
2807s | let's say one server has um a bunny and |
2810s | that bunny moved around it sends that |
2813s | information to the replicator and now |
2815s | the server has a goblin that took damage |
2817s | it will send that information to the |
2819s | replicator and then all the players will |
2822s | connect to that replicator and the |
2824s | replicator will pass pass through all |
2827s | those different |
2828s | entities decide which player should see |
2832s | which entities and send that information |
2834s | to the specific |
2837s | player however this creates a few issues |
2840s | and you might actually be able to see it |
2842s | from that graph there that we've just |
2844s | created a |
2845s | bottleneck uh as this singular process |
2848s | now may need to keep track of hundreds |
2850s | of thousands of |
2852s | entities and |
2854s | send potentially hundreds of millions of |
2858s | updates to all those clients because all |
2861s | those bunnies moving and the goblins and |
2863s | the players and the trees falling all |
2865s | that information has to be passed |
2868s | through the replicator and then sent to |
2870s | each individual client and I guess |
2872s | something to add here too Antoine is |
2874s | like this is the that that would just be |
2875s | moving the problem we're trying to |
2878s | like like if we had a single server this |
2880s | this would this would be the same |
2882s | problem where all all the replication is |
2884s | happening on one place and we're trying |
2886s | to we're trying to not do that Yes |
2889s | actually we tested a solution like this |
2891s | uh during alha one and this |
2895s | bottleneck it kind of affects how many |
2898s | players you can have in their realm as a |
2900s | total like you can spawn all the servers |
2902s | you want but one at some point you hit a |
2905s | limit on the replicator itself and it |
2906s | doesn't matter how many more servers you |
2909s | spawn you are limited by that cap on the |
2912s | replicator uh during alpha 1 the number |
2915s | we got was like I think about a thousand |
2918s | players where after hitting that point |
2921s | you can no longer really scale anymore |
2924s | and it's important to note that be |
2926s | because of this |
2928s | more I guess for lack of a better term |
2931s | archaic and monolithic approach which |
2933s | which many of us have likely experienced |
2935s | in older games |
2938s | there are certain scenarios in those |
2940s | games that are multiplayer where you |
2942s | start to see that server is having |
2944s | trouble and it's because it's hitting |
2946s | these types of Choke |
2948s | points yes and in fact when this |
2950s | replicator is overwhelmed the entire |
2953s | realm will lag it doesn't matter if |
2955s | you're alone in one server in a remote |
2957s | island you will lag because there is a |
2959s | big battle on the other side of the |
2961s | realm that's I remember in so many so |
2963s | many games where I would be out hunting |
2965s | and peaceful nobody's near nearby and |
2968s | I'm noticing everything is starting to |
2970s | churn and I'm like what is going on and |
2972s | then I'll look into Global chat and I'll |
2974s | see oh [ __ ] they're having a huge fight |
2977s | somewhere across the realm in a totally |
2979s | different part of the world and I am |
2981s | suffering as a result of it indeed and |
2985s | guess I guess it's a good bridge to our |
2988s | to what we're doing yeah it is a pretty |
2990s | good Bridge because basically we yeah we |
2994s | ases of creation is trying to aim for |
2997s | player counts that we found out that |
2999s | centralized replicator does not support |
3002s | so we had to come up with our own |
3004s | solution and uh this is from what we |
3007s | know not a very common solution possibly |
3011s | because it's more difficult to pull off |
3015s | uh what we basically did is we |
3016s | completely got rid of that centralized |
3018s | replicator and instead we had the |
3020s | servers themselves collaborate with the |
3023s | other servers around them and exchange |
3025s | information that way that and that makes |
3029s | each individual server have all the data |
3032s | they need to serve the clients that are |
3035s | connected to them uh in our scenario |
3038s | over here you can see we have four |
3040s | servers and two clients are connected to |
3043s | it's one of those servers if we had a |
3045s | centralized replicator all those four |
3048s | servers would be connected to that one |
3050s | replicator and then all eight clients |
3052s | would be connected to that one |
3054s | replicator too so we've actually |
3057s | distributed the problem we've eliminated |
3059s | the bottleneck and we've also eliminated |
3063s | this one point of failure that existed |
3067s | beforehand where if that one replicator |
3069s | fails the entire realm goes |
3072s | down and we can actually yeah have a |
3076s | look at the uh next slide where we see |
3080s | uh how we are more fault |
3083s | tolerant uh than if we have a |
3085s | centralized replicator |
3088s | uh and we can actually yeah you can swap |
3091s | to the next slide there you go we have |
3093s | the uh the entire server grid over there |
3096s | and if one server goes down everyone |
3099s | else can uh keep playing it like normal |
3103s | we patch that server up we fix the issue |
3106s | we bring it back up and everyone else |
3109s | never experienced anything the player is |
3111s | that we're connected to that one server |
3112s | got booted and then can rejoin just fine |
3115s | uh if we had a central leisure |
3117s | replicator if that replicator went down |
3119s | everyone gets booted |
3122s | so yeah so that's another uh another |
3126s | good uh benefit from our approach |
3128s | although the the really big gain we |
3130s | achieved with this was the elimination |
3133s | of the bottleneck uh and it actually |
3136s | lets us scale we are truly distributed |
3141s | we can just spawn new servers to a |
3143s | certain point of course and this is this |
3146s | is not and by the way like this is not |
3148s | just a strength obviously of the of the |
3150s | replication model of of the of the |
3152s | server grid itself you know being |
3154s | distributed in such a good way but when |
3156s | you have to bring such a monolithic |
3158s | server down because of that because of |
3160s | let's say whatever era you can't |
3162s | determine that has a Cascade effect |
3164s | across you know everything you're having |
3167s | to to affect the database to affect the |
3170s | login servers to have the player cues |
3172s | going off again the ability for this to |
3175s | truly be distributed and for us to be |
3178s | fault tolerant is an entirely different |
3181s | player experience when it comes to these |
3183s | large massive MMO RPG uh type settings |
3187s | yeah I mean it's it's very typical you |
3189s | know like with you know an MMO like that |
3192s | something else is happening in the world |
3194s | somewhere someone's hacking someone's |
3196s | you know there's a really large maybe |
3197s | there's a really large raid or or Siege |
3200s | happening and the the server Falls over |
3203s | and then everyone gets kicked with our |
3206s | model that doesn't happen the the rest |
3208s | of the server is fine performance is |
3209s | still fine in the rest of the server |
3210s | people can keep playing if that server |
3213s | goes down we you know we'll deal with it |
3215s | we'll spin it back up and it we'll just |
3217s | seamlessly rejoin the grid once it's |
3219s | once we're back in a good |
3222s | State and this like eliminating the |
3226s | replicator was um definitely not easy uh |
3231s | and it actually it caus us quite a few |
3234s | problems but let's investigate one of |
3236s | those problems |
3237s | and the solutions we came up to uh solve |
3240s | it |
3243s | so the because we did not want to create |
3249s | an really large connection network |
3252s | between all the different servers we |
3254s | essentially connect the servers to the |
3258s | nearby uh servers the neighboring or |
3260s | like some that are close |
3263s | by uh and that is fine in most |
3265s | situations over here here we can see |
3267s | there's two players in um two |
3269s | neighboring servers those those servers |
3272s | communicate so if those two players are |
3274s | in a party even though they might be a |
3276s | little bit too far away to see each |
3278s | other they can still see each other on |
3280s | the |
3281s | map however in a more complex situation |
3284s | where that other player is maybe on the |
3288s | other side of their realm now those |
3291s | servers do no longer have a connection a |
3293s | direct connection to each other so we |
3296s | have created a problem how can player |
3300s | one see player two when player two is on |
3303s | the other side of the world when if we |
3305s | had a centralized replicator sure we |
3307s | have the data just there we can figure |
3309s | it out but we do not uh what do we do |
3312s | about |
3313s | that and uh to solve uh that issue we |
3318s | created a concept called |
3321s | microservices microservices |
3325s | are Imagine them kind of |
3328s | like servers on top of the servers like |
3332s | um like some database for example but |
3334s | it's active it's not just storage |
3337s | they're doing |
3338s | work uh we have a node service that is |
3342s | responsible for um leveling up and |
3345s | keeping track of all the nodes and the |
3347s | um upgrades that have to be done to to |
3350s | nodes we have a population service that |
3353s | is doing the spawning across all the |
3355s | realms |
3357s | and we have a Social Service which would |
3359s | be for example what |
3362s | um what would affect the party example |
3365s | that we just uh talked about this means |
3369s | that server one and server 8 on the |
3372s | diagram can connect to that social |
3374s | service and exchange the locations of |
3377s | those two players that way player one |
3379s | and player 8 can have exactly the |
3382s | information they need to be able to see |
3385s | each other on the map |
3388s | and we act we yep what was it |
3391s | Stephen oh nope that wasn't me oh that |
3394s | wasn't you can't sorry my bad um so uh |
3398s | yeah and this actually gave us some |
3399s | extra benefits we were able to make some |
3401s | pretty cool tools with it because we |
3405s | wanted to be able to see to have like an |
3407s | overview of what happens to the entire |
3410s | realm we wanted to be able to keep track |
3412s | of all the players all the NPCs see all |
3415s | the different gatherable being spawned |
3417s | see all the |
3419s | trees and that's kind of hard to do if |
3422s | we just connect to a single server and |
3424s | then see what's on that one server and |
3426s | then jump on another server and see |
3427s | what's there so we created a service |
3430s | that keeps track of all entities in the |
3433s | world and a tool that can allow us to |
3436s | view those |
3438s | entities and this is a pretty cool tool |
3441s | because we can see the players moving |
3443s | around we can see them uh participa in |
3445s | events we can see the PC is dying we can |
3447s | see them collect |
3449s | Gables so if there's any issue with the |
3452s | spawning on GA of Gables we'll detect it |
3455s | and hopefully fix it it's I think the |
3458s | big thing to say here is like you know |
3460s | we can we can see the entire world state |
3463s | which we yes generally can't do because |
3466s | we're so distributed and everything's so |
3468s | server Central but since we have these |
3470s | Services we can make a debug service |
3472s | like this and we can see the entire |
3474s | world yeah watching |
3477s | yeah I also wanted to piggyback off of |
3478s | that Anton of your services um the |
3481s | services as well are also pretty much |
3484s | distributed like going for our model so |
3486s | that if one of those systems go down |
3488s | it's not taking down the entire all |
3490s | every game system so if we just if the |
3493s | chat service goes or the Social Service |
3494s | for example goes down you may just not |
3496s | be able to chat or form a party for a |
3498s | few minutes until it comes back up but |
3500s | you should still be able to interact |
3501s | with like your guilds your nod your mail |
3504s | Etc and we try making the service is as |
3507s | well fault tolerant like we explained |
3508s | earlier um so that way they can come |
3511s | back up go down come back up on the Fly |
3513s | get hot fixed and so that we can still |
3516s | provide that seamless experience while |
3518s | the feature may not be working |
3519s | everything else should still be working |
3521s | in the meantime right and because |
3522s | they're they're componentized in this |
3524s | you know microservices approach right |
3527s | there is not an interconnectivity where |
3529s | you have one failure in a single service |
3531s | causes a cascading effect across all the |
3533s | services right exactly they're they're |
3535s | independent of one another that allows |
3537s | for a recovery time a recovery process |
3540s | to stand back up while the other |
3541s | services continue their operations |
3544s | exactly and then these debugging tools |
3545s | allow us to see where those problem |
3547s | areas are or what what situation or |
3549s | actor might be causing a problem right |
3552s | exactly yeah we don't have all the tools |
3554s | slide for all the tools but we do have |
3556s | monitoring tools for all the different |
3558s | Services we know when they're lagging we |
3560s | know when they're down we know we can |
3561s | monitor pretty much everything it's |
3563s | pretty cool yes it's very cool |
3566s | cool now let's get let's get into the |
3568s | really fun stuff now next one is this |
3570s | one is something the community has |
3572s | actually been talking about quite a bit |
3573s | yeah I saw a bunch I saw a bunch of |
3575s | videos people are people are have been |
3577s | talking a lot about this yeah so go into |
3580s | it Anton because this is this is your |
3582s | thing yeah oh God I have been I've been |
3585s | looking forward to like since I joined |
3588s | the company I've been wanting to |
3589s | implement this and uh this is um an |
3595s | answer to a problem |
3597s | and that problem that is trying to |
3599s | answer is sure you have all those |
3602s | different servers but usually player |
3604s | activity tends to condense to certain |
3607s | areas let's say a large PVP battle is |
3610s | happening at some place um and when that |
3614s | happens that one server can be |
3618s | overwhelmed and you usually wouldn't |
3620s | want to just create tiny servers for |
3624s | everything because that can be |
3626s | incredibly expensive and |
3628s | wasteful but having those smaller |
3632s | servers would be really useful so what |
3635s | if you can do it dynamically what if you |
3637s | can detect when a server is overwhelmed |
3640s | and then split it this is what dynamic |
3643s | griding it is and it can be a little bit |
3648s | of a little bit tricky to implement uh |
3650s | the difficulty of it is that you just |
3653s | now split a server and you want the |
3656s | players to not realize they were casting |
3659s | abilities they were running around and a |
3662s | new server just spawned they were moved |
3664s | there and no one realized that is a |
3666s | difficulty there and something I want to |
3668s | add here is like these cases in which |
3669s | we're splitting a server they're complex |
3672s | because if we're splitting a server |
3673s | there's a lot going on so it's not like |
3676s | we can like there's just a couple people |
3678s | we can split them we can do like a a |
3679s | quick fade and it will be fine if we're |
3683s | splitting a server it's because it's |
3685s | it's underload |
3687s | and there's there's a lot of action |
3688s | going on so we want to keep that action |
3690s | going on and not interrupt it while we |
3692s | while we balance the load across |
3693s | multiple servers and and it's important |
3695s | to you know call back again to the very |
3697s | beginning of this conversation right how |
3700s | do you determine the types of |
3702s | architecture necessary you must first |
3705s | understand what is the mission statement |
3707s | of the game and Ashes is built with a |
3710s | lot of open world Dynamic and emerging |
3715s | player behaviors that are attempting to |
3718s | encourage High player densities at any |
3721s | point within the open World locations |
3724s | which makes this particular problem a |
3727s | requirement when determining |
3729s | architecture of how do we address this |
3732s | right and I'm not familiar with and you |
3735s | know Zach Anton Hunter I'm not sure if |
3736s | you guys are but I'm not familiar with |
3739s | any other Tex stack or networking |
3741s | approach that has a dynamic griding |
3743s | solution in order to better accommodate |
3746s | and facilitate that emergent player |
3750s | density Behavior yeah I mean we we are |
3753s | we are not the first people to try this |
3755s | this is this is something that a lot of |
3756s | people have tried it's it is you know |
3759s | the the answer to to scalability if you |
3762s | if you can get it right and that is you |
3764s | know that is our our mission here is to |
3766s | get this right we want to be the people |
3768s | that solve this problem and because if |
3771s | we solve this the the the the level of |
3775s | battles and uh dynamicism I guess we'll |
3778s | be able to have in ashes is going to be |
3780s | unparalleled to any other game yeah and |
3783s | to make something clear we're not |
3785s | talking about the far future 5 years |
3787s | from now uh this is current currently in |
3791s | development and we are uh hoping at |
3795s | least to have it available by Alpha 2 um |
3799s | and the server meing part of it is |
3800s | already in game yeah the dynamic aspect |
3805s | of yeah so the static part yeah is |
3806s | already is already going it's been going |
3809s | for manys now yeah years years now um |
3812s | and you know the the all of our Dev test |
3815s | servers people are on them every day |
3816s | running it it's fine uh this is this is |
3819s | like you know if you where where we're |
3821s | investing our Dev time right now is |
3823s | getting this |
3825s | perfect get getting this ready for the |
3827s | entrance of Alpha 2 yes and hopefully |
3831s | ases of creation is going to be uh the |
3833s | first game that implements this |
3835s | technology and actually deploys it yes |
3837s | that would be really fun you got to work |
3840s | quickly guys if you want that moving |
3845s | moving very cool this is |
3847s | exciting right do you want talk about |
3850s | the it up to uh to Hunter yeah yeah I I |
3853s | guess now that we've you know all these |
3856s | slides before this we were talking about |
3857s | Distributing the problem separating the |
3860s | problem um into multiple servers so we |
3863s | don't have to deal with like you know |
3865s | thousands and thousand thousands of |
3866s | players and on on the same server doing |
3869s | replication um but you know we still |
3872s | have like the core problem here right we |
3875s | can only split servers so far we can't |
3877s | you know make them like 10 meters by 10 |
3879s | meters we can't do that it's going to be |
3880s | too small um so we need to we need to |
3883s | still support you know a high you get a |
3885s | server you get a server exactly exactly |
3889s | so we still need to solve the like the |
3891s | core problem of how many players can we |
3894s | get on a server have them replicate and |
3896s | simulate at the same |
3898s | time so uh I'll pass it over to 100 |
3902s | he'll kind of go into like I guess the |
3904s | problems that we have when we're when |
3906s | we're with with with unal replication |
3908s | and how we've gone about uh speeding |
3910s | them up so we can uh support many many |
3913s | many uh hundreds of players on a |
3916s | server yeah um so kind of piggybacking |
3920s | off what Zach said like what do we do |
3922s | when a large amount of players are say |
3924s | following your favorite streamer into a |
3926s | a small area and then like we can't just |
3929s | keep dividing our servers into such tiny |
3931s | areas and |
3934s | that you're needing a single server |
3936s | that's still of a reasonable size to |
3940s | then be able to process the heavier load |
3942s | and replication that's happening in that |
3944s | exact area at that exact |
3946s | moment um so in order to do that we have |
3950s | to then figure out how we can increase |
3952s | the number of players and entities that |
3954s | a single server can support |
3956s | and this doing so will also help us |
3959s | increase our overall like concurrent |
3960s | user limits per realm um because as a |
3963s | rough napin math of course you know you |
3965s | take the players per server multiply |
3967s | that by the number of servers and |
3968s | there's your CCU right it's that easy |
3970s | yeah that's how it |
3973s | obviously um so I'm G to kind of go into |
3976s | now uh we're going to touch back up on |
3978s | kind of what we explained earlier like |
3980s | why is replication |
3982s | expensive like what's going on um |
3987s | so we kind of wanted to explain that |
3990s | like on this slide here for example you |
3992s | can see an example of a CPU performance |
3996s | profile that we took during a large |
3998s | scale bot |
3999s | test um you can see here that like the |
4002s | single frame we're staring at took 150 |
4004s | milliseconds for example now 150 |
4007s | milliseconds may not seem like much but |
4009s | when you want to for example you're |
4011s | talking about servers and tick |
4013s | rates um and if you're trying to Target |
4015s | say 30 or 60 frames per second or ticks |
4018s | per second server you only get a budget |
4021s | of about like 33 milliseconds or 16 Mill |
4024s | seconds per frame in order to keep that |
4026s | stable High tick time can you talk a |
4030s | little bit about what you're referring |
4031s | to when you're when you're talking about |
4033s | tick rates and ticks people |
4035s | not |
4037s | so as your game server runs |
4041s | every it it runs and processes basically |
4044s | the entire world at like an interval of |
4046s | ticks or frames is what it's called the |
4049s | faster you can do all that processing |
4051s | the faster your gameplay and experience |
4053s | is going to be um if you're targeting |
4056s | say roughly 30 to 60 frames per second |
4058s | which is a pretty good um targets to |
4061s | have for like a game server of like an |
4063s | MMO that needs to be very fast-paced and |
4065s | have like very good performance is |
4069s | different than client FPS yes but but |
4072s | they but they they might like 30 is not |
4074s | acceptable |
4076s | so they're vaguely coupled so you one |
4079s | one of the things you would notice like |
4080s | if server performance went down is you |
4082s | would notice rubber banding like when |
4084s | you see like people just jumping around |
4085s | the world or you would notice your |
4087s | latency goes up and you would notice |
4089s | that by like you're you know you're |
4090s | trying to you know do PVP and you feel |
4094s | you know you you you cast Fireball and |
4096s | you feel the latency between the time |
4098s | you casted it and when it actually |
4100s | executed on the server so the the this |
4103s | this this time these like these tick |
4105s | times that were talking about that's |
4107s | what it correlates to for the player |
4109s | right because normally when you do an |
4110s | action the client triggers something it |
4112s | tells the server hey do this and the |
4114s | server then replicates back to your |
4115s | client if these frames are taking a long |
4118s | time to process in between that means |
4120s | your server just has artificial latency |
4122s | and it's taking a lot longer to then |
4123s | process that incoming message to then |
4126s | return back to you um so like in this |
4129s | 150 millisecond scenario if our game was |
4132s | steadily running every frame at like 150 |
4134s | milliseconds of time to process |
4136s | that would drop our server down to |
4138s | roughly like six ticks or six frames per |
4140s | second which then you will really |
4142s | heavily around that time start filling |
4144s | like latency rubber banding uh dropped |
4147s | packets Etc and and then that's not |
4150s | acceptable for an action combat PVP MMO |
4153s | like it just doesn't work |
4156s | right so I played those games it |
4160s | definitely doesn't |
4161s | work we all have blamed lag before right |
4164s | right so so we know that this is |
4167s | unacceptable what do we have to do to |
4169s | optimize this right so now this kind of |
4172s | tells us replication and now it's like |
4174s | okay let's dive a bit deeper into why |
4176s | this replication is very |
4179s | expensive um one of the big excuse |
4184s | me one of the big um major factors |
4188s | replication can be slow is because first |
4191s | when you want to do your replication you |
4193s | have to gather and determine basically |
4195s | relevancy of every actor in the game to |
4199s | not only your connection but every other |
4200s | connection that's being processed in |
4202s | that |
4203s | frame so relevancy is used and needed to |
4207s | determine basically how far away an |
4208s | actor is from your player and then there |
4211s | might be some other like comment some |
4213s | other checks that they may need to do |
4214s | like is it visible or not but for |
4217s | Simplicity sake we're just going to base |
4218s | it off a distance for |
4219s | now so then it's basically comparing |
4223s | that distance to you and saying okay |
4226s | are you eligible for me to replicate to |
4228s | you because we obviously don't want |
4230s | things being considered to replicate to |
4232s | you if it's like across the world like |
4234s | you don't care what's happening on the |
4236s | far Northern end of the continent while |
4237s | you're all the way down on the southern |
4238s | end like that's just that's just going |
4240s | to waste a lot of processing and |
4243s | bandwidth um so the relevancy checks |
4248s | like this gets way more expensive the |
4250s | more players and more actors you have |
4251s | that are replicated because then it's |
4254s | for every actor for every player |
4256s | am I within range of them yeah and when |
4259s | we're talking about an MMO where you |
4261s | know you're going to have thousands of |
4262s | players on the server thousands of NPCs |
4264s | uh tens of thousands of replicated |
4266s | actors you know you can't you just can't |
4268s | check all you can't do a distance check |
4270s | on all of those things in a reasonable |
4273s | amount of time right and so this is an |
4275s | optimization here for networking |
4277s | purposes but it also leads to them |
4279s | slowing down your CPU resources because |
4283s | again you have to do that like every |
4284s | tick or at every ever interval you set |
4286s | to do these |
4287s | checks um as we if we looked at the |
4291s | previous example for example I believe |
4293s | the I don't think it shows in the |
4295s | profile but roughly a little bit over |
4297s | onethird of that total time in that |
4299s | profile was just doing the relevancy |
4303s | checks um a good thing about our model |
4306s | though because all of our servers are |
4308s | distributed they only have to do those |
4310s | relevancy checks for just everything |
4312s | within that then distributed Zone as of |
4316s | if we had that Central replicator it |
4317s | would that replicator would then have to |
4319s | still process every single player every |
4321s | single actor Etc in the world in some |
4323s | way shape or form to then determine if |
4325s | it should be relevant to you or not so |
4329s | by splitting up and doing the |
4330s | distributed server load like we're doing |
4333s | this allows us then to kind of reduce |
4334s | that problem area but it's still a |
4337s | problem yeah it's still really big |
4339s | because it's still a really big problem |
4340s | now adding more servers to the solution |
4342s | that can make it smaller and smaller but |
4345s | eventually there's like we want to get |
4348s | it as fast as possible so it's like how |
4350s | how how do we make this better how do we |
4352s | make this faster to be clear that |
4354s | profile was using uh inter it had a |
4358s | server messing and it still was 40 35% |
4362s | uh uh relevancy checks so we need to |
4365s | reduce those relevancy checks uh how how |
4369s | do we do that how can we tell unreal not |
4373s | to do all those unnecessary checks |
4377s | well unreal in recent years introduced |
4380s | something called the replication graph |
4382s | and that is something that gives the |
4387s | developers |
4389s | the ability to write a custom solution |
4392s | into how to handle all those uh relevant |
4396s | checks and how to determine which player |
4398s | should see which actors when it comes to |
4402s | replication uh and this can actually |
4405s | actually lead to some really great |
4408s | performance games we'll look at it in a |
4410s | bit uh but let's start and to and see |
4414s | how we use this replication graph to |
4417s | solve specifically this relevance |
4420s | check on the map over there we see uh we |
4425s | you still cannot see too far away but |
4427s | there are a couple actors that are |
4430s | really close to the player that Goblin |
4432s | over there in a loot box and there is |
4436s | also um a bear a little bit on a medium |
4440s | distance away and a bunny really far |
4442s | away now imagine that keep stretching |
4445s | for 500 meters more and there's 200 more |
4448s | bunnies and without the replication |
4450s | graph we would have to check every |
4453s | single one of those bunnies and say is |
4455s | this within my distance is this within |
4457s | my distance and that's that's a problem |
4460s | that's expensive to do so what we're |
4463s | going to use the replication graph |
4466s | um to do is we are going to create this |
4469s | grid where we eliminate all the cells |
4473s | that are far further away from us and |
4475s | only check the nearby |
4477s | cells that allows us to only check these |
4480s | three actors that are around us skipping |
4482s | potentially hundreds of others actors |
4484s | that are further |
4486s | away and uh this can lead to a pretty |
4489s | big performance Improvement we noticed |
4492s | and this is like highly varying |
4494s | depending of the scenario scario of |
4496s | course but on an average scenario we |
4499s | noticed about a 1.5 times performance |
4502s | Improvement like a 35% |
4504s | reduction uh in our replication |
4508s | cost this is this is pretty |
4511s | good uh but it's still not fast enough |
4515s | and if we analyze the problem a little |
4517s | bit we'll see |
4519s | that we are we we're talking and |
4522s | thinking about like the NPCs and the |
4524s | bear and the |
4526s | goblin but we are also comparing our |
4529s | distance with all the trees with all the |
4531s | bushes that you can pick up with |
4533s | potentially some buildings that are |
4537s | destructible why are we doing that can |
4540s | we do something to improve this and the |
4542s | answer is yes we can uh what we can do |
4546s | is we can monitor and see when these um |
4552s | ores or these trees are changing |
4555s | Ing and when they're not changing we can |
4559s | move them out of our grid so we're not |
4562s | even considering them at |
4564s | all uh we might have 2,000 trees in the |
4567s | area well we're not even going to look |
4570s | at them because none of those trees just |
4571s | got cut down if someone is cutting them |
4574s | down then yes we're going to move them |
4576s | temporarily into the special grid and |
4579s | then once they're done cutting out and |
4581s | everyone sees that they were cut down we |
4583s | put them back to the dormy bucket |
4586s | it's essentially looking imagine like |
4588s | the actor is going to slip for it a |
4590s | little bit and this this gives us a |
4594s | really really large Improvement we |
4596s | noticed in our test about five times |
4599s | Improvement in replication |
4601s | times so so |
4604s | far uh if we also include the previous |
4606s | optimizations we've improved our |
4608s | replication performance by seven |
4610s | times and yet that's still not fast |
4613s | enough it's still not fast enough one of |
4617s | mainly because of our worst case |
4620s | scenario and that worst case scenario is |
4623s | people keep packing in that one small |
4626s | area there's an event happening there's |
4629s | some point they need to capture 200 |
4631s | people run in the same area yes she can |
4633s | ignore the um relevancy to some Far Away |
4637s | tree that's great that's a game that's |
4640s | uh more than welcome but if 200 players |
4644s | can see each other |
4646s | that means that 200 time 200 you're |
4648s | sending 40,000 updates per tick yeah and |
4654s | I guess one thing to add there Anton |
4655s | this is typically when a game would |
4658s | introduce a new layer or um a new Shard |
4661s | this is like typically that case um but |
4664s | as we talked about earlier one of our |
4666s | goals is we don't want we don't we don't |
4668s | want to do laying we don't want to new |
4669s | sharting we want everyone who's in the |
4671s | same area to be able to see each other |
4673s | right and you could you you could then |
4675s | use like Dynamic greeting to help in the |
4677s | scenario but again we can only make the |
4679s | servers so small and dynamic before we |
4682s | kind of run out of that room so we still |
4684s | have to improve the scenario that's kind |
4686s | of happening around you indeed so we |
4690s | need to figure out a way to further |
4693s | improve this worst case scenario and |
4697s | this is where we kind of hit an engine |
4701s | limit um and this engine limit is that |
4706s | the replication graph of Andre |
4709s | is the replication tick in general not |
4712s | just the replication graph is single |
4714s | threaded and that's because the engine |
4718s | in general is single threaded now what |
4720s | does that mean what does single threaded |
4722s | mean it means that all the processing |
4726s | happens in one core of the |
4729s | CPU uh and uh we can move on to the next |
4733s | Slide by the way but |
4735s | but |
4739s | the that means that even though the |
4741s | server might have four cores um all the |
4746s | other three cores are going to stand |
4748s | there and wait for the first thread to |
4751s | do all the |
4753s | processing uh this is done normally in |
4755s | unreal because it's it was not designed |
4759s | to be |
4760s | multi-threaded uh it was it is a very |
4762s | single threaded engine and and |
4765s | replication is probably the most |
4768s | single-threaded system out of all the |
4770s | systems in |
4771s | unreal uh so making it multi-threaded is |
4777s | incredibly difficult and uh at least I |
4781s | am not aware of it being done before I |
4784s | tried to do some research around it at |
4786s | the time and uh everyone was saying |
4789s | basically that it's |
4792s | impossible but uh we did it anyway uh we |
4795s | persevered through and uh we |
4798s | multi-threaded the unreal replication |
4801s | Tech and uh well looking at the |
4805s | results they did not disappoint uh we |
4809s | actually gained and there's a graph |
4811s | showing it on the next slide but we |
4815s | gained a |
4817s | 2.5 times Improvement 2.4 times to be |
4821s | more exact in a replication Tex huge |
4825s | yeah it was a really really big |
4827s | Improvement in uh a replication and it's |
4831s | probably necessary to achieve the player |
4834s | counts that we're targeting for I don't |
4836s | I don't think it would be possible |
4837s | without doing |
4838s | this uh and the the really important |
4842s | thing to note about this optimization |
4845s | and why it's like such a big deal |
4847s | compared to like the five times |
4849s | Improvement we saw before from dorcy is |
4853s | that this Improvement |
4857s | helps equally even on the worst case |
4860s | scenario the other ones in the worst |
4862s | case scenario they're helpful but |
4864s | they're not that helpful |
4866s | this is incredibly important even on the |
4869s | worst case |
4871s | scenario and if we add it on uh all the |
4874s | other improvements we've done so far |
4876s | we've actually achieved a total |
4879s | Improvement of total reduction or |
4882s | replication take by 94% so are only at |
4885s | 6% of the original cost for uh |
4890s | replication uh this was actually a huge |
4892s | win for uh our team um but um |
4898s | it there are still there's still many |
4900s | more things that need to be |
4902s | done uh ases of creation is |
4906s | um an incredibly ambitious MMO in terms |
4909s | of scale uh and uh we need to do |
4915s | a lot of work in order to heat our goals |
4918s | and you know this is this is obviously |
4921s | again going back to the start of this |
4922s | whole conversation what is ashes of |
4924s | creation trying to be and what does it |
4927s | then require of the Tex act we are using |
4931s | in order to become that and when we said |
4934s | in 2017 that we are looking to bring |
4936s | massive back to massively |
4939s | multiplayer having an engine with the |
4941s | graphical Fidelity the front end that |
4943s | unreal provides |
4945s | is |
4947s | so is so important to the immersive |
4951s | nature to the beauty of the world to you |
4954s | know the quality of the setting but then |
4957s | coupled with a proprietary backend that |
4962s | can facilitate the same player |
4964s | experience that a massively multiplayer |
4967s | World wants to |
4969s | provide that's the dream that is what |
4972s | ashes is trying to be exactly |
4977s | phenomenal work here guys this is this |
4979s | is huge yeah I I I'd like to like take a |
4983s | moment I guess to shout out the team the |
4985s | team has done an incredible job you know |
4987s | we |
4989s | are we we we are we are pushing MMO Tech |
4991s | to where it's never gone uh and we |
4993s | continue to we we intend to keep doing |
4996s | this moving forward Hunter Alex Kevin |
4999s | Andrew Anton Adam ish Doug you know they |
5002s | they've all done amazing work uh you |
5005s | know to get us to this point where we're |
5006s | at today and I'm sure they'll keep doing |
5008s | it moving forward um if you're |
5011s | interested in working on problems like |
5013s | this you know yes send us an application |
5016s | you know we're always looking for people |
5017s | who want to work on this who have |
5020s | experience working on te Tech like this |
5022s | please send this an application we we're |
5024s | we're always interested and we know that |
5026s | like this this this showcase this this |
5028s | Tech talk this Ted Talk this this GDC |
5031s | talk you know what whatever whatever we |
5033s | want to apply to this this uh to this |
5036s | indepth technical discussion is going to |
5039s | appeal not just to to people who are |
5042s | aspiring obviously uh within this field |
5044s | to learn it to do it to you know this is |
5047s | their career going forward but also to |
5049s | those of you who have been within this |
5052s | field work and who yearn to work on the |
5055s | types of problems that we're discussing |
5057s | here in this showcase um we have a |
5060s | phenomenal culture at Intrepid we have a |
5062s | phenomenal project in our hands that is |
5065s | you know no shortage of problems that |
5068s | need to be solved um and one thing that |
5071s | our community has done a phenomenal job |
5073s | with is is helping to evangelize the |
5077s | project and the company and we're here |
5079s | to say that we have apps open we have |
5082s | positions that are available and if you |
5084s | want to be a part of this team um or if |
5087s | you want to help others find this team |
5089s | so that they can apply please share this |
5092s | link share this uh video with s go on |
5096s | you know social media and let people |
5097s | know we're working on some pretty Next |
5099s | Generation Tech that is going to change |
5102s | the face of massively multiplayer when |
5105s | it comes to a genre so you know very |
5107s | excited and proud of what your team has |
5109s | accomplished you guys I know are working |
5111s | every single day and doing a phenomenal |
5113s | job um congratulations just very well |
5117s | done thank you thank you and it's great |
5120s | to experience it in game two and I know |
5122s | that you know our PI folks have already |
5124s | experienced that in our node Wars test |
5126s | as well so maybe they didn't even |
5128s | realize it um yeah they might not have |
5131s | noticed um but there were definitely |
5133s | server workers working hard in that um |
5136s | and we were capturing data so we super |
5138s | duper appreciate it and as we head into |
5140s | Alpha 2 we're only going to get more |
5142s | data and be able to continue to push on |
5145s | and as uh the folks here have stated um |
5148s | moving towards more of that Dynamic |
5150s | State yeah um it's been in progress It's |
5153s | going to be in progress still for many |
5155s | years as we continually find new ways to |
5157s | advance it and make it better um we're |
5160s | committed to providing kind of like that |
5162s | quality we want for our players and as a |
5164s | lot of us have played MMOs in the past |
5166s | we just like networking was the big |
5170s | stopper for a lot of things and we're |
5172s | trying to do something different and |
5174s | trying to make that a better experience |
5177s | for not only our game but many more |
5179s | games to come if other companies were |
5181s | able to like wanting to adapt to a new |
5183s | tech style or try to figure out their |
5185s | their networking |
5187s | issues yeah and of course all of us here |
5189s | are huge MMO fans and I know those of |
5192s | you who are watching are as well |
5193s | obviously if you're sitting through this |
5195s | um but of course the the plan for us is |
5198s | to continue to create an amazing game |
5201s | and push forward and continue to change |
5203s | things even after post launch we'll |
5204s | continue to try to drive things forward |
5207s | so thank you for joining us and thank |
5208s | you to Hunter and Zach and Anton for |
5211s | your time and putting together an |
5212s | amazing deck a little extra shout out to |
5214s | Mike for putting together all the graphs |
5216s | gra Mike did such a good |
5219s | job Kyle for helping capture some of the |
5222s | little footage pieces to make sure that |
5223s | they looked great we super appreciate it |
5225s | any final words Stephen to WP yeah |
5227s | absolutely just you know out in the |
5229s | community let us know you know these are |
5231s | always the more risky takes that we |
5233s | provide insights to in our monthly |
5235s | updates because they are so Tech heavy |
5237s | and you know we know that this has an |
5240s | appeal to perhaps a smaller audience but |
5243s | give us your feedback give us your |
5245s | thoughts what did you think of this |
5246s | presentation how do you enjoy you know |
5248s | learning a little bit more indepth under |
5251s | the hood conversation about what it |
5253s | takes to make these types of games to |
5256s | make you know ashes of creation that |
5259s | that dream of all of ours um how does it |
5262s | appeal to you what are your questions |
5263s | what are your thoughts um leave us |
5265s | comments in the YouTube channel in the |
5268s | uh in on Twitter and different social |
5269s | medias and Discord and on our forums |
5272s | obviously the community team continues |
5273s | to do a bang up job of collecting your |
5275s | insights and bringing it back to the |
5276s | team um but we enjoy you know sharing |
5279s | this and and giving giving our perhaps |
5283s | um perhaps more sheltered uh |
5286s | developers who are who are in the behind |
5289s | the scenes making all the magic and |
5291s | everything work an opportunity to come |
5293s | out and talk about how they are |
5295s | literally the magic that makes the |
5297s | wheels turn for this bus um and it it's |
5300s | it's a great opportunity I think for |
5301s | them to come out see a little daylight |
5303s | and let and bask the of what is the |
5305s | glory that our community looks to them |
5307s | and says thank you for providing an |
5309s | opportunity to enjoy a game at this |
5311s | scale because it would not be possible |
5313s | obviously without your guys's hard work |
5316s | um and so with that I think we'll see |
5318s | you guys back on stream we'll see you on |
5321s | the flip |
5329s | [Music] |
5332s | side welcome back everyone we'll play |
5334s | the video in the background so you have |
5336s | something visually to watch while we |
5339s | discuss some things but of course uh we |
5341s | do we do grab a few questions from the |
5343s | chat uh most of them I feel like a lot |
5345s | of your questions we answered throughout |
5347s | later in the deck um but it seems like |
5350s | you guys like the presentation so again |
5352s | Mike thank you for putting that together |
5353s | and for Hunter Anton and Zach for |
5356s | putting together such an amazing very |
5358s | thorough uh explanation of the things |
5360s | that we're working on technology- wise |
5362s | but with that comes some information |
5365s | that we want to share with you guys of |
5367s | course we always like to be transparent |
5368s | we like to give you guys a heads up on |
5370s | what's coming and what we're doing and |
5372s | one of the things is that with this |
5373s | technology you know we had stated |
5375s | previously that we weren't going to |
5378s | expand we closed down our Alpha 2 packs |
5380s | for a reason and that reason was we |
5382s | wanted to make sure that we could |
5383s | service all the users that we had um one |
5385s | of the things that we really want to |
5386s | make sure of is that no matter who we |
5388s | have joining us that they're going to |
5390s | have a good experience obviously Alphas |
5394s | an alpha things are going to be buggy |
5396s | this is not a game we've always |
5397s | continually said that it's going to be a |
5399s | testing phase but with that we still |
5401s | want it to be a decent experience for |
5403s | those of you who join us and because of |
5406s | this amazing technology that these guys |
5408s | have been working on we can now service |
5410s | more users which means that we will be |
5413s | opening up Alpha 2 key access sales in |
5416s | the near future as we get closer to |
5418s | alpat 2 or with along with Alpha 2 so |
5421s | kind of stay tuned for that we do want |
5422s | to make sure that folks are aware of |
5424s | that but some caveats um these will not |
5427s | be pre-order packs these will be key |
5429s | access so these will be you know to |
5431s | access the product once it's available |
5433s | and then of course the pricing is still |
5434s | TBD but we will we're going to try to |
5437s | make sure it's fair as possible |
5439s | especially for those of you who have |
5440s | already purchase packages we understand |
5442s | that you're like hey I purchased a pack |
5444s | package we want to make sure that that |
5445s | price is comparable so we are Stephen |
5448s | and I have gone back and forth and we |
5450s | we'll make sure that it is fair for you |
5452s | guys and they will not be um when we do |
5455s | release the access to |
5457s | to they will not be um additional |
5460s | rotating Cosmetics either um so these |
5463s | will be static key access that players |
5465s | will have an opportunity to purchase in |
5467s | and access Alpha 2 and participate |
5469s | because ultimately Alpha 2's purpose is |
5471s | to test the game and more players |
5474s | testing the game is better um we wanted |
5476s | as Margaret said be sure that the tech |
5478s | that we are utilizing for Alpha 2 uh is |
5480s | capable of facilitating that um that |
5483s | Dynamic server griding and by the way |
5484s | watching the watching the commentary |
5486s | watching the feedback during the uh |
5488s | during the discussion was interesting |
5491s | there's a lot of people who I I didn't |
5493s | expect we're going to be really |
5494s | interested in the |
5496s | conversation um and it seemed like you |
5498s | know we I was watching the viewership |
5500s | was staying still around you know what |
5502s | it was I was like okay this is better |
5505s | than I expected we knew not everybody's |
5507s | G to be interested and we I we try to be |
5509s | uh set expectations like we've made it |
5512s | very clear that this is what we're going |
5513s | to be talking about for like a month now |
5516s | so hopefully everyone was prepared we |
5518s | tried to like make sure our social copy |
5519s | was like hey it's going to get nerdy |
5521s | we're going to talk a lot of tech so you |
5523s | know that's not your thing that's okay |
5525s | it definitely did we could have got more |
5526s | nerdy I feel like um but also I wanted |
5529s | to note that the upgrade packs uh for |
5532s | the previously purchased packs are still |
5534s | going to be available so if you already |
5535s | purchased a pre-order pack those |
5537s | upgrades are still available to you as |
5539s | well so those aren't going away um at |
5542s | some point obviously Alpha 2 keys will |
5544s | go away and of course those upgrade |
5546s | packs will go away um but those will be |
5549s | closer to the end of Alpha 2 and Alpha 2 |
5551s | is meant for to be a much longer um |
5554s | running um testing phase for us and |
5557s | we'll be we'll be having updates that |
5559s | will be coming frequently for those bug |
5561s | fixes that will be coming frequently for |
5563s | those so um in the persistence wise of |
5566s | aspect of it um because I think that |
5568s | that is something that needs to be set |
5570s | because people have different |
5571s | understanding of what persistance means |
5572s | we will have times where this servers do |
5574s | go down so that we can do updates so |
5576s | that we can check things and make sure |
5578s | things are good our goal is to not have |
5580s | to wipe but obviously if there are |
5582s | situations where we have to we will do |
5583s | that um but persistency is the main goal |
5586s | for us we want to get all that data that |
5587s | we possibly can when it comes to |
5590s | persistence absolutely that's not it we |
5593s | also have another announcement of an |
5595s | announcement another |
5597s | announc we I think people will like this |
5600s | one though that's yeah you think I think |
5602s | some people will like and some people |
5603s | won't uh so we are also going to start |
5607s | expanding our NDA testing um obviously |
5610s | we've been working with pi you guys have |
5611s | known that we've kept them pretty NDA we |
5614s | did uncover the vocal NDA in regards to |
5617s | the node War spot testing um but |
5619s | obviously we're doing other testing and |
5620s | by the way that's that's been a lot of |
5622s | fun to watch and I'm very encouraged to |
5624s | continue doing that as part of |
5626s | additional testing going forward because |
5628s | it's been great to see our test groups |
5631s | go out and sit on different content |
5633s | creators platforms and talk about what |
5634s | their experiences were and allow you |
5637s | know more than just us as an interface |
5639s | to you know what development is looking |
5642s | like right now what the game state is |
5643s | looking like right now so I'm very |
5645s | encouraged by those interactions I think |
5647s | we have a phenomenal content creator |
5649s | team group out there that is following |
5652s | the game who are you know servicing a |
5654s | lot of different viewers and communities |
5656s | who want to learn about what's happening |
5658s | they have great channels to go to and do |
5660s | that and you guys are choosing great |
5661s | guests and having really good |
5662s | conversations so kudos to you guys as a |
5665s | tangent because you brought that up um |
5668s | we are going to be putting up a role for |
5669s | a content creator relations manager and |
5672s | as soon as we fill that role you'll be |
5673s | starting to see some of those uh that |
5676s | program starting to come online so just |
5678s | you know that's very exciting for us we |
5680s | have so many applicants who have come in |
5682s | and one of the things that Stephen and I |
5684s | had discussed is that we really want our |
5686s | content creator program to be a very |
5688s | interactive thing you are part of like |
5689s | our family um so we want to help you you |
5692s | help us you know it's going to a mutual |
5694s | thing it's not going to be like a |
5695s | program that you've seen before and we |
5697s | did you know provide a little bit of an |
5699s | outline of what that program looks like |
5701s | and a lot of people were pretty excited |
5702s | about it but you know the bigger you |
5705s | grow the bigger we grow so we want to |
5707s | help you just as much as you help us and |
5709s | we aren't looking at just big content |
5711s | creators we're looking for really just |
5713s | quality content uh creators who are |
5715s | consistent so you could have 200 |
5717s | followers you could have 200,000 so it |
5720s | just to us that's not what we're looking |
5722s | for what we're looking at is we're |
5723s | really watching all your content we're |
5725s | looking at all your social yes exactly |
5728s | which is very timec consuming and we've |
5729s | already started funneling through some |
5731s | of that stuff and looking through it but |
5733s | obviously once we fill that role that's |
5734s | going to be the person who's going to |
5735s | help us manage it cuz it's going to be a |
5738s | full-time job um it might we might need |
5740s | more people than just one um but to go |
5742s | back to the announcement of the |
5743s | announcement um we obviously have a pi |
5747s | joining us and testing but we need more |
5750s | testers so we are going to be starting |
5751s | to expand that we're going to do a slow |
5753s | roll of what that expansion looks like |
5755s | and so for these initial testing we are |
5757s | going to be starting to add some of the |
5759s | alpha 1 users now how we're going to |
5761s | pick that I know that's going to be a |
5762s | big contentious thing but we uh are |
5765s | definitely going to do our best and so |
5767s | the first thing that we want to do is |
5768s | for this first round is we're going to |
5770s | add the top 500 from the alpha 1 |
5773s | contributors so that is looking at |
5775s | people who actually participated in game |
5777s | in alpha 1 we are going to be grabbing |
5779s | those users and then we're going to have |
5781s | another 500 that will be randomly chosen |
5784s | you guys will all be emailed the goal is |
5786s | to email you within this July time frame |
5788s | and uh you'll be joining us in testing |
5791s | like soon and and this is really this is |
5793s | you know this approach of invitation to |
5797s | um randomize but also activity like we |
5800s | know all the people who participated in |
5802s | alpha 1 what they did the statistics |
5804s | around how often they played what level |
5806s | they got to the you know amount of time |
5808s | that they played and the detail they |
5810s | spent in their Forum accounts and their |
5813s | notes and response like those are our |
5815s | dedicated testers from the alpha 1 group |
5818s | so we want to give them a first stab |
5821s | exactly we want them we want them back |
5822s | first stab as we begin to expand outside |
5826s | of the P1 Group excuse me I'm sorry |
5828s | outside of the uh um Pi group uh into |
5832s | alpha 1 testers over the month of July |
5834s | and then into August as we expand that |
5836s | to include many more Alpha One testers |
5840s | all all of the Alpha One testers |
5842s | eventually right uh before A2 so this is |
5845s | just how we start to ramp that up in in |
5847s | the first stages and that's just |
5849s | ensuring that you know we give you guys |
5850s | a decent experience as we move forward |
5852s | and that's not to say that uh you won't |
5854s | run into bugs not to say that we won't |
5856s | have some client performance issues or |
5858s | whatnot but like we are going to be |
5860s | testing a lot of bigger pieces and we're |
5862s | for a little longer test runs um |
5864s | obviously these will be all under NDA |
5866s | there may be cases where we unlock some |
5868s | of that vocal NDA like we have stated |
5870s | before we might unlock some images that |
5872s | people take um like screenshots um we |
5875s | let them screenshot but only within our |
5877s | like private uh channels um obviously |
5880s | not externally um but yeah so we are |
5883s | we're we're excited we're excited to |
5886s | exciting news very exciting and you know |
5888s | obviously I know that runs into folks |
5891s | asking other things about Alpha 2 but uh |
5894s | I will let uh Brian talk a little bit |
5896s | about that when he goes into Studio |
5897s | update I do have some questions that we |
5899s | do want to answer in regards to server |
5901s | meshing technology so I'm going to reel |
5903s | us back in but that was relevant to it |
5905s | I'll try my best I'm I am cracking my uh |
5909s | technical brain skills let's go I think |
5912s | Brian said earlier he was like I think I |
5914s | got smarter after watching that yeah I |
5918s | did I did all right so our first |
5920s | question here is what is your plan and |
5922s | what systems are in place to avoid the |
5924s | first few months of server cues |
5927s | congestion and when players drop off how |
5929s | do you plan on handling that if such |
5931s | when the time comes |
5934s | sure um you know that I I think that |
5937s | obviously is a problem that every MMO |
5939s | launch suffers right I mean that is you |
5941s | know the balance between your active |
5944s | users your expected Peak concurrencies |
5947s | right um where that fall-off begins and |
5950s | how you consolidate servers you don't |
5952s | want to expand too much at the beginning |
5954s | to alleviate server cues and then end up |
5956s | with like 30% POP servers that you have |
5959s | to consolidate later the same is going |
5961s | to be true for Alpha 2 right and so |
5964s | we're going to be leveraging obviously |
5965s | we know how many users we have available |
5969s | uh when it comes to Alpha 2 entrance and |
5972s | then as we uh as we allow additional |
5975s | people to purchase in with these new key |
5976s | sales that we'll be doing later um we're |
5979s | going to get an idea of what that is |
5980s | generally I would expect you can you |
5982s | know we're going to see 30 to 40% Peak |
5984s | concurrencies when it comes to like |
5985s | opening the servers when it comes to |
5987s | Prime Time when it comes to events that |
5989s | happen right and |
5991s | so when we talk about um server queuing |
5995s | and and and the and the server |
5997s | congestion we want to make sure that we |
5999s | have healthy Alpha 2 servers so we're |
6001s | going to leverage server queuing as much |
6003s | as possible that means that sometime |
6006s | those server cues might get into the |
6007s | thousands um during those peak times |
6010s | during the servers spinning up or during |
6012s | those Prime Times or events um and |
6015s | that's okay it's not going to be the |
6016s | most fun for a lot of players to have to |
6018s | sit in a queue obviously we've all done |
6020s | that before in MMOs that we played but |
6022s | the alternative is that we have too many |
6025s | servers available we don't have those |
6027s | cues during peak times and then when |
6029s | it's not peak times those server |
6031s | populations dilapidate and that's not |
6033s | what we want to have obviously um but |
6036s | we'll have live operations watching |
6037s | those making sure we're looking at the |
6040s | health of our our realms for this case |
6042s | we'll say Realms because servers mean a |
6044s | different thing and it can get confusing |
6046s | um so we'll make sure that we have |
6047s | enough Realms to to accommodate for the |
6050s | users that we expect corre and and we |
6052s | are able to spin up new Realms at a |
6054s | moment's notice right so so as we |
6059s | watch at a devops no |
6063s | moment yeah I just want I I want to say |
6066s | that because like when we said it before |
6068s | the guys were like uh they're like we |
6070s | can do it quickly but not like well and |
6073s | I mean generally you have a new new |
6076s | realm on standby right that's spooled up |
6078s | and ready to go and you need to pull the |
6079s | trigger on it or not we just don't |
6081s | unlock the tags for you guys to be able |
6083s | to get in so we have those those ready |
6085s | we just don't unlock them for you but |
6087s | it's easy for us to do all right then |
6090s | the next one here is is there a higher |
6093s | likelihood for bugs or server hiccups |
6095s | near the edges of servers and during |
6097s | testing of this meshing have there been |
6100s | issues surrounding item duplication |
6102s | server you know hiccups back and forth |
6104s | between travel Ser on these server |
6106s | borders so like a lot of people had |
6108s | questions regarding this because sure |
6110s | people are worried about speed hackers |
6111s | and stuff like that yeah absolutely I |
6114s | mean around these borders and especially |
6116s | early on as we as we um rolled out this |
6120s | multi-grid formation we're looking for |
6122s | bugs when it comes to server Authority |
6125s | transfers when it comes to these proxies |
6127s | across boundaries you know all those |
6128s | types of things however um these days |
6131s | not so much right because we've been |
6133s | spending the last nine 10 months or so |
6136s | the networking team around identifying |
6138s | those bugs across border issues we |
6140s | started with a one by one and then we |
6142s | did a 2 by two 3 so' we've been scaling |
6146s | it up and testing and yes we we found |
6149s | bugs before that's right but um what you |
6152s | say about you know as as we kind of |
6154s | enter into Alpha 2 and as we continue to |
6157s | expand our testing to include now |
6159s | additional real clients um that is where |
6163s | the networking team obviously focuses on |
6165s | they watch those things they get reports |
6167s | and profiles around where those errors |
6170s | can occur and they address them as |
6172s | necessary |
6175s | all right uh the next one is does in |
6177s | trepid currently have a plan on how to |
6180s | accomplish dynamic griding or is it just |
6183s | we want it but don't know how um and oh |
6186s | no we talked about it so so right right |
6188s | right now that right now Dynamic griding |
6190s | is in place right now what we are doing |
6192s | is we are optimizing fixing performance |
6196s | around that and the the current goal |
6199s | which is on target is that Dynamic |
6201s | griding will be online by the start of |
6203s | Alpha 2 |
6204s | um so you know all of our Tech was built |
6208s | to get to the point where we can do |
6211s | Dynamic griding um this has always been |
6214s | the end goal overall so Dynamic griding |
6216s | is still in active development right now |
6218s | but um the plan is that by Alpha 2 |
6221s | entrance criteria we will have dynamic |
6223s | griding in a bug sturdy place that is |
6226s | optimized and and uh working as we need |
6229s | it right and how does the longevity of |
6233s | servers speak to the relevancy problem |
6236s | um it is eventually going to be |
6239s | non-financially viable in this person's |
6241s | opinion to maintain that amount of |
6242s | server Farm space to keep the |
6245s | performance optimal I had to put that in |
6246s | there because I just yeah yeah I mean |
6249s | you know when you talk about um when you |
6251s | talk about infrastructure right there |
6254s | there's a duality in modern day times |
6256s | between what's available in the cloud |
6258s | and there's you know business |
6260s | relationships that get formed between |
6262s | Cloud providers like an AWS or gcp uh |
6266s | where you can have you know reserved |
6268s | instances available you want to optimize |
6271s | you know your server types and machine |
6273s | configurations that are necessary so |
6275s | that you know costs are not prohibitive |
6277s | against the number of expected users per |
6279s | instance that it can facilitate um and |
6283s | we run all of those projections we have |
6285s | that regularly that we are optimizing |
6287s | also the types of machine uses that we |
6289s | require and that's from a cloud |
6291s | perspective now when it comes to testing |
6294s | especially for Alpha 2 will be heavily |
6296s | leveraging Cloud instances in order to |
6298s | provide the types of of of of |
6300s | infrastructure that we require because |
6303s | it's easily scalable and we can Flex |
6304s | into that relatively um uh in an on |
6307s | demand fashion however as we move |
6310s | towards a proper launch scenario we will |
6314s | have bare metal that we service |
6316s | ourselves from a service center |
6318s | perspective uh that we U utilize and |
6321s | still have the ability to flex into the |
6323s | cloud when we need to flex uh for |
6326s | numbers that we didn't account for for |
6328s | popularity we didn't account for that's |
6330s | the that is the finess of these types of |
6332s | systems and how we are agnostic of |
6334s | whether or not we deploy our clusters in |
6337s | a bare metal service or in the cloud |
6340s | where we can do either or um so so for |
6343s | us you know everything we do to |
6345s | calculate cost per user is associated |
6348s | with how we're optimizing for the types |
6350s | of instances that we can use and for |
6352s | Alpha 2 that's looking pretty good yeah |
6355s | so we're not concerned on the financial |
6357s | side of things I think everyone always |
6358s | asks those those type of questions but I |
6360s | figure Mak they're great questions L |
6363s | that's a good question about that so I'm |
6365s | like I'll add it to there we talk about |
6367s | this stuff regularly all the time I know |
6370s | Brian and I Brian and I are reviewing |
6372s | projections and spreadsheets that he's |
6374s | putting together every day almost |
6377s | absolutely it's the stuff we have to do |
6379s | I mean I think similarly to the tech |
6382s | side of things that the financial side |
6384s | of stuff people you know it's not the |
6386s | stuff that you get to see a lot of right |
6388s | so yeah um and we've been pretty |
6390s | transparent about where we're at what |
6392s | we're doing we're how we're moving |
6393s | forward in regards to that now now don't |
6395s | get me wrong let me give some context |
6397s | here because I think it's interesting |
6398s | for those who in the audience who enjoy |
6401s | more the business side of things um |
6403s | there have been times in the past at our |
6406s | company and other companies do this |
6408s | where running a test is exorbitantly |
6411s | cost too cost right however you need to |
6415s | bite you need to take that bite in order |
6418s | to collect certain information even if |
6419s | you're not in a state where you're fully |
6421s | optimized in order for that to be |
6423s | long-term sustainable we've done that in |
6425s | the past and and we knew the price we |
6427s | were paying in order to do that Alpha 2 |
6429s | is not one of those scenarios so just to |
6432s | be clear all right and of course that |
6435s | was our server mhing technology we hope |
6437s | that folks enjoyed it the video for that |
6439s | will be uploaded after the end of this |
6441s | live stream so you can go check it out |
6442s | relive it go back to where you want uh |
6444s | read read things look at stuff cuz I |
6447s | know there were people who were peeking |
6448s | at some assets and stuff like that that |
6450s | they were excited about and when we were |
6452s | showcasing 3D models in there um but of |
6454s | course we do have a feedback thread up |
6455s | over on our forums um so if you do have |
6458s | any thoughts or questions or um you know |
6460s | any any answers to some of the questions |
6463s | that Stephen had asked both in there and |
6466s | then previous before we uh started the |
6468s | the segment uh feel free to head on over |
6471s | there and give us your thoughts we are |
6472s | constantly reading those putting reports |
6474s | together for our Dev team um and if we |
6476s | see any additional Fe questions that we |
6478s | feel need to be answered we'll make sure |
6480s | that we get those answered in future |
6481s | updates um and with that I'm going to |
6484s | hand it actually over to lenford to do |
6486s | our studio update well thank you yeah I |
6489s | do I did I did feel smarter after |
6491s | watching that incredible and Stephen |
6492s | you're right I think I might go try to |
6493s | get my engineering degree now there you |
6495s | go that's what I'm saying I I'm just I'm |
6497s | curious how many people you know are |
6500s | interested in that don't have the |
6502s | opportunity to to associate thing are |
6505s | you interested post a one in chat um if |
6508s | you're live on Twitch and if you're |
6510s | watching this on YouTube you can put a |
6511s | little one emoji in your comment but you |
6514s | know you know it's it's one thing to to |
6516s | listen to a lecture to take a class or |
6519s | to you know GDC talk um where the |
6522s | substance of the conversation is related |
6525s | to you know |
6526s | particular knowledge you want to gain |
6529s | it's another thing to have the |
6531s | substance also the interest of the |
6534s | project coupled right like the it's it's |
6537s | great to be I think a fan who's |
6539s | interested in the tech side of this or |
6540s | who's a software developer or who's you |
6542s | know working in unreal and trying to |
6544s | build their first game or whatever |
6546s | following a project they care about from |
6548s | a gamer's perspective and now get to |
6549s | couple that with their interest uh from |
6551s | a a technology perspective you're |
6553s | looking for work we're hiring just |
6556s | uh you know go |
6559s | ahead things you got cover yeah I I do |
6562s | have list things I'd like to cover with |
6564s | the hirings on that um so uh yeah so |
6567s | look so what they said in the in the in |
6569s | the video today was that uh the stuff is |
6571s | going to and as Stephen recapped the |
6572s | stuff's going to be available coming to |
6574s | Alpha 2 for the dynamic uh griding stuff |
6578s | uh and I think the first thing to note |
6579s | is that the studio in general the the |
6582s | fires of production are hot uh the |
6585s | there's the yeah there's H the plumes of |
6587s | smoke arising from the forges uh and we |
6589s | are definitely speeding towards Alpha 2 |
6593s | uh so just to reiterate I think off what |
6596s | we said last uh live stream we are still |
6598s | entirely confident in our plan for a Q3 |
6602s | Alpha 2 that's right um so and we're |
6605s | planning to announce a date yeah that's |
6608s | what I was gonna say we're not quite |
6610s | ready to put the date out there yet but |
6612s | I think by next live stream I think by |
6615s | next live stream I'll have enough Road |
6617s | mapping done with the team and we'll |
6618s | know for sure yeah the end of this month |
6621s | expect to expect to get a date for A2 uh |
6624s | start and and actually you know from a |
6626s | production standpoint uh many people you |
6629s | know obviously don't know we've talked |
6630s | in the past about how production runs |
6632s | but we just finished a major Milestone |
6634s | yes we did we talked about that a little |
6636s | last time too Milestone |
6638s | 9ine yep yeah give some some stats on it |
6643s | yeah yeah great okay cool um yeah so uh |
6646s | we did we just finished Milestone 9 uh |
6648s | so as a company I don't know uh how |
6650s | familiar the audience is with our scrum |
6652s | uh stuff and what story points really |
6654s | means but we completed 8,900 story |
6656s | points that's like a measure of time and |
6658s | risk um and that's quite a vast number |
6662s | to complete in a milestone uh we were |
6664s | about 89% successful to our own |
6667s | estimations which is pretty darn good um |
6669s | but of course anything that can you know |
6671s | can get in the way does and we have |
6672s | meetings every day to look at disruptors |
6675s | and top five criticals and blockers and |
6677s | stuff like that so and just to give |
6679s | context you know 89% delivery on the |
6682s | product goals for a particular Milestone |
6684s | given that a milestone is looking out |
6686s | roughly 3 months ahead is pretty darn |
6689s | good right and and people might wonder |
6691s | well why wasn't it 100% right the things |
6694s | that can happen during a milestone |
6696s | whether it be you know emergent work |
6698s | that was unexpected that might be SE |
6701s | zero work for you know build Breakers or |
6704s | test blockers memory crash or something |
6706s | memory Stomps or crashes right discovery |
6709s | of new work or estimations didn't take |
6711s | into account like unknown within a |
6713s | particular piece of code like all of |
6715s | those can come in to kind of disrupt |
6718s | what an end goal is for for delivery on |
6722s | a milestone and 89% is pretty up |
6725s | there yeah yeah I was I was really quite |
6727s | proud of the team it was really good |
6729s | absolutely uh yeah and bugs bugs bugs |
6731s | bugs bugs right squash them um so yeah |
6734s | uh so that was uh kind of how far we got |
6737s | along in Milestone 9 um we're about to |
6739s | kick off our Milestone 10 here techn |
6743s | yeah we have we have a town hall in |
6744s | about two hours an hour and a half |
6747s | that's right uh so we're you know I |
6749s | think we've already identified some of |
6750s | this stuff too but we're you know we're |
6751s | going to continue looking at polishing |
6753s | for our V uh VFX and our UI elements uh |
6756s | we're going to continue looking at the |
6757s | golden path which we play test regularly |
6760s | or I think as last month you called it |
6762s | Steven the golden on fire Lavar ridden |
6764s | tree yeah the that's right H but we're |
6768s | uh continuing to play test uh on a |
6770s | regular basis with that stuff trying to |
6772s | make sure that uh it does have a good |
6774s | experience for the player we are really |
6776s | player driven uh in what we're trying to |
6777s | accomplish even though I know I know |
6779s | it's not it's not a game I get it yeah |
6782s | um but uh but it is something that we |
6783s | were trying very hard to keep uh keep |
6786s | going so uh yeah go ahead I was just |
6788s | goingon say another huge thing which I |
6790s | know you're you're probably about to get |
6791s | to is we had a |
6794s | 15% Staffing growth over the last |
6797s | quarter excited he's taking all of |
6801s | Brian's I am sorry |
6804s | I'm just excited I think you know I am |
6806s | too I think we've hired more this so far |
6809s | this year than we did in all of last |
6811s | like it's it's been an incredible growth |
6813s | Journey for this company um yeah I was |
6815s | going to mention a couple other things |
6816s | we're we're we're hammering on economy |
6818s | we've got our features and gameplay |
6820s | stuff are looking great we got more to |
6821s | go we're working on material components |
6824s | um and obviously we're fixing bugs in |
6826s | advance of the Sala two stuff so I think |
6827s | we're W we're wrapping it up pretty good |
6829s | and getting ready for uh letting you |
6831s | guys know what that date is mhm all |
6834s | right well with that I'm going to swap |
6837s | us over to our art |
6838s | update this is a long stream so thank |
6841s | you all for so much for for sticking |
6843s | with us had two long back toback streams |
6845s | I know I know so hopefully um you know |
6849s | you took your body breaks and this and |
6852s | this month we're also I think people are |
6853s | going to be really excited we can we can |
6855s | leak perhaps what's coming up this month |
6857s | because it's in stone isn't |
6859s | it Margaret just gave me the side you |
6863s | mean like what the content is that we're |
6864s | going to we've already talked about it |
6866s | but go good okay yeah we're this month |
6869s | you guys are going to be seeing for the |
6871s | first time at the end of July the barred |
6874s | archetype and it is thought talking |
6876s | about something else oh shoot my bad no |
6879s | no Bard is yeah that b is up and coming |
6883s | I did tease that a little bit I did |
6884s | tease that yeah and I talked about a |
6886s | little earlier in the Stream too but yes |
6888s | what maybe we can get Steph to play a |
6890s | guitar for us on stream I'm down get a |
6893s | loot loot ready all right we'll just go |
6898s | through some art here really quickly um |
6901s | we've got these amazing silken web hand |
6903s | wraps that were made by Chris and a |
6907s | studded leather belt you know the or St |
6910s | studded silver belt sorry not leather |
6912s | it's the upgrade from the the um leather |
6915s | belt um this is still a work in progress |
6918s | I believe but you kind of get to see |
6919s | some of it and then this is the grow |
6923s | guard |
6924s | helmet love that yeah it's looking cool |
6927s | it's |
6928s | creepy and then we have The Robe with |
6930s | the |
6931s | financier financier financier I don't |
6934s | know if you're financier |
6937s | finer very rich yes they got the gold in |
6942s | there Blues love loving the folds and |
6945s | the cloth looking good yeah those were |
6947s | by Danny the helmet and the robe and |
6949s | then jiny worked on |
6953s | this cloak of ill |
6955s | Omens Jacob our lead producer was saying |
6958s | he wants a version of this with the hel |
6961s | with the hood up the hood up |
6963s | yeah but it's very that's cool and then |
6967s | we've got this awesome |
6969s | bat I love it it's like a bullfrog and a |
6972s | bat together I'm so into it so cute it |
6976s | is cool I like it's Little Neck a big |
6978s | neck it's not a Little Neck um and then |
6981s | the last one here is the rosarium |
6985s | guard I think I have a a turntable for |
6988s | this one as well that looks |
6992s | uncomfortable it looks |
6994s | uncomfortable yeah I've been watching uh |
6996s | I I was watching House of dragons and um |
6999s | they had some really good armor in this |
7001s | last episode and it moved really well |
7004s | with the shoulders but I'm looking at |
7005s | this thing and I'm like oh I don't know |
7006s | if I can move that well that it's got |
7008s | the built-in beard scratcher right here |
7010s | I know the beard scratcher armor chafing |
7012s | is awful as a cosplayer I have made so |
7015s | many pieces of armor one of the things |
7016s | that I've learned is like you always |
7018s | want to put like fur underneath there or |
7020s | cushions because like anywhere where |
7022s | you're like moving your joints it's like |
7025s | really awful yeah those edges yeah |
7028s | leather and like if you're actually |
7029s | wearing like heavy armor it's um you |
7032s | know if you're make it out of foam and |
7033s | stuff it's not as bad and that is our |
7036s | art update so beautiful into the last |
7039s | segment here and I'll just play some of |
7041s | the slides in the back ground so you |
7043s | have something visual to look at whilst |
7045s | we uh go through our Q&A these are the |
7047s | questions from the forums and the first |
7049s | one here is from Phantom X and they |
7052s | would like to know about war commissions |
7054s | I thought it was fantmx |
7056s | Phantom I don't know phant I'm just |
7059s | kidding I called him I called him Fant |
7061s | MX one time and and he didn't hear the |
7063s | end of it okay sorry go ahead uh vnar |
7066s | put it in quotes Phantom X to make it |
7068s | clear to make sure okay but Phantom you |
7071s | can let us know you prefer it or maybe |
7074s | St definely I'm just trolling him maybe |
7078s | Steven will keep trolling you uh the |
7081s | this question is about war commissions |
7083s | we know that non-citizens can complete |
7085s | mayoral commissions but does that |
7087s | include those that will start a node war |
7090s | in other words could non-citizens do the |
7093s | commission required to start a war even |
7095s | if citizens Del liberally don't complete |
7097s | them that's something that um I think we |
7100s | are still leaving undetermined on a |
7103s | design side it can go either way it's a |
7104s | flag that a designer can set that either |
7106s | requires it to be citizen only or |
7108s | non-citizen as well it's something we're |
7110s | going to test my inclination is that for |
7112s | certain types of node actions that Grant |
7115s | the mayor certain node powers that we |
7117s | will expect only citizen participation |
7120s | at a certain threshold but it's |
7121s | something that obviously we're going to |
7123s | be testing in A2 and then casty wants to |
7126s | know about threat generation of taunts |
7128s | heals and Damage Done each of equal |
7131s | output perform formed against enemy mobs |
7134s | will there will they all generate a one |
7136s | to one to one ratio of threat generation |
7139s | or will one of those three be slightly |
7141s | better or worse than the other two at |
7143s | producing hate right now the formula |
7146s | includes modifiers so we can apply a |
7148s | modifier as we wish to either healing |
7151s | values versus uh uh um uh hate values um |
7156s | those things are going to just kind of |
7158s | be balanced as we kind of see play |
7160s | testing continue uh to see you know |
7162s | what's the right blend between the tank |
7165s | holding aggro the Healer not pulling it |
7167s | too often and the DPS not grabbing it as |
7169s | well so we we want to have maximum |
7171s | flexibility in the formula and that's |
7173s | why modifiers exist there all right and |
7176s | then kadak wants to know about Open Sea |
7178s | content will there be points of interest |
7180s | such as underwater dungeons that will |
7183s | also remain outside of the flagging |
7184s | system in the open sea or will those be |
7188s | contested that's a very good question um |
7192s | right now the expectation should be that |
7194s | those will remain |
7195s | contested and and in the event where we |
7198s | do not want to have you know let's say |
7202s | certain content contested we would |
7205s | likely have some type of doorway or |
7209s | shared instance opening that players |
7211s | then can move into where it is an |
7212s | uncontested underwater |
7215s | bubble exactly uh chronics wants to know |
7218s | about UI and uxix tools what tools can |
7221s | we expect for shot callers regarding |
7223s | marks and pings this is a big one that |
7226s | we've gotten asked a lot about maximum |
7229s | tools because the people making this |
7231s | game want the exact same thing you do I |
7234s | think I brought this up in pult the |
7235s | other day I was like just I know we have |
7237s | a lot on our plate for ala 2 but could |
7238s | we just make like one thing where I can |
7240s | put an i on one person's head and they |
7242s | were like okay we'll try we'll see what |
7244s | we can do that is in their backlog for |
7247s | pre to entrance so it's still |
7249s | outstanding work I know they have a long |
7250s | list of them I was just like just give |
7251s | me one like now absolutely um our next |
7256s | comment here is from Top wombat which I |
7259s | love that name uh server they want to |
7261s | know about server Tech which is very |
7263s | fitting for today's stream will mobs |
7265s | respond faster if there are a lot of |
7266s | players in an |
7269s | area so yeah that's that's that's the |
7271s | spawner system uh the spawner system has |
7274s | a number of ways that it can respawn |
7276s | this is a it can be a set value that's |
7278s | time based it can be predicated on um on |
7281s | Monster count so as Monster count drops |
7283s | beneath a threshold the spawner will |
7285s | spawn additional Monsters the designers |
7287s | the world designers have all that |
7288s | flexibility at their disposal it just |
7290s | kind of depends on the area the quest |
7292s | type uh that the mob is is servicing we |
7295s | have all of that functionality and it |
7296s | just you know something we're going to |
7298s | be testing all right and then zil far |
7300s | wanted about character creator will we |
7302s | be able to upload an image into the |
7304s | Character Creator and have it render |
7306s | that character for us we've had a lot of |
7308s | people asking this actually yeah not not |
7310s | for Alpha 2 but it is something that I |
7312s | know um Clayton is excited about trying |
7315s | um and it is something that we're going |
7316s | to discuss as a feature for the |
7318s | Character Creator post A2 launch um but |
7322s | not for the entrance of A2 um and since |
7325s | we're talking about character creator we |
7327s | did have a lot of people asking like |
7328s | when will we get get access to uh |
7330s | character critics we have said close the |
7333s | goal is to put that out before Alpha 2 |
7335s | so people can get their hands on it it |
7338s | is getting close I just I just saw an |
7340s | update last week from the character |
7342s | Creator uh for the stable environment |
7345s | which is basically as you create your |
7346s | characters it's looking pretty good um |
7349s | we need to get it over the Finish Line |
7351s | on on on the outstanding polish work |
7354s | that's necessary there you can make some |
7355s | whack characters right |
7357s | now yes it's getting close I think you |
7360s | could like at one point we were able to |
7361s | like combine some of the raises it |
7364s | looked like a little bit of a mess but |
7365s | um they're fixing it they're working on |
7367s | it uh snow Al wants to about server |
7370s | meshing Tech uh well server mhing have |
7373s | any impact on the world bosses or events |
7376s | and is there any potential chance for |
7378s | exploitation from the player base in |
7379s | bypassing the spawn timers via this |
7382s | concept no there's I I wouldn't say |
7384s | there's really any correlation between |
7387s | you know exploiting or um uh respawn |
7391s | timers will it had have any implications |
7393s | for bostech absolutely I mean as as we |
7395s | just observed right when you talk about |
7398s | certain emergent behaviors whether it be |
7400s | raids coming together to contest a |
7402s | particular boss fight the server meshing |
7404s | Tech along with our Dynamic griding is |
7407s | now going to be capable of of of |
7411s | essentially you know reducing the scope |
7415s | of a particular server's Authority and |
7417s | spinning up new servers to add to the |
7419s | grid to facilitate that high player |
7422s | density right that's one of the benefits |
7424s | that's that server meshing teken and and |
7427s | what the networking team has been |
7428s | working on helps to facilitate as our |
7431s | design goals which is High player |
7432s | density so yes it benefit bring Absol |
7436s | absolutely so so so to answer that |
7439s | question yes there are going to be |
7440s | benefits there that's what A2 entrance |
7442s | will contain as part of our networking |
7444s | technology that's what our networking |
7446s | teams have been working on for the past |
7448s | several years but no to the exploitation |
7451s | part of that no yeah no there's not |
7453s | really any there's not really any |
7454s | considerations from a server meshing |
7456s | technology standpoint that would assist |
7458s | in exploitation or problems there |
7461s | obviously ly you know like any |
7463s | networking layer there are bugs that we |
7465s | need to hammer out there's going to be |
7468s | you know issues that that testing will |
7470s | will give us insight to but that that |
7472s | would be the same it's already started |
7473s | giving us data on it so it's been great |
7476s | having testers uh Tyran tyranthraxus |
7479s | wants to know about underr content will |
7482s | there be underwater content in the under |
7484s | realm parts of the game yeah uh under |
7487s | realm will have water uh associated with |
7490s | it and there may be areas where we um we |
7494s | leverage underwater content as either a |
7496s | means of traversal to reach certain |
7498s | locations um or uh require use of |
7501s | certain vehicle types in order to |
7503s | Traverse and our penultimate question is |
7506s | from Ron sconi I always love saying |
7508s | their name uh profession choices will |
7510s | your own profession have any effect |
7513s | besides a social one on which tradable |
7515s | recipes and blueprints you obtain um I |
7517s | talked to vnar a little bit more about |
7519s | this and I uh I think the example here |
7520s | is will I still Ain and loot recipes |
7523s | that are not my own profession and can I |
7525s | trade these with others yes absolutely |
7527s | it is an open market economy um the |
7530s | concept here is that you know you don't |
7533s | need to do everything yourself per se |
7535s | other people can do them and you can |
7538s | excel in a different area in order to |
7539s | make trades with them in order to |
7541s | purchase from them you know that is the |
7543s | basis of a healthy economy yeah we want |
7545s | you guys to be trading things and |
7547s | needing things from other people that's |
7549s | the whole point of an MMO absolutely um |
7551s | and then our final question here is from |
7553s | lashing wanting to know about stamina |
7554s | modification will there be specific |
7556s | stats on gear outside of set bonuses |
7559s | that modify or interact with stamina |
7561s | such as increased maximum stamina |
7563s | stamina regeneration or stamina gain on |
7566s | basic attack hits yeah so um first and |
7570s | foremost uh stamina is a waterfall uh |
7574s | which means it does get influenced by |
7576s | certain core ability stats however in |
7579s | addition to that trickle down benefit |
7581s | that will come from certain set bonuses |
7583s | that might modify Constitution um which |
7586s | could increase you know regeneration |
7587s | rate of stamina you will also have |
7590s | independent one-off stamina benefits |
7592s | like you know 10% stamina regen that's |
7595s | that is just a set bonus or you know 15% |
7598s | higher stamina value uh cap you know |
7601s | that gets applied to certain sets and or |
7604s | armors and Buffs as well and that wraps |
7608s | us up for our June development update uh |
7612s | again thank you all so much for uh |
7614s | sticking with us as F final reminders |
7617s | head on over to our forums leave us your |
7618s | feedback uh forums. ashesofcreation |
7625s | docomo to Alpha 2 so stay tuned for that |
7629s | and um we will be expanding our NDA |
7631s | testing so um for those of you who do |
7633s | get access in we will be emailing you |
7635s | sometime this month so stay tuned for |
7637s | that that will be under NDA testing um |
7640s | so you can't talk about it it's like you |
7641s | know Fight Club um but it will be |
7644s | exciting and we'll be expanding that to |
7646s | all of our A1 users as we move forward |
7649s | um thank you to the wonderful St server |
7651s | technology so big huge shout out to Zach |
7654s | Hunter Anton for putting together an |
7656s | amazing presentation and walking us |
7658s | through some big brain stuff but |
7661s | hopefully that was entertaining for you |
7662s | guys um I know it's a lot different than |
7664s | showcasing gameplay but don't worry |
7666s | there's going to be a lot of gameplay |
7667s | next month so or not next month this |
7670s | month later this month this month later |
7671s | this month so you won't miss out on that |
7674s | we'll definitely be sharing more of that |
7675s | and of course thank you to Brian and |
7677s | Stephen for joining us um and we'll have |
7680s | the video up over on YouTube really in a |
7682s | moment here so stay tuned for that we'll |
7684s | post it on all of our social channels |
7686s | follow us on all of our social channels |
7688s | we are ashes of Creation in all the |
7689s | places we post at least like once or |
7691s | twice a day almost um we try to keep you |
7693s | a breast to what's going on we ask a lot |
7695s | of questions of you sometimes they |
7697s | affect in-game I think one time we asked |
7699s | you if you prefer B for bag or I for and |
7702s | we actually based on the votes we |
7704s | changed it in game so there's a lot of |
7706s | things where like you can just be part |
7708s | of the development process and follow |
7710s | along with our journey um and of course |
7712s | note that the video the full development |
7714s | update video for this one won't be going |
7716s | out tomorrow it'll be going up July 5th |
7718s | because tomorrow's a holiday I would |
7720s | like to not have to work um so we'll be |
7722s | P we'll be pushing that to the 5th um |
7726s | and of course if you want to be |
7728s | spotlighted on our next one leave a |
7730s | comment there make sure you subscribe to |
7731s | our Channel whenever that goes up on the |
7733s | 5th and we will see you all later this |
7736s | month so thank you for joining us yeah |
7739s | that was fun awesome thanks everybody |
7741s | bye bye |
7743s | [Music] |