Build a beautiful open world game in 5 minutes - Solo Game Dev

Ойындар

How to create a realistic open world game in 5 minutes as a solo game dev?
Spoiler alert, you can’t! No open world environment created this way will ever have the performance to be a production ready product! In this video I will be showing off how I created an open world game in Unity with great performance!
🎮Check out Cyberdam's Game Design Document🎮
docs.google.com/document/d/1_...
👾If you want to know more about the game itself?👾
• The Naked Game
🦾Or about the technologies behind it?🦾
• The Naked Tech
🤝Maybe you want to know about Unity and my workflow?🤝
• The Naked Unity
❤️You might even want to know more about life as a Solo Game Dev❤️
• The Naked Life
#gamedev #indiegame #madewithunity
---CONTACT---
📞Want to get in contact with me? 📞
🎮Discord: / discord
📧Email: info@thenakeddev.com
00:00 5 MINUTES START NOW!
01:08 The Lie
02:35 The Solution!
03:41 Open World Editor Tools
04:13 Cyberdam's Solution
06:01 The Result!

Пікірлер: 43

  • @nicolasnadeau6673
    @nicolasnadeau66732 ай бұрын

    You can do this with compute shaders and culling as well which is even more performance friendly than with loading and unloading chunks through scripts. You use LOD groups and Imposters and you can make massive worlds that are auto culled with little effort. There are some assets that help with this process for sure like GPUI, Nature Renderer, Amplify Imposters, and a few others. Unity 6 has some built in solutions coming too.

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    How would you go with compute shaders? I really like the Amplify Imposter asset, great concept. Used it a lot in City of Springs and will likely do so again for Cyberdam! Personally I don’t like lodgroups as they are cpu costly and still load in all objects in memory (the more lods the more memory!), that is also one of the biggest issues of all those assets, they are memory eaters and often focussed on fauna alone. But good options for certain cases none the less!

  • @PhodexGames
    @PhodexGames2 ай бұрын

    I haven't much experience with open worlds yet, but gave myself quite some thought about how it could be done. My approach would have been to use the addressables system, which can load and unload assets asyncronously. Then you can use spartial partitioning or the unity culling group API to determine which objects to load or unload. This could even be adapted as an in-editor tool that uses the scene view camera as reference (similar to how its done for LOD groups). This solution is much more fine grained because it works on a per object basis. The huge advantage would be that you don't need multiple scenes and it might even save a little more memory and processing power. I wonder how you have made the distance checks multi-threaded, but maybe I don't know that because I am still using an older version of Unity.

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Oh I like this! Altough I absolutely hate assetbundles, which I believe the addressables system uses in the background. The creation of the addressables takes a lot of processing power(time) and is often platform dependant. I used the Unity Jobs system to do the distance checks, I put all the vectors of all scenes in a NativeArray and copy the player location to the job as well. The job does a math.distancesq(sceneVector[i], playerlocationVector); I have another NativeArray (boolean) with the same length of all the scenes, the result of the distance check is put into the boolean native array (within distance X or not). All the system has left to do is loop through the boolean array to see which scenes are within distance and load them (or unload them if they are not in distance anymore).

  • @PhodexGames

    @PhodexGames

    2 ай бұрын

    ​@@The-Naked-Dev I have been using the addressables system for years now. Regarding the processing cost, I am not sure if you are referring to the editor or the runtime cost. I have noticed the addressables system is slightly slower than, for example, loading with "Resources.Load", but as it is asyncrounus, that doesn't really matter. In regards to editor usage, I am using Unity Addressable Importer extension that is available on github, which makes asset management way easier. Sure building the addressables can take a few minutes, but you usually only do this once before you build. As it is Unitys primary asset management system, I would assume it is as cross platform as Unity itself, but maybe you have more experience on this. Either way, I think the advantage to load assets asyncrounusly and by address outweight any disadvantages for me. Also thx for the explanation of the multi-threading. P.S.: There was a great video about Addressables by Jason Weimann

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    @@PhodexGames No with the processing cost I mean the time to create them, in previous projects that I used assetbundles (and addressables) the total amount of files was bigger than 50gb, which took hours to build. Assetbundles are created per platform, so you build them for Windows, and they will be pink when loaded on MacOS. I am not sure if the addressable system fixes this! Worth some research though!

  • @PhodexGames

    @PhodexGames

    2 ай бұрын

    ​@@The-Naked-Dev Ah I see. Usually my projects are way smaller, but sure if you are using addressables for any single mesh and texture, it can add up fast. I think there might be other ways to load assets async like Resources.LoadAsync, because thats the core idea that could help with open world streaming.

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    @@PhodexGames I'm sure there are more ways to do it, but I don't think Resources.LoadAsync is one of them. Because everything in the resources folder is always added to your memory! That is why I like this system with scenes so much, everything in the scene is only loaded when the scene is loaded and you don't have any additional build times!

  • @Hyakkimaru_0
    @Hyakkimaru_02 ай бұрын

    Hey I have a suggestion that popped up during this video, what about adding some system to cyberdam where you earn something or kinda similar to increase the range of sight of the drone you were talking about. Btw good work man 🎉✨️

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Like the idea! I had in mind a “simple” skills tree to upgrade based on xp/progression, but no concrete idea’s on what type of upgrades yet!

  • @slackamacgaming6721
    @slackamacgaming6721Ай бұрын

    🤣🤣🤣 accurate...i try to skip over the ones with clickbait titles...but your's got me...

  • @The-Naked-Dev

    @The-Naked-Dev

    Ай бұрын

    I’m not afraid of using a clickbait title or two(sorry!), but I had a lot of fun when I saw another youtuber use this title, but in a serious way🤣

  • @ZeeWolfed
    @ZeeWolfedАй бұрын

    great video thanks

  • @The-Naked-Dev

    @The-Naked-Dev

    Ай бұрын

    Thanks mate!

  • @gooball
    @gooball2 ай бұрын

    I do wonder with how fast NVMEs are getting, how quicker and even more seamlessly these chunks can be loaded in, without the feared "pop in" effect.

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Well in theory they can be loaded in invisible, and then fade in, making the popping less noticeable. The loading itself is super fast. I ran a few “load tests” with this system in City of Springs, were I had stored all game files on an external usb 2 drive that was under full load read and write, and all scenes files (200mb on average each) still loaded in fast enough!

  • @gooball

    @gooball

    2 ай бұрын

    @@The-Naked-DevOh, awesome! Fading them in might be smart yeah... though that does require more computing I think?

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Well there are issues with fading yes, there is a big difference between opaque and transparent objects. Ideally everything is an opaque type of object, but those can’t fade in. For City of Springs I used dithering, that way objects could stay an opaque object but could still fade in/out somewhat. But not everyone likes the dithering effect.

  • @Seancstudiogames

    @Seancstudiogames

    2 ай бұрын

    * Enables volumetric fog. * Okay pop in problem solved. < Sarcasm😅.

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    @@Seancstudiogames Fog, the answer to life, the universe and everything!

  • @blueeyeone2127
    @blueeyeone21272 ай бұрын

    Oh yeah, it's all coming together

  • @blueeyeone2127

    @blueeyeone2127

    2 ай бұрын

    Oh and keep up the good work man!

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Something is at least!🥳

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Thanks!!! I’m keeping, keeping on!

  • @juleswombat5309
    @juleswombat53092 ай бұрын

    Or why not use Unreal: and employ Nannite?

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    🤣If only I had started learning Unreal instead of Unity those 10 years ago, all my problems would have been fixed. Or maybe not🤑

  • @xxkillbotxx7553

    @xxkillbotxx7553

    2 ай бұрын

    Nanite is also not a catch-all solution

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    I really need to do some research into it, I’m lacking knowledge in the Unreal department!

  • @miquelsunyerroda9638
    @miquelsunyerroda9638Ай бұрын

    man, rendering in 4K or more with no optimized assets or systems is what it gives you. I'm struggling to get about 40fps on a very high quality terrain with vegetation and post processing, even without any "object" on the scene. No one said it would be easy but each FPS you gain is a fps tomorrow you'll have for free ;)

  • @ThatAwkward101
    @ThatAwkward1012 ай бұрын

    Hi I'm new what is ur content

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Hi! I make games, and video’s about making games!

  • @ThatAwkward101

    @ThatAwkward101

    29 күн бұрын

    yoooooooooo he actually replieddddd

  • @ThatAwkward101

    @ThatAwkward101

    29 күн бұрын

    sick make cool games bc it makes u money and helps u survive

  • @ThatAwkward101

    @ThatAwkward101

    29 күн бұрын

    maybe i would wanna meet u irl when im older to help u make games ik this comment sounds wierd sorry im 13

  • @The-Naked-Dev

    @The-Naked-Dev

    29 күн бұрын

    Of course I replied🎉, get good at making games and who knows, everything is possible!

  • @branidev
    @branidev2 ай бұрын

    And then imagine there is UE 5 with Nanite or how is the system called which is 100x easier then using any of knows methods but ye i am still using Unity but rly wanna try UE5

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Yeah, that would have been the 5 minute video: deinstall Unity and install Unreal 5… maybe one year I’ll swap to Unreal, when Unity has gone too far with their shenanigans…

  • @Vilde321

    @Vilde321

    2 ай бұрын

    No... that would be the 1 hour video because Unreal is so massive install 😂

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Hahaha, well I could cheat again and already done the installation part before the video😅 What I do know about Unreal, is that its notoriously in eating up gpu’s. I’ve known a lot of people (too many for coincidence), that had melting gpu’s when developing games in Unreal!

  • @Vilde321

    @Vilde321

    2 ай бұрын

    @@The-Naked-Dev This can be a problem, but I've noticed the engine viewport tries to go in much higher FPS counts than it needs to. I always have to type "t.maxfps 60" to limit it so it doesnt melt my computer... Not sure if that helps GPU or CPU but still. I guess lowering the engine scalability settings can help massively too. I was able to do everything with a GTX 1080 for a long time but since have upgraded. But the max fps thing really helped!

  • @The-Naked-Dev

    @The-Naked-Dev

    2 ай бұрын

    Limiting the editor viewport to a maximum fps of 60 would indeed help save the gpu! I do this with Unity as well, but mainly to get rid of the coilwhine of my gpu;)

Келесі