Making Alba: How to build a performant open-world game | Unite 2022

  Рет қаралды 103,551

Unity

Unity

Күн бұрын

Go behind the scenes with the custom tools and technology ustwo Games built to develop Alba: A Wildlife Adventure. Manesh guides you through the important dos and don’ts the studio followed in order to create this open-world game that runs on low-end mobile devices.
Speaker:
Manesh Mistry, Lead Programmer (ustwo Games)
If you're interested in joining ustwo Games: ustwogames.co.uk/join
Timestamps
00:00 Intro
00:21 usTwo overview
01:46 Alba: A Wildlife Adventure introduction
04:33 World generation
12:10 Performance challenges
19:10 Foliage rendering
22:43 Burst and Jobs driven LOD
24:16 Hard to profile areas
26:01 Photography mechanic
27:19 Miscellaneous improvements
28:41 Custom analysis tools
31:00 Lessons learned

Пікірлер: 90
@cosminmahalu9594
@cosminmahalu9594 Жыл бұрын
Great talk Manesh, very informative! Thank you and thank you for releasing such a great game!
@adrianopiro5240
@adrianopiro5240 Жыл бұрын
I was facinated about this video! Congratulations about everything!! 👏👏🚀🚀
@aleph618
@aleph618 Жыл бұрын
Great and informative talk. I played Alba last year on AppleTV and I can't praise it enough. A genuinely lovely game.
@FrotteeVDH
@FrotteeVDH Жыл бұрын
Interesting talk and great presentation, thank you. I've played the game about a year ago - it's a small piece of art, so wholesome and enjoyable!
@biogic9566
@biogic9566 4 ай бұрын
Thank you for opening up about your game and helping others. I really like your approach and it seems that the idea is key and then make it work which I tend to do also with my game development. I wish you luck on your next adventure
@buddhathegod
@buddhathegod Жыл бұрын
Honestly the game looks beautiful, and the presentation was amazing. I'm not the best at understanding the programming tech part of game dev, but I feel like this was presented so well that I could kind of understand some byte-sized parts of this. I missed this game's free period on Epic, but I actually didn't really hesitate to buy this game and support games that have this kind of aesthetic and gameplay, because I really just want more of these kind of games. Like my dream is to be able to create these games.
@livelively3845
@livelively3845 Жыл бұрын
Well done, very informative! Thank you for sharing this knowledge with us!
@JesusNoland
@JesusNoland Жыл бұрын
Thank you for explaining your optimization process!
@gamheroes
@gamheroes Жыл бұрын
Practical and clear explanation!
@ploopploop
@ploopploop Жыл бұрын
Very interesting and insightful, thank you for sharing this!
@bhaumikpatel4959
@bhaumikpatel4959 Жыл бұрын
Thanks for this fantastic talk, very useful!
@AntonQvarfordt
@AntonQvarfordt Жыл бұрын
"Ambition must be informed by reality" I feel like this lesson should be widely established as a core principle almost regardless of your experience level. That being said - sometimes you don't really realize how ambitious your idea is until you're actually trying to make it. The only real way to improve your ability to accurately evaluate this beforehand is just old school basic-ass experience. You probably just can't really reliably estimate what it takes to do a lot of things unless you've done it before. Your mental model of how you'd go about creating some system is going drastically increase in complexity once you actually start doing it :P
@CareyMcDuff
@CareyMcDuff Жыл бұрын
I too thought this was the best point Ina great talk. The discussion around 31:08 applies to so much in life. And agreed that experience is crucial in making this judgment.
@AntonQvarfordt
@AntonQvarfordt Жыл бұрын
​@@CareyMcDuff Well I actually kind of felt that making this point must surely be redundant at this point. That said it's obviously totally true and ought to be internalized by really anybody that's doing these kinds of things.
@jamesclark2663
@jamesclark2663 9 ай бұрын
This is exactly true. It's also why most large companies will no longer hire anyone without a few shipped titles under their belt. They don't have time for those lessons to be learned the hard way and the hard way is the only way it can be learned.
@AntonQvarfordt
@AntonQvarfordt 9 ай бұрын
Myeaa but also - it needs to be possible for people to actually get hired on their first game, for that to happen :P Also - if it's a company that align their practices for prosperity in the long term and don't just chase big pay-outs where you view time in terms of fiscal year year report dates and revenue-based bonus deadlines for the management roles.... Then it should make sense to also make more long-terms investments in terms of what talent you decide to hire. I'm starting to get tummy rumbly about how it seems to me there really isn't many companies, even ones that's really big and been around for a long time etc, that makes much of any decision or plan considers anything that's further ahead than 5 years. @@jamesclark2663
@jamesclark2663
@jamesclark2663 9 ай бұрын
@@AntonQvarfordt There are plenty of ways to make games that don't require being hired by anyone, especially in this current age of readily available information and high-quality middleware tech. This has its upsides and downsides of course. I'd say the concept of 'growing newhires' over time is more-or-less dead not just in games but in tech overall. Nobody currently wants to bring in what they see as a total loss and a massive risk when they could hire someone that can hit the ground running (in their minds of course). And they absolutely are willing to hold out for those unicorns. Are there exceptions to this? Sure! Is it shortsighted? Yep! Will it burn a lot of them in the long run. You bet! But I feel really bad for anyone trying to get into software of any kind over the next five to ten years until some of the more senior employees start to drift away or retire and companies suddenly realize they should have planned ahead.
@ronjart
@ronjart Жыл бұрын
Great talk, thank you so much for sharing this valuable information 🙏
@rambii.
@rambii. Жыл бұрын
I have been searching for something like this for some time now. Finally, I found something!
@johnleorid
@johnleorid Жыл бұрын
I made a video on that topic and people seem to like it. It focuses more on content loading and workflow.
@KhuramSaddique-kg9gm
@KhuramSaddique-kg9gm Жыл бұрын
Informative and helped me to learned lots of things that are done during game development process specially optiization.
@suryakamalnd9888
@suryakamalnd9888 Жыл бұрын
Amazing video bro
@slick3d392
@slick3d392 Жыл бұрын
Excellent presentation.
@mehmedcavas3069
@mehmedcavas3069 Жыл бұрын
really nice talk and learned tons of new things. have to check out these profillers. I only knew about the normal profiler and frame debugger
@gabdejesus4013
@gabdejesus4013 Жыл бұрын
That's some really nice tooling.
@joelbedard7350
@joelbedard7350 Жыл бұрын
This game is free on Epic right now too! Nice timing.
@hellovagim
@hellovagim Жыл бұрын
Yup just downloaded it yesterday! Haha
@richiebee33
@richiebee33 Жыл бұрын
They're letting Unity games on their store, now?
@ComputerLunch
@ComputerLunch Жыл бұрын
Great work
@thekite3h
@thekite3h Жыл бұрын
Others solve Foliage in a much simpler way. Essentially alpha cutoff disables earlyZ. This is why you think depth culling is disabled. However, if Ztest equal is used in the gbuffer pass or draw pass after depth prepass, it can be used by activating alpha cutoff and earlyZ. But in the end, high-resolution texture sampling in detph prepass creates a bigger overhead than that. So other developers use SDF textures for alpha cutoff to minimize this overhead. In the meantime, many developers have been talking about the same thing at GDC, but it's just amazing that there are still developers who don't know. If you search for Horizon Zero Dawn Foliage, there is an easy-to-understand GDC lecture.
@simonjkendrew
@simonjkendrew Жыл бұрын
Great presentation
@dertom1895
@dertom1895 Жыл бұрын
"Discovery based game development...." I can absolutely relate to this term 🤩👍
@impheris
@impheris Жыл бұрын
very useful info
@xmetax
@xmetax Жыл бұрын
This was a very enjoyable game to play
@tamasbella3395
@tamasbella3395 Жыл бұрын
Excellent presentation. What caught my ears is the decision to turn from alpha-cutout to opaque foliage as we are developing SW for devices with extremely poor fill-rate with high resolution. I don't really understand how it could have a major impact on performance. In Unity rendering order is determined by the render queue and both opaque and alpha-cutout materials are rendered in front-to-back order by default (if not, you can force it by explicitly setting it on the material). Both write Z-buffer so occluded pixels are not rendered multiple times as they would with alpha blending. Actually, in some cases we do fake alpha blending with dithered alpha cutout and performace is just as good as with opaque material. Of course, occlusion culling does not work in these cases but that was not the problem in your case if I understood you correctly.
@TorQueMoD
@TorQueMoD Жыл бұрын
@21:23 Yeah, it's crazy how overdraw is a real performance killer. In my experience geometry for foliage is always faster. Granted, I'm not targeting mobile, but still.
@mrjohncrumpton
@mrjohncrumpton Жыл бұрын
Thank you for sharing behind the scenes of the game. I didn't realise how much thought and tools went into creating the island. What assets could have made this easier?
@androider1412
@androider1412 Жыл бұрын
I think "World Streamer" would help the stream divided world. "GPU Instancer" and "Amplify Impostors" would help for handling lots of objects. And "Interactor" for creating easy interactions.
@SVAFnemesis
@SVAFnemesis Жыл бұрын
alba is one of the most beautiful lowpoly game out there.
@TYNEPUNK
@TYNEPUNK Жыл бұрын
Great video, I am also making an open world game. I would like to know what you mean by "weight of animators" - I have 250 npcs going around and the animators are the same whether you are close or far away, I am assuming you used some sort of cut down animator somehow? or do you just mean literally turn off the animators.
@Borszczuk
@Borszczuk 2 ай бұрын
Thanks for interesting talk. The "mobile camera" feature @26:11 - What you see on mobile screen it's exactly the same scene you see normally w/o it, just smaller. So why couldn't you just render the main world to a texture, then scale it down and clip for the mobile? That's should be far faster I guess? What do I miss here? Also where can I find the other talks announced at the end of this video? I'd love to hear mode tech details
@tatoforever
@tatoforever Жыл бұрын
Very nice presentation. I just feel sorry for them devs having to write almost an engine within an engine because built-in Unity tools won't scale to large open world games. Btw, the looks gorgeous, grats!
@Rogueixpresents
@Rogueixpresents Жыл бұрын
thats why they should've used Unreal engine, unity is g ood for toy cute games, Unreal is a big engine that can do much more complex words in a easier way.
@luisbocanegra3483
@luisbocanegra3483 Жыл бұрын
@@Rogueixpresents Sons of the Forest was made in Unity, just saying :)
@kingconstantinusthesadisti133
@kingconstantinusthesadisti133 10 ай бұрын
​@@Rogueixpresentsescape from tarkov?
@knightoftheblood1841
@knightoftheblood1841 Жыл бұрын
Title: How to build a performant Open-World Game Expectation: Using Unity built-in tool Reality: Make your own tool
@Ecker00
@Ecker00 Жыл бұрын
Great talk! Using Houdini for non-destructive and interactive terrain generation in-engine might be something to consider. The home made solution seemed neat, but quite limiting.
@morganlak4337
@morganlak4337 Жыл бұрын
Do you have any resources you could link about this? I'm interested in learning
@TrevorNims
@TrevorNims Жыл бұрын
I'm sure there must have been some reason you made the camera the way you did - but my first thought to solve the double rendering issue would have been to make the camera just a frame, and you're literally looking through it at the same render.
@nankinink
@nankinink Жыл бұрын
At 14:00, the "discovery based approach" works fine for low-scale games, but it's the quickest path to spaghetti-code in big games, making it hard to add new features. My own experience. Try to plan the game ahead, at least the core game design before starting the development. So you at least know how to structure. Although... if the spaghetti-code wont be touched, it's ok i guess.
@Alphasoldier
@Alphasoldier Жыл бұрын
You won't touch the spaghet code until you have to optimize, and then it'll be hours of tears.
@nankinink
@nankinink Жыл бұрын
@@Alphasoldier or if your new feature depends with the old spaghettified!
@richiebee33
@richiebee33 Жыл бұрын
As one of the devs on the old Spider-Man 2 game, when he was talking about the billboard trees not being performant, I immediately started screaming "ALPHA!!!" My wife was worried about me 😂
@GameDevEFacil
@GameDevEFacil Жыл бұрын
Unity is really amazing.
@AntonQvarfordt
@AntonQvarfordt Жыл бұрын
Are you a bot?
@GameDevEFacil
@GameDevEFacil Жыл бұрын
@@AntonQvarfordt lol why?
@LCStudiosMC
@LCStudiosMC Жыл бұрын
@@GameDevEFacil some people thinks unity is bad recently
@deepfakescoverychannel6710
@deepfakescoverychannel6710 Жыл бұрын
@@LCStudiosMC perhaps they are c++ dinosaurs
@GameDevEFacil
@GameDevEFacil Жыл бұрын
@@LCStudiosMC only the unreal whor think that. Unity has been improving a lot. It's the only option to serious GameDev right now
@Texellent
@Texellent Жыл бұрын
Just got my copy from Epic Games Store! Will play with my 3.5 y.o . Thanks
@Maskedmous
@Maskedmous Жыл бұрын
Nice job on the game. It shows that profiling is always important. But it also shows that Unity is still lacking open-world systems to help developers create these type of games. Unity is a great engine but often enough you have to go through lots of hoops and make custom systems to get things to work performance wise. Unity needs more engine developers in several areas.
@majort9703
@majort9703 Жыл бұрын
Well unfortunately using Unity Terrain Tool without major modifications is simple not recommended for a game like this size. Like he showed in the video.. This game has a very stylized look. What he didn't even touch on are creating stylized Terrain Shaders. For this look you need to create your own Terrrain Shader which behaves differently than any normal Shadergraph Shader. Really painful to do ( not impossible ) in shadergraph. You will hit the node limit very fast. Then you have to get rid of the painting textures blending mode to get more sharper edgers when Texture Painting. Then you have to apply your own shader. It can get trickery and you need to create your own Texture Painting Process because Unity doesn't like it when you change that and won't apply youre Texture Paints to the Terrain. Terrain Tool can be great to get one specific kind of look. Everything else will take some weeks of your time.
@AntonQvarfordt
@AntonQvarfordt Жыл бұрын
I'm guessing that using the terrain system probably does a lot of things for you in terms of performance when rendering trees and detail objects and what not. But honestly, just setting it up with a relatively basic custom terrain workflow I'm sure you could implement relatively equivalent performance optimizations but with the quite huge benefit of maintaining complete control of the system - and avoiding finding out months down the line that the system is kneecapping you on a lot of the things that you're aiming to do. Using the terrain system means subordinating yourself to something that you ultimately can't really control and that might not share your goals in terms of what's optimal.
@noadschannel3577
@noadschannel3577 Жыл бұрын
Have u used task based async programming?
@micmacha
@micmacha Жыл бұрын
I think we've all had our "Koopa's Submarine" moments...
@RADkate
@RADkate Жыл бұрын
and this kids, is why you optimize your game from the begining
@AntonQvarfordt
@AntonQvarfordt Жыл бұрын
Yea, man. I was doing a game that was even dealing exclusively with 2D sprites - and even then, having just semi-transparent sprites on top of other sprites, etc, just completely wrecked performance on phones. It makes sense that on a rendering level that having ambiguity around what's visible and what's not is going to mean having to do a lot more calculations. But maybe there could be some faster or more specialized way of doing these calculations?
@egunan
@egunan Жыл бұрын
21:47 what do you mean "transferred normals"?
@sleeplessdev7204
@sleeplessdev7204 Жыл бұрын
It means calculating the normals (finding "up" at each vertex) for a low-resolution version of a model, and applying them to a high-resolution version of the same model. In effect achieving a high res appearance of the geometry, with a low res normal map. The down side of this technique is it can lead to inaccuracies in how light interacts with the model and shader artifacts.
@homemacai
@homemacai Жыл бұрын
Awesome talk!
@rogercabo5545
@rogercabo5545 Жыл бұрын
Does the goal was to make it work on every old laptop?
@juicedup14
@juicedup14 Жыл бұрын
more vids like this, unity. we don't want metaverse crap
@sameera_viraj_K
@sameera_viraj_K Жыл бұрын
You could have used the Camera culling system also to hide and disable objects that is not in view i guess 🙂
@hammerofjustice
@hammerofjustice Жыл бұрын
Sadly no information on how you dealt with occlusion culling baking after world generation
@user-gb6vn5kv5w
@user-gb6vn5kv5w Жыл бұрын
Тебе нужна не статическая окклюзия, а динамическая. Посмори на роадмапу, там есть пост об этом. Я думаю будет реализовано в unity 2022 lts, весной, наверное)
@LeGustaVinho
@LeGustaVinho Жыл бұрын
I watched the whole video thinking: "Unity was not made to make Open World games, they should have made it in UE5"
@NehezTheWrackful
@NehezTheWrackful 6 ай бұрын
Its not...they had to make tons of custom systems, where in UE u just slap World Partition and u are done :). You have landmass, pcg, automaterial (very simple to wire in material editor) and so on :).
@sliwilly
@sliwilly Жыл бұрын
"this project repesented two and half years of defelopment" Arabic words is reveresed🙂 31:57
@SAMACSTUDIOS
@SAMACSTUDIOS Жыл бұрын
"We couldn't use unity terrain, so we built our own non-destructive terrain renderer and tools" "We also built our own foliage rendering system" "We also built our own LOD system that uses burst" "We also built dozens of custom analysis tools" Ah yes, welcome to Unity development. Want to make a game? Prepare to spend 70% of development time on tools since Unity couldn't be bothered developing them.
@maxjohnson808
@maxjohnson808 Жыл бұрын
😭😭😭😭😭😭😭😭
@BeatleGeuse_
@BeatleGeuse_ Жыл бұрын
This is kinda sad. Any advice for someone who's trying to start out? I have lots of pages on how I want my game to be, but I got stuck on unity terrain system because it's tricky to get this stylized art style. I'm a programmer by the way, so I choose unity because of C# instead of unreal visual scripting.
@SAMACSTUDIOS
@SAMACSTUDIOS Жыл бұрын
@@BeatleGeuse_ Unreal Engine supports c++, if that's an option for you. For terrain in unity I don't really have an answer. There isn't really a good workflow available in unity at the moment
@LtdJorge
@LtdJorge Жыл бұрын
Gamefreak could learn a thing or two...
@artyquantum7283
@artyquantum7283 Жыл бұрын
The more i listen to these talks the more i am getting convinced that Unity is still a child's play in front of Unreal. Who would want to make an open world game like skyrim or witcher if such a small polygon open world is a pain in Unity.
@houtamelocoding
@houtamelocoding Жыл бұрын
Unity can do the trick when it comes to 2D and small 3D games, trying to make anything above that is masochism.
@SozINh
@SozINh 10 ай бұрын
the big triple AAA studios definitely are not the best at what they do. They just have the most money from flooding the gaming industry with mediocre product to hire the most people to do the most useless things instead of finding a few passionate and skilled people to put together something fun, people care more about gameplay. The more time you spend on random fancy things the less time gets spent on gameplay, thats how the formula goes, AAA studios and big names have a handful of people overdoing 1 task, which means the most of the ideas dont make it into the game because they've already sacrificed most of their gameplay and ideas so that they dont anger the other team members who are too busy making sure a stone in the corner of the map is facing left at 33.6 degrees not 33.7.
@dclxviclan
@dclxviclan Жыл бұрын
Kids love this, i belive 👽🖖❤🧡💛💚💙💜🤎🤍
Watch This Before Working on a Big Game in Unity
18:44
John Leorid
Рет қаралды 291 М.
Implementing World Streaming in my Unity Game! | Devlog
9:16
Kyle Banks // Farewell North
Рет қаралды 40 М.
Haha😂 Power💪 #trending #funny #viral #shorts
00:18
Reaction Station TV
Рет қаралды 15 МЛН
Children deceived dad #comedy
00:19
yuzvikii_family
Рет қаралды 7 МЛН
Designing the mini open world of Alba: A Wildlife Adventure
10:39
Steve Lee (Level and Game Design)
Рет қаралды 11 М.
Crafting A Tiny Open World: A Short Hike Postmortem
31:07
How to do right click OnMouseDown (Unity Tutorial)
1:56
ItsJustOneGuy
Рет қаралды 3,8 М.
How Small Open-World Games Feel Big
12:33
Razbuten
Рет қаралды 968 М.
Unity Performance Tips: Draw Calls
4:24
Lofi Dev
Рет қаралды 181 М.
The Secrets of Photorealism
24:38
Blender
Рет қаралды 811 М.
Creating a Realistic Fantasy Map | Fantasy World-Building
25:59
The Fantasy Forge
Рет қаралды 345 М.
Making My First Open World Game | Devlog #1
7:18
advancenine
Рет қаралды 636 М.
УРОБОРОС ► Resident Evil 5 #7
1:9:11
Kuplinov ► Play
Рет қаралды 474 М.
ДОЛГОЖДАННЫЙ СОЮЗ | Сюжет skibidi toilet 75
10:57