Unity Performance Optimization - DevLog #9 for My Game, MiLE HiGH TAXi

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 241

  • @iangraham6730
    @iangraham6730 3 роки тому +49

    The Fifth Element . . My favorit movie of all time! Loving the resemblance of the city 👌👌

  • @JackMartison
    @JackMartison 3 роки тому +59

    And this is perfect ad of your game, you did a great job sir!
    P.S. I'd reduce motion blur by half, the car almost completely washed out while driving ;)

    • @MonsterJuiced
      @MonsterJuiced 3 роки тому +3

      agreed

    • @OmniscientOCE
      @OmniscientOCE 3 роки тому +4

      Yeah way too much motion blur I got confused what was happening while watching a lot

  • @abulak3477
    @abulak3477 2 роки тому +12

    0:57 impostors
    3:50 occlusion culling
    7:28 lighting
    8:35 reflection probes
    9:01 disabling gameobjects

  • @luizfellipe1206
    @luizfellipe1206 3 роки тому +17

    Your game concept is outstanding and I really like the performance tricks! The thing that I would love to see in your game is a night enviroment with a dense fog and beam lights from the city and and cops!

  • @wormjuice7772
    @wormjuice7772 3 роки тому +16

    Beautiful! As a scifi head i can totally see myself getting lost in there for hours!

  • @mileskilo6775
    @mileskilo6775 3 роки тому +8

    Extremely impressive, nicely done! Subbed and wishlisted. I'll be looking into using these techniques myself! Thank you for this video.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      Right on, thank you! I'd be happy to hear if some of these techniques help you out, or if you discover additional ways of achieving better performance in your project.

  • @bossboy1377
    @bossboy1377 3 роки тому +6

    On yt there really arent many optimasation tutorials so watching this was really nice

  • @thebeardedgoose5867
    @thebeardedgoose5867 Рік тому +1

    I love the idea crazy taxi meet 5th element it looks amazing 👏 keep up the great work 👍

  • @thenoobdev
    @thenoobdev 3 роки тому +2

    Really IMPRESSIVE!!

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Glad you liked the video! Also, thank you for the support on Steam. :)

  • @Teck_1015
    @Teck_1015 3 роки тому +1

    followed and wishlisted, hope to see more of your development progress. This is good game dev knowledge to have! :)

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Thank you! Hope it was helpful. More videos will be coming over the upcoming few weeks.

  • @Skeffles
    @Skeffles 3 роки тому +2

    Super interesting to how about these improvements you made. It's baffling just how much certain solutions can help.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +3

      Yes, there's been a lot of trial and error, time spent in the Profiler, and realization that no 1 solution fits all my objects. Glad you found the video interesting!

  • @hman2875
    @hman2875 Рік тому

    volumetric lighting would be a perfect fit for your game, great video

  • @kimitalvitie
    @kimitalvitie 2 роки тому +1

    Oh man, this reminds me of NYR: New York Racing from PS2! Awesome!

  • @simoncodrington
    @simoncodrington 2 роки тому +1

    Interesting devlog mate, great work!

  • @mmuekk
    @mmuekk 3 роки тому +3

    More optimization videos :D
    Great video

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +2

      More to come, but I have one or two other videos to get to first. Stay tuned!

  • @danyael777
    @danyael777 3 роки тому

    Love the Multipass-Ad. Wishlisted!

  • @ernestomartinezart
    @ernestomartinezart 3 роки тому +3

    Wow nice! As a concept artist, i suggest you to add more fog/ pollution, and more lights and shadows contrast. But depends on the style that you are looking too. Its looking cool!

    • @mjj16
      @mjj16 3 роки тому

      Yeah some post-processing effects would do wonder too

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Thanks. Fog and pollution is still to be worked on. As for the lights/shadows, there isn't really any because the buildings are so damned tall that sunlight doesn't actually reach down to where the player is. It's all ambient light. I've been thinking about cheap (computationally speaking) ways of having some shadows and direct sunlight without it looking silly in the scene - since there wouldn't realistically be any - similar to a very overcast day.

    • @ernestomartinezart
      @ernestomartinezart 3 роки тому

      @@CassiusJohnAdams Ah i see nice. I was referring to artificial lights (like the advertising, street lights, etc. And more occluded areas( like under the bridges or narrow streets) About the resources i've no idea, i just suggested what i thought. I'll be looking forward your progress! Good luck!

  • @tomaterasu700
    @tomaterasu700 3 роки тому +1

    This is honestly quite amazing. Keep up the great work!

  • @onerimeuse
    @onerimeuse 2 роки тому

    Crazy Taxi meets The Fifth Element?
    That's definitely my bag, baby!
    Also, thanks, this video is super helpful as I'm trying to understand how to make a concept work on the quest 2 and it's limited hardware

    • @CassiusJohnAdams
      @CassiusJohnAdams  2 роки тому

      Good to hear that. :) And glad the video was helpful!

  • @javisartdesign
    @javisartdesign 3 роки тому

    Really nice to watch the performance enhancements

  • @vdofficialchannel9841
    @vdofficialchannel9841 3 роки тому

    This is probably one of the most believable and addictive game I have seen in my life. Keep up the Good work.

  • @GaryMcKinnonUFO
    @GaryMcKinnonUFO 2 роки тому

    Impressive, looks like it feels lovely and fluid.

  • @rohankumarpanigrahi7475
    @rohankumarpanigrahi7475 2 роки тому

    That camera follow is sweet

  • @AdredenGaming
    @AdredenGaming 3 роки тому +1

    This is pretty cool looking. Thanks for the tips. We are in the early phase of making a game so I think there is a lot to learn from your experience. I guess Ill have to go look on your channel for a game synopsis. Once again thank you.

  • @Nebulaoblivion
    @Nebulaoblivion 2 роки тому

    This looks awesome, and I appreciate the knowledge provided as well.

  • @GozXz
    @GozXz 3 роки тому

    I love it, ima get the game because this is so inspirational for my own projects, not for public sale, but still none the less a huge project that has many objects. Thanks for making this!

  • @redsectionXD
    @redsectionXD Рік тому

    looks pretty good, congratulations

  • @DanyloSyrotynskyy
    @DanyloSyrotynskyy 3 роки тому +43

    and this is done without DOTS ? Amazing

    • @DanyloSyrotynskyy
      @DanyloSyrotynskyy 3 роки тому

      @@bezoro-personal i wouldnt call it basic optimization

    • @achraf7416
      @achraf7416 3 роки тому +1

      @@bezoro-personal gave me a laugh, i really do agree, most people would spend years learning unity and making games but still lack some very basic skills and knowledge... too bad ig, this is just too powerful to be missed !

  • @aussieraver7182
    @aussieraver7182 2 роки тому +1

    Wow....this game looks amazing!

  • @tauheedgamedev2388
    @tauheedgamedev2388 3 роки тому +1

    Amazing video, I’m gonna work on some 3D games in 2021 so your tips on improving performance will come in handy.

  • @xiotox
    @xiotox 3 роки тому

    Thats pretty amazing. Love the Toronto street signs

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Thanks! Figured I'd keep the map and signs local. :)

  • @NexVice
    @NexVice Рік тому +1

    We need someone like you to teach to the VRChat world creation community how to optimize their worlds 😮

    • @CassiusJohnAdams
      @CassiusJohnAdams  Рік тому +1

      I haven't worked in VR, but I understand you need to hit a minimum framerate of 90, per eye. That's a pretty tough task. But hardware is always getting better, so it's up to artist and developers to make sure to continue to keep things streamlined to take advantage of the better hardware efficiently.

    • @NexVice
      @NexVice Рік тому +1

      @@CassiusJohnAdams VRChat can be played without VR Headsets and 30 FPS in VR is socially accepted in VRChat for crowded events in worlds made by enthusiasts. If you have time, give VRChat a try and you will see the mess xD. Cheers!

    • @NikkiMcMistie
      @NikkiMcMistie Рік тому +3

      I make vrchat worlds, the game is inherently cumbersome and poorly optimized for a lot of machines because of its players, their avatars and pickupable objects & mirrors. Occlusion culling, baked lights, no reflection probes & texture atlasing help the worlds only a bit

  • @deathphoenix6387
    @deathphoenix6387 3 роки тому +18

    Came looking for gold, found a diamond. It's a win boys.

  • @metekavruk_Alanya
    @metekavruk_Alanya 3 роки тому

    Seems very good project. I personely loved the movie of Bruce Willis that he was driving this kind of taxi.

  • @the-real-sachin
    @the-real-sachin 3 роки тому +4

    I am really impressed with the quality of the game here! It's so cool to see Indie producing this level of quality! I have some constructive critique here:
    - Motion Blur: As you know already, it is too much, I can't see the subject(Taxi) clearly and just vanishes. Just need to implement it correctly
    - Textures: There are some scenes in your game where the same texture is repeated over and over again. Also, there isn't much of a variety between textures themselves. When you take a look at GTA V, the texture variety is just amazing! You can almost not find any repeating patterns and the object textures are full of surface imperfections (crack in glass, dust collected on cars(if your game has any scene with static cars as subject), dirty cars, damaged cars). There is just so much potential for this game and so much details can be added to make this game really really good.
    Liked and subbed. Waiting for another devlog. All the best !

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +6

      Thanks for the constructive feedback!
      For most of this you're preaching to the choir, so to speak. There isn't anything you've mentioned that I haven't already considered to some degree or another. For the most part, it's not that I can't do them, it's more that I want to be sure the game gets finished and that I limit the amount of scope creep (I've been very strict on myself about this). On top of that, there's obviously performance impacts I need to take into consideration.
      It's important that I'm realistic with myself by not holding myself to the standards of AAA games, GTA, etc. They have hundreds, maybe thousands, of people working on those games - I'm just one person.
      One thing you mentioned, which I hadn't really considered, is decaling the static objects, such as stationary cars (buildings already have some). I don't want to get into the task of changing up mesh/models too much, but decaling to "dirty things up" on those non-building static objects is quick and cheap performance-wise. I think this is do-able in my timeframe.
      Thanks again for taking the time to offer your feedback! It's very helpful. :)

  • @FEEAR1000
    @FEEAR1000 3 роки тому

    Still waiting to play the demo but yet so far nothing on Steam *frown* either way I am excited for this!

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      Yeah, as is always the case, things are taking longer than I'd hoped. Still putting in multiple hours every day though. Glad you're still excited for it!

  • @GbpsGbps-vn3jy
    @GbpsGbps-vn3jy 3 роки тому +2

    Watch out for jumping Milla Yovovich!!!

  • @MudrIvolk
    @MudrIvolk 3 роки тому +1

    Reminds me movie "The sixth element", old good times :)

  • @Niter88
    @Niter88 2 роки тому

    what a lovely game, loved the tips

  • @hamzzashaffi
    @hamzzashaffi Місяць тому

    Great work! :)

  • @DutchVikingGuy21
    @DutchVikingGuy21 3 роки тому

    Yooo this looks brilliantly amazing! What a gameeee! Subscribed! Love these kinds of channels :D Wonder how much variety of gameplay there will be. Like a crazy taxi but in the future?

  • @scratchercatcher6760
    @scratchercatcher6760 3 роки тому

    Well done! Nice game and nice video!

  • @tonytran07
    @tonytran07 2 роки тому

    Amazing. Well done

  • @prakasheditz123
    @prakasheditz123 3 роки тому

    Bro amazing game bro I will wishlist this game now

  • @pushthebutton4602
    @pushthebutton4602 2 роки тому

    Great job!

  • @java6248
    @java6248 3 роки тому

    this game is beautiful

  • @parsazf6409
    @parsazf6409 3 роки тому

    Amazing 🔥

  • @jjohn1234
    @jjohn1234 3 роки тому +7

    I love the project, for the edit try matching your voice volume with the music volume more
    Sometimes the music is way louder than you voice, but this is a small detail ofcourse
    What are you gonna use for the music in the game? Maybe make a system for uploading or linking you own mp3 file as a sort of radio.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +2

      Thanks for the comment. I really need to get a proper microphone (and get the guys that live above me to stop walking like elephants). I will try reducing the background music next time.
      For music, I'm likely going to go with dynamic music. Something that will match the player's intensities during gameplay (no gameplay objectives shown here).

  • @BatonyRobson
    @BatonyRobson 3 роки тому

    Nice job!
    You probably want to enhance you voice recording. It would definitely make you content better.

  • @nicklamela2294
    @nicklamela2294 3 роки тому

    This is insane

  • @triple_m1688
    @triple_m1688 3 роки тому

    a game where you play as taxi driver on a DYSTOPIAN MEGA CITY? awesome never saw that ideia before. kidding, the game is really cool im going to wishlist it on steam

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      Right on! Thanks for wishlisting!

    • @mjj16
      @mjj16 3 роки тому

      Check out Quarantine from 1994

  • @openworldgamedevjontyin2242
    @openworldgamedevjontyin2242 3 роки тому

    the game looks very nice ..

  • @DevDunkStudio
    @DevDunkStudio 3 роки тому +2

    Optimising this looks like fun!
    Would love to see more!
    Do you use ECS for this?

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      It's fun and frustrating at the same time :)
      No I don't use ECS. But I am currently considering the C# job system, maybe ECS too.

    • @DevDunkStudio
      @DevDunkStudio 3 роки тому +1

      @@CassiusJohnAdams fair enough haha
      ECS would probably help, because all card and objects would be mostly multithreaded. The downside is that coding takes a lot longer and you gotta start from scratch.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      @@DevDunkStudio Fortunately I have very little logic built for the cars and pedestrians so far, so it's not a complete rewrite. Whether I use just the C# Job System by itself, or end up using ECS too I'm not sure yet. For now, I'm investigating Job System on it's own to see if it'll do the trick, and Profile that independently (so I can share those results). Without multithreading/parallelism, the cars are likely going to pose a problem to framerate so I'll definitely have to do something.

  • @keefman85
    @keefman85 3 роки тому

    amazing

  • @VaupellGaming
    @VaupellGaming 3 роки тому

    Nice video.. Good dev vlog..

  • @mtxset
    @mtxset 3 роки тому

    This what driving was supposed to be in cyberpunk

  • @pixboi
    @pixboi 3 роки тому

    If you dont have any runtime need for manipulation for those 100k objects, theres no need having them separate as separate GO's. Chunk them into 100k tris-ish and put them through CombineMeshInstance. Also, the meshes of the building are so simple that you could get the same look with a low poly mesh + good normal maps. Occlusion culling also has a CPU cost, and if you put everything there, it can end up costing more that without culling at all. The GPU is a beast, it can handle a bunch of vertices if theyre within the same drawcall. Now the data you represent it is very choppy, you want it to be smooth.

  • @crispyghoul
    @crispyghoul 3 роки тому

    Great project, although the camera movement might cause motion sickness in some people

  • @andrey_khrulkov
    @andrey_khrulkov 3 роки тому

    Lulu Dallas! Multipasport!

  • @davidfails2866
    @davidfails2866 3 роки тому

    Would be cool to use box trigger to drop people off vertically on buildings... or even thru the building to like a super supermarket skyscraper type... pop density and verity prob helped with the cost for low-budget pcs ...

  • @GameDevEFacil
    @GameDevEFacil Рік тому

    You could make a chunk system or a variant of it, you can detect the area you are by position. You're surely using a fix for floating point precision and altering the zero position of your map, in that case you'll have to keep that position on a variable and use it as an offset for the chunks
    PS: I love your game
    PS2: just noticed this is an old video lol

    • @CassiusJohnAdams
      @CassiusJohnAdams  Рік тому +2

      I know this is a bit of an older comment, but I've read it a few times over the last month or so. I'm not sure I fully understand what you're suggesting. Are you able to rephrase?
      I'm not repositioning the zero position at all throughout the game. Floating point, from what I've seen, only starts becoming a problem when approaching the 10,000 position x, y, or z. Up until 10k it should still be accurate to 1cm if I recall.
      Anyways, I'd be curious to know what you mean about the chunk system?

  • @Tillex
    @Tillex Рік тому

    Could you make a tutorial for lighting setup for large scenes please. btw your game looking awesome and thanks for the imposter i love it. but please share your experiences for lighting settings for large scenes

  • @alikaracadev
    @alikaracadev 3 роки тому

    nice video, if you have time can you create more video on performance tips? good luck mate!

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      Thanks. And I will definitely try to include more optimization details in future devlogs.

  • @TwoWayOrbitalStation
    @TwoWayOrbitalStation 3 роки тому +1

    Please have an option to get rid of the motion blur completely. Unfortunately there are some of us who get sick. My eyes start to hurt after a bit.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Thanks for the feedback. I'll try and get the option in for initial release.

    • @TwoWayOrbitalStation
      @TwoWayOrbitalStation 3 роки тому

      @@CassiusJohnAdams Hey, thanks for considering to add this option, I'm not alone with deciding not to buy a game (AAA or indie) if there is no option to turn off motion blur.

  • @imDanoush
    @imDanoush Рік тому

    Great video! Would you please explain why static batching got that much huge space?

  • @evanwatling3897
    @evanwatling3897 3 роки тому

    This reminds me of that episode of Dr Who

  • @Redfishpersonal
    @Redfishpersonal 2 роки тому

    This reminds me of the fifth element

  • @arcadealchemist
    @arcadealchemist 3 роки тому

    bro crazy taxi fith element edition this would of actually been amazing on PSone

  • @Cyberfoxxy
    @Cyberfoxxy 3 роки тому +3

    Ditch the music.

  • @luca__3044
    @luca__3044 3 роки тому

    game kinda gives me claustrophobic vibes 😅.. but the city looks real neat :D smooth game so far👍

  • @JackAnderson-vv3tw
    @JackAnderson-vv3tw 3 роки тому +3

    Hi, I don't know if this will be useful but if you are not concerned with buildings/props being reused at some point you can use object pooling to simply shift the position of some existing gameobjects around the player's position. You can have a theoretically infinite game world. Not sure how that would fit with your lighting setup though. Anyway thanks for the tips!

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +5

      I haven't implemented my pooling system just yet but object pooling will only be used for the dynamic objects. That's still result in lots of resource savings.
      In my earlier tests, using pooling for the static buildings is problematic because of the baked occlusion culling. Moving buildings (in the Editor) post-bake and then going into play mode results in unwanted side effects.

  • @funnylaughed7423
    @funnylaughed7423 3 роки тому

    "why was this recommended to me?"
    *Impostors*
    "ah"

  • @ManuMitraan
    @ManuMitraan 3 роки тому +1

    Sega and CDPR will sue you for making Crazy Taxi 2077 😂. Jk, nice game though

  • @NBCNothingButCrap
    @NBCNothingButCrap 3 роки тому

    Hmm.. I think you are insane. This insane will lead you to success. That what I think for now.

  • @arsenbabaev1022
    @arsenbabaev1022 3 роки тому

    Do you use job system for car Ai ? Or maybe full ecs stack? Also there are some invisible triangles in middle section of buildings im not sure if removing them will help they are just culled while rendering anyways.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      I'm still working through the car AI. Right now there's no logic. I haven't been using any job systems nor ECS up to this point. It's likely I'll need to look beyond the traditional Unity way of doing things and implement some ECS. Regarding the invisible tris, yeah. They're on my list of things to get to a little later in development. Some are invalid backfaces, others just missing, and a few are in texture transparency.

  • @tastymacification
    @tastymacification 3 роки тому

    Very cool. Hello from Reddit

  • @onimushab3706
    @onimushab3706 2 роки тому

    Super game

  • @HAWXLEADER
    @HAWXLEADER 3 роки тому

    IMO the taxi should have some different physics in collisions.
    In my high speed rocket riding game (Rocket Jockeys) I have implemented custom collision bounce back using some vector math to get smooth collisions while maintaining the flow.
    Here is a snippet:
    private void OnCollisionStay(Collision other)
    {
    //Bump off of walls
    if (other.gameObject.CompareTag("Wall") || other.gameObject.CompareTag("Pole") || other.gameObject.CompareTag("LowObstacle"))
    {
    if (other.relativeVelocity.magnitude > 20) TempDamage += other.relativeVelocity.magnitude * CollisionDamangeScaler; //damage
    float BumpBackForce = Vector3.Dot(myTransform.right, other.contacts[0].normal); //how much the right vector overlaps the normal (shallow collisions are glided instead of being very bouncy)
    float mult = Mathf.Abs(transform.InverseTransformVector(other.relativeVelocity).x);
    rb.AddRelativeTorque((1 - Mathf.Abs(BumpBackForce)) * Mathf.Sign(BumpBackForce) * 3 * mult * Vector3.up, ForceMode.VelocityChange); //bouncing off of the wall depending on angle of attack
    }
    }
    Note: this is implementing only side to side collisions and not bottom/top collisions which you need in your game as well.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      I agree, collision physics could use some touch-up!
      Hey man, thanks a lot for sharing that code. I'll have a look at it, dissect it and see if it'll be helpful in my situation. I really appreciate you taking the time to post that!

  • @CHEEZEyCHEEZE
    @CHEEZEyCHEEZE 3 роки тому

    How did you implement the Occlusion Culling?

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Many of my objects are static (buildings etc) so I baked the occlusion culling for the entire scene. Then I implemented my custom "view corridor" triggers, so that only GameObjects that would be in view of the player are enabled. That eliminates about 70%+ of GameObjects from being calculated at all at any given time. Since most of my buildings are broken up into smaller segments/mesh/GameObjects, I still see decent results from the original occlusion culling bake on the GOs that are currently enabled.

  • @chriswatts3697
    @chriswatts3697 3 роки тому

    What about investing some milliseconds on post production effects like rain and fog. So you can cover a lot of objects and they can be really low quality as you wont see them in detail. And it would add a lot of athmosphere to the experience.

    • @HAWXLEADER
      @HAWXLEADER 3 роки тому

      PP effects are REALLY heavy.

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Yeah, they are. In some of my earlier videos you can probably see a lot of fog. So much, in fact, that it produced 100% opacity beyond about 400 units ahead. That let me set the camera's far clip plane to about 450 units, saving me a fair chunk on processing. It more than made up for the expense of the fog and some additional PP I had at the time. But the visuals overall started to feel a little lower than I wanted to go.

  • @watercat1248
    @watercat1248 3 роки тому

    this similar with the way i have plan to optimize my own game but i have pland to add extra optimize system
    1.the first system to add trigger box in the wean the player enter to have more or lees view distance from dipping for haw closed or open each area are
    i have others ideas in the order to optimize my games but the problem is the others i ideas i have in mind is omost impassable make by my self
    1. texture lood the idea is to have to change the texture depending for the distance if finding i way to do that everything i will looks better with out change the performance
    2. the other idea i have is to make the billboard (imposter effects) but with 3D models
    3. way that I think to optimize is to make i system that when is in specific tigers box to hide all the objects is not pasble to see this system sounds very easy to implement but the problem is my game have the option to play up to 4 players for the same devise that means that system is very hard to implement
    4. to use ecs in my game Sean in the order to run everything faster the proble is i have no idea haw to use ecs (dots)

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      1. You can kind of do this already with Unity by setting your textures to Mipmapping. Unity will automatically make 1, 1/2, 1/4 and 1/8 scale version of your texture and automatically use the right scale at the right distance. This, however, comes with an increase in memory for the extra textures.
      2. Amplify Impostor (mentioned in the video) does that kind of. The one I referred to in the video is here: ua-cam.com/video/G0ILW1cwuTc/v-deo.html But maybe I'm not sure what you mean.
      3. Can you have a parent for all your player's with a rigidbody? That should allow all the players' colliders to register as a single source and then use that to enable/disable areas? Just a thought.
      4. I haven't touched ECS yet. There may come a time when I have to, but for now things are ok.

    • @watercat1248
      @watercat1248 3 роки тому

      @@CassiusJohnAdams don't worry you i have meny ideas to optimize my to by onest optimization is one of the things im i will not eny i know like fact the i will run with not problem in most computers Because Unlike your project my own project have way less objects not the project and my 3D models have way less polygons from your 3D in most cases
      But the only thing im not sure if able to implomate is the network system and and if able to optimize the for mobile because i have plan to that game i working on mobile and pc

  • @Muhammed_English314
    @Muhammed_English314 3 роки тому

    This video is so cool but the music being louder than your voice blew my ears

    • @Muhammed_English314
      @Muhammed_English314 3 роки тому

      I don't know what the game is about, but I hope you add the ability to go through giant buildings and the ability to fly to another planet

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Yeah, sorry about that. I've purchased a microphone since putting this video together. Not exactly sure how the music got so loud in some places and guess I didn't check the entire video prior to upload.

  • @josephvanwyk2088
    @josephvanwyk2088 3 роки тому +1

    Can you please do a tutorial on Atlas texturing, it seems this is the way..........

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      I have one planned (in early planning right now). Stay tuned. When it's ready, hopefully I'll be able to provide you with some good tips/pointers.

  • @robosergTV
    @robosergTV 3 роки тому

    Also did you try the GPU Instancer? Maybe you would not have to do the atlassing

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Yes, I'm using plenty of GPU instancing where I've found it to make sense - dominantly on my dynamic objects. I use it in combination with atlassing.

    • @robosergTV
      @robosergTV 3 роки тому

      @@CassiusJohnAdams I meant the unity asset called "GPU Instancer". It uses instance indirect, so it would load the objects into the GPU memory only once. That way I was thinking, you maybe would not need atlassing

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      Oh, my bad. I haven't investigated that on the Asset Store. Will check it out!

  • @guys_animations
    @guys_animations 3 роки тому

    6:45 999999iq collisions

  • @dodotayler
    @dodotayler 3 роки тому

    what i was expecting from Cyberpunk 2077

  • @dayanson6920
    @dayanson6920 2 роки тому

    Nice but i do have one question? Do you have a multipass?

  • @DaveSucker
    @DaveSucker Рік тому

    plz tell me bro how can we make a thing to renderd from far away like my camera far distance is 3oo butt i want a game object to render from 600 distance so what i have suppose to do plz help

  • @ali32bit42
    @ali32bit42 Рік тому

    not performance related but i feel like the city looks too monotone from what i can see . there is no distinct theme or land marks in any specific area so all the streets look too similar in most directions. i suggest making more unique things for each area that can function as land marks for players to navigate around and make your city more lively and memorable .

  • @TheAnimystro
    @TheAnimystro 3 роки тому

    I think you need to rethink lighting, or put more work into it, because atm it looks like something from the source engine from 2008. Gameplay looks fun though!

    • @GugureSux
      @GugureSux 3 роки тому

      ...are you saying that Source 2008 looks somehow..."ugly"?

    • @TheAnimystro
      @TheAnimystro 3 роки тому

      @@GugureSux not sure why you are quoting "ugly" because I never said that, but ok. No, I'm not saying that, I'm saying that this game looks like those older games. I like those older games, they are great and most people agree that gameplay is more important than looks, but modern games look better than this, and I think there's a chance he could get it looking better with some effort, which would enhance the game.

  • @BrianSantosF
    @BrianSantosF 3 роки тому +1

    "I spend about 60% of my time in optimization"
    Makes me optimistic, if that applies to everything, CD would only take another 17 years to make Cyberpunk as optimized as your game, and we'd finally be able to play it at 60 FPS!

  • @Nervniyak
    @Nervniyak 3 роки тому

    How do you bake dynamic occlusion culling? I mean your level isn't created in Editor but on Runtime, right?

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      My level is created in the editor, it's not dynamically generated. Some of the dynamic objects are generated, but again within the Editor, not at Runtime.

  • @efai
    @efai 3 роки тому

    the taxi is too far away from monitor, I genuinely thought, the player is invisible and is chasing that taxi in front of him.. the motion blur is something I really don't like in games and the first thing I always disable.. also don't like how the taxi is indestructable and other cars are also indestructible, they ram you and not even move an inch to the side.. but all and all it looks amazing !

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      Thanks for all the feedback! It's all still a work in progress.

    • @efai
      @efai 3 роки тому

      @@CassiusJohnAdams cool, I'll keep my eyes on this game !

  • @ParkingLotStudioGames
    @ParkingLotStudioGames 3 роки тому

    hey havw you checked the sub scene thing they used in the Mega City demo? could suit your project

  • @BlunderMunchkin
    @BlunderMunchkin 2 роки тому

    Is there a part in the game where Milla Jovovich crashes through the roof of the cab wearing nothing but bandages?

  • @mosnos84
    @mosnos84 3 роки тому

    Will it be necessary to use the occlusion culling implemantation, when you finished your disabling game objects approach?

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      It'll still be necessary, both for static and dynamic objects. Once I've implemented a more robust pooling system for the dynamic objects it'll be less helpful (though every bit counts, right?). At that point it'll primarily be just for the static objects. Since my buildings are tiled/repeated in 90 degrees segments, and then replicated vertically as well, I still see significant improvements with the occlusion culling since many side and backs of buildings can then be culled.

  • @juampyvarela
    @juampyvarela 3 роки тому

    Would the lighting data problem get better if you separated the level into multiple scenes and loaded/unloaded them additively? That would even help with mesh count!

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      Honestly, I don't know the answer to that, but it is something I previously thought about. I do know it will increase complexity in a number of other areas of my game's development.
      The lighting issue isn't just a technical one, aside from the huge number of Lightmaps it would produce and the LOD issue (below). It's problematic that essentially no sun light reaches the play area (with a few minor exceptions) due to the height of the game's skyscrapers. So all I really get is indirect light regardless of whether it's lightmaps or light probes. On top of that, I find Unity doesn't produce the results I want with regards to Lightmap on LOD buildings. Lightmaps apply to LOD0 - anything beyond that depends on Light Probes if I recall correctly. The end result was a "popping" between lightmap and light probe.

  • @DoctorMobius
    @DoctorMobius 3 роки тому +1

    Is this based on the DOTS template?

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому

      No, it's not. Wish I'd known about that when I started working on this project because I'm sure it would have been helpful. Although I'm not certain that's production-ready yet. Maybe.

  • @robosergTV
    @robosergTV 3 роки тому

    Wait how is Amplify Impostors cost you more performance? Its just a 2d sprite?

    • @CassiusJohnAdams
      @CassiusJohnAdams  3 роки тому +1

      I probably should have been more clear in the video. My initial idea was to use Amplify Impostors for the highest-level LOD on my building segments, each of which segment is broken into 4 (ex: north, east, south, west). Then it's tiled vertically to make the building. Impostors were costing me more this way for a few factors. 1 was the additional LOD level, which accounted for about 20k new GameObjects all in. That wasn't as big a deal as the 4 textures per impostor material needed for each building multiplied by dozens of buildings. Since these are large segments, the textures needed to be at least 2k to be passable. That lead to 200+ new 2k textures (all of which could appear in a single frame), which can't really be atlassed since the Impostor system has certain requirements. Even with instancing, statically batching, etc, the draw call (set pass) became very big, slowing things down as the CPU prepared and passed them to the GPU. Instead I opted for single GameObject per building and 16 x 4k atlassed textures which accounts for the highest LOD for all buildings in the game.
      All this said, I am in fact using Amplify Impostors in the game for some smaller static objects and plenty of dynamic objects as well. These items can all get by on 256px (4 texture Materials) impostor LOD levels. There's somewhere between 30-50 of them presently. That does take some CPU for the 30-50 draw calls prep, but they are GPU instanced since there are many multiples of each dynamic object, so there's definitely a savings in those cases. I have yet to fully validate that the GPU instancing is faster than the dynamic batching but so far my suspicion is that it is in my case.
      Sorry for the long-winded answer.

  • @paulunga
    @paulunga 2 роки тому

    So just plug occlusion culling in there and it works, great!

    • @CassiusJohnAdams
      @CassiusJohnAdams  2 роки тому +1

      Often, but not always. Sometimes the occlusion process itself is more CPU-intensive than the resources you're trying to save. Always measure the results in a standalone build :)