The first 500 people to use my link will get a 1 month free trial of Skillshare: skl.sh/acerola01241 ! #ad With the new year this video marks the "third season" of my videos (the second season probably started with the ff14 video), so we have a new logo in the intro that I hope you all enjoy! Does the new logo mean merch soon? Nope! Anyways, I have a big announcement coming in about 10 days, so please look forward to it!
I just wanted to mention that I'm not sure if the image does get warped. While it does render at a weird aspect ratio, it also has black bars at the sides of the screen.
@@AaroRissanen-pi4tdthat would just add unnecessary overdraw for the entire screen the model while seemingly unnecessary is actually the better choice here.
RAIN WORLD, Would absolutely love a video on their pipeline, although might be a bit hard to do with similar methods since from what I understand a bunch of calculations are pre-baked to create textures that are then actually used
“As usual a huge thank you to ALL my current patrons” *My eyes lock to Penile Necrosis* Umm. Thank you Mr penile necrosis for paying Acerola to flip the unity render over for us… I’m gonna go now
I like to imagine the dev just had no idea what they were doing with the shaders, made something super slow, couldn’t figure out how to optimise it, then just went screw it and lowered the resolution and called it a day
It's an ex Roblox dev with Lua experience so I'd imagine that's probably the case. Now that he's $20 Million something richer, he can hire a dev team for future graphics if he needs it lol.
@@MindBlowerWTFserver connections work in a completely different way, I don’t think that comparison makes any sense Firstly because the gpu is by far the fastest part of your computer and loading a webpage barely uses it, but also mainly because the webpage is physically coming from literally half a planet away most of the time and the connection is the bottleneck. All these render calls are made locally and calculated inside your computer on parts just a few centimeters apart on nanometer based architectures, so obviously it will be orders of magnitude faster. When people invent portals that warp internet cables you can start comparing their speed to gpu tasks
@@MindBlowerWTFTurns out web browsers are actually among the most complex pieces of software ever created. So complex actually that only two companies and one open source project are still able to maintain a full fledged HTML rendering engine and that it is highly unlikely that there ever will be a new one developed from scratch. O_O
Love how you find out that Lethal Company was made with Unity by dumping assets with an external tool even though the first screen you'll see when starting Lethal Company is "Made with Unity"
I knew it was made in Unity the moment I walked near the pool of water on March and slid into it, like 3 times. Unity isn't the only engine with capsule hitboxes but I've never seen them so aggressively slippery on any other engine
@@therealpeter2267 its slow as fuck. The games performance sucks while using low res textures and models and rendering all that natively in 1/4th of fhd resolution. I'm not saying it looks bad or anything, but with a better use of shading tech he could achieve pretty much the same look with 5x the performance.
As someone who's just now learning how to optimize the performance of a game, this was deeply insightful. That's also a ridiculous amount of drawcalls... Those drawcalls were definitely multiplied by the shaders and post processing he is using. For anyone wondering, shadows and lighting are horrendously expensive for games.
this video is also a good analysis of Lethal Company’s performance issues on lower-end PCs. Long-story short, the devs picked the wrong rendering pipeline lmfao(forward rendering would have been much better for this game)
@@crimson-foxtwitch2581 I haven't even gone that far to know the difference between forward and deferred rendering. After importing some grass into my unity project, I was caught off guard by how many more triangles my assets consumed in the scene. Scary seeing how much the rendering pipeline affects the triangle/vertices count and drawcalls :(
@@crimson-foxtwitch2581well, I’m pretty sure the dev didn’t think the game would blow up the way it did during the early access, so I don’t think optimization was ever a priority here, lol. But of course this can be fixed later down the line
I understand why they didnt use occlusion culling in the dungeons. Unity requires you to bake the occlusion data with static objects already in the scene, but since the rooms are procedurally placed there is nothing to bake. There ARE third-party dynamic occlusion systems available that can do this at runtime though.
There is a way to do this that has been popularised in other games, you configure each spsce as a module containing predetermined occlusion. It's not perfect but *really* saves on overdraw and it allows for hot-loading/unloading modules and assets with very little additional work. What you're seeing here is someone who brute forced their way through by lowering the render resolution until it worked. I think that's great but I hope they come back and fix it up at least a little before moving on.
I don't have any experience with Unity or graphics programming but why can't you just bake some occlusion culling into the map when generating the layout in the loading screen? Or if baking is too slow why not just limit it to adjacent rooms?
@@clang8649Baking that kind of stuff is too slow even for adjacent rooms due to how ancient Unity’s systems are for handling this stuff are. On Unreal this is a non-issue lmfao
Loved the video! Although, I think chromatic abberation is also used in the game several times, such as when you're being chased, or when you look at other player's dead body.
@@Acerola_t there are also cracks on the helmet glass. I guess they appear once you recieve some damage. and they become very visible inside the facility on a dark background under the light from lamps. so it's interesting when they're drawn if they react to lighting
@@arti6okk I've been wondering how that's done, I assumed it's a plane in front of the camera with a transparent texture and a weird normal map, but I wasn't able to get it looking quite right when I tried it
One things I really love about the game's visuals is the fact that not only are they realistic at first, they're stylized in a way that the game footage genuinely does look like some sort of LiveLeak, low-quality footage (though I'm not one to watch THOSE videos so maybe I'm wrong) Which helps tons for the workplace gone wrong mood the game has.
By the way, the helmet is not just a mask, it is a full-fledged helmet in which a camera was inserted, this can be understood when you use mods that you can freely move the camera, if you look at the point where your character stood, you can see flying hands and a comically large helmet.
I second the comment about doing this type of video for more games. The hardest thing about shaders for me, is that I can't seem to make the connection between the raw shader effect, and its usage in-game. But when someone points it out to me (like you), it makes complete sense. You provide that moment of revelation. Thank you. Please make more :)
apparently it can't looking at all the people complaining about performance xD But it is amazing how there can be nearly 20 000 of complex calculations done in 3-4ms on different units, in different memories.
And imagine if it was optimized lol At ideal circumstances I think it the same graphics and effects would be running at about double the framerate or slightly above that But yeah you can get away with a very surprising amount of stuff nowadays. Yet big companies (cough cough also the city skylines example again and anything made by CDPR) fail miserably at it all the time This is not even near the limit of where we can get btw. Doom Eternal runs at 1080p with max settings ray tracing at better framerate than this game. Literally.
@@BrianSantosF id Software are the last people who actually optimize their games well. Even Source (2) runs terribly now when before it had Quake's genius PVS algorithm to quickly figure out what is visible and what isn't
I can confirm that the resolution of the game is a major reason why it performs well. When using a mod to upscale it to 1080p, my GPU is basically on fire. Even at more reasonable resolutions, I'm still seeing temps upwards of 90 degrees on my 3070. My assumption was that it was mostly due to the post processing, but HDRP would also make a lot of sense also, having started writing my own mods and decompiling the game now (2 months later), can confirm that HDRP eats up a massive chunk of per-frame render time. Unity's built-in profiler basically only registers HDRP as causing any lag whatsoever, with other code being very minimal in impact. I wish I could see how bad the volumetric lighting is, but that appears to be bundled in with other passes, so it doesn't show up in the profiler separately. I've been working on mods specifically to optimize the game performance recently, although my focus has been more on the raw code (specifically code involved in loading that can easily take 300+ ms per frame) rather than rendering. I'd love to optimize the rendering, but I also don't think that simply reducing graphics settings is a good enough solution. It _works_, but I feel like there has to be a lot that the game does that could be faked effectively without harming performance significantly. There's still not much I can do about the general slowness of HDRP though. That part is pretty well baked into the compiled game, and modding it away wouldn't be particularly easy I don't think
I always see people saying Lethal Company has "potato level" graphics, but from day one I knew this game was doing some nifty stuff behind the scenes before stylizing the crap out of it. The way that a jetpack's flame reflects all over the company moon when flying around, and the way the moist walls in the facility reflect the light of a scrap lamp when a crewmate is carrying it around, it's all pretty impressive, even with all the pixelation going on. The turret's laser is one of the most masterfully done lighting aspects in the game imo.
Its mindblowing that for each frame there are 20,000 API calls and its doing this 60+ times per second with less than 10ms of delay. I feel like modern graphics computing is one of those things that would seem truly impossible if it werent for the fact that it just exists and we're all used to it now. Also, I love lethal company's graphics design philosophy. More games should experiment with sacrificing resolution so they can make use of expensive effects. Ive thought this for many years, but resolution and high fidelity is not very important unless its a competitive game. The human brain is really good at filling in details on its own so we dont actually care about things being blurry/pixelated, we tend to adjust to it within minutes. Anyone who plays older games can tell you that you forget youre playing a game from 1995 within 10 minutes and you never feel like the graphics suck unless it was just poorly done. What matters most is the "feel" of the graphics, and lethal company certainly wouldnt be the same game without the volumetric fog and depth of field.
The off kilter origional resolution to native resolution ratio actually kinda works. (Which really surprises me). I think its because it matches shitty work cameras and the low effort rendering and ui design you often find on professional software. Like you are operating some shit software for a minimum wage job.
Lethal Company is to me, a great example of what games should be doing with the crazy rendering techniques and hardware. They've clearly put a lot of effort and time into getting the game to be rendered with a very unique art style. It's pretty easily recognizable as Lethal Company from every screenshot I've seen. I'd rather see more games with cool styles and rendering tricks like this than the 587th hyper-realistic ray-traced release that 12% of steam users can run at native resolution.
I mean if you watch the video it's clear the dev wasn't making a ton of choices to create this vibe, rather fell backwards into it. I don't wanna bash them too hard but its clear they were simply just doing things and didn't have this vision of what the game should look like lol. It's a low res render (not even accurately done to a 16/9 aspect ratio), volumetric fog, basic posterization, and edge detection. Most of which is likely code pulled directly from the internet
@copordrop The fact it is made this way doesn't change my opinion on the state of game graphics and even reinforces my point. Games need to get their unique looks back, Yhe fact somebody can stumble into something so recognizable as you claim they did, only makes it even sadder we don't see other games make the choice to go down the route of a distinct look. If it's possible to just fumble around monkey-typewriter style and end up with something like this, then the effort floor of making something visually unique is clearly very low.
@@copordrop If you think the dev wasn't making intentional choices to create the vibe the game has and fell backwards into it, how do you explain their other games having the same art style? Zeekerss on Steam, It Steals, Dead Seater, The Upturned are their previous releases in order, all very similar art styles and you can see the progression from It Steals all the way through to Lethal Company So I'm pretty sure they did indeed have this vision of what the game should look like... Impressive how happy you are to crap on someone based purely on your own assumptions when 2 minutes of research would have shown you otherwise lol (Edited because typos lol)
The visor is interesting because one thing I've seen happens in game is that the visor's glass is cracked, so it's affected by actual lighting in the scene!
these videos are so fantastic and get me excited to learn more about graphics programming :) lethal company has such a visual charm to it, and its fascinating to see the unconventional choices that were made to give us such an interesting game, even if it is at a bit of a performance cost (which imo is more than acceptable for a game made by a single person) thanks for reporting this stuff with your knowledge and hard work, you're creating an amazing resource with this channel
With all those weird choices and missed opportunities to optimize I imagine a conversation like this: "the game still runs like shit but I rendered at a low resolution for fun and look at that" - "yoo that looks sick, we're releasing this"
@Acerola_t, I subscribed not only for your content, but for your unique practices such as the many GIFs used to explain things and my favorite: the cat during the sponsored message. This is such a good way to get people who would normally skip past a sponsored message (such as myself), to actual sit and pay attention.
I've got to keep some of your videos on a playlist, they feel like a course overview, as though they'd let me skip an entire course for the gist of it and apply what I need right away. Thank you for doing what you do. In this video alone is enough information to construct my own unique graphical style, perhaps even intentionally. In seriousness, each one gets my mind racing faster than I can keep up, it's a lot of information presented very well in a short span.
1. LOVE the new new title card 2. I had actually considered asking about this game in your chat the next time you streamed even though I'm not active there, but I rarely manage to catch one of your streams. Really glad to see you taking a look at Lethal!
One thing to note with the Cities Skyline 2 performance fiasco, the fault wasn't so much with the Unity HDRP as it was with how it connects it to the rest of the game logic. Cities Skyline 2 uses Unity's new(ish) Entity Component System based DOTS framework for game logic instead of the old MonoBehavior setup. DOTS is a good fit for the extremely large amounts of parallel cpu simulation a city builder has to do, so it was a natural choice to improve cpu performance in a genre where that's usually the bottleneck. The problem is that while DOTS is considered production ready the system that allows Unity's rendering to work with it is super underbaked, and didn't support critical features, particularly at the time the game was in development, so the Skyline 2 devs built their own. It was in building their own glue for HDRP that things seem to have gone off the rails, and they were forced to release it in an incomplete state. (probably due to publisher pressure) The culling, level of detail, and geometry streaming systems that would handle the transition between the high detail models for when the camera is zoomed down to street level and the low detail views when the camera is pulled out to show the entire city either didn't work or weren't implemented yet, so the renderer choked on a pathological amount of invisible geometry. Any renderer would have run slowly. On the other hand Lethal Company probably uses the MonoBehavior system for game logic, so everything just works without any buggy glue. Its also a much better scenario for render performance overall, environments are relatively small, geometry is low detail, and there is no attempt at doing something nutty like making a city simulation game where you can zoom in and count the eyelashes of a single npc walking through a crowd.
omg an interesting video about a game I like, but also omgomgomg there's a sponsorship containing cute clips of a cat!!!!!!!! I love this channel so much
I wasn't expecting much of this video. I got right most stuff of the pipeline just by looking at it but the in-depth analysis of what really matters makes this video a must see. Nice work!
Actually, it isn't that hdrp is MEANT to be slow. It just give you to choices to make your game run slow. Rust was ported over to hdrp a few years back and it looks amazing while performing well even on older hardware like a gtx 970.
Rule of thumb: If you have to think 'For some reason this is done this way...' 99% of the time (100% if its an indie project) it's because the dev had no clue what they were doing and just slapped a band-aid fix.
I'll just comment after I hit like. You deserve a ton of success in your edutainment career! I'll take a look at that real time rendering book. Please continue presenting the elbows on table way to learn this stuff. Kudos
Love how this game really fits many topica u discussed before as if u made the game before. Love this series I hope u continue doing it it's so informative.
imagine how slow lethal company would run at full resolution... Although gotta give the dev credit for using ray-marched volumetric effects and having them matter for gameplay.
One interesting thing about the second edge detection is that it actually applies texture to a lot of flat colored objects. The player, the ship, an a lot of enemies seem to have a rough or weathered look to them that doesn't exist in the actual image texture. Some mods might render a view of the player without the shading effects and it's extremely noticeable as they look cartoonish or almost cel shaded.
I am no game dev but this is really interesting. One thing I was looking forward to but wasn't included however, was the glass cracks/scratches on the helmet visor which become illuminated according to angle of light.
Dude, I cheered out loud when I saw you had posted a new video. Second/third/affirm the comments that say you should make this a series - only if it helps you in your journey, of course. Your videos focused on helping beginner game devs get intermediate-level skills are fantastic, and really inspiring. Thank you for all your hard work!
13:33 That's actually true. I tried Cities Skylines 2 on release day and was shocked by the abysmal performance of my 4090. After having evaluated the impact of each setting it did indeed turn out that the DOF was single-handedly halving the frame rate. I thought it was just broken.
I think the thing is with these sorts of graphics is that the intentional departure from "realism" makes it feel better in a way, as if it is more of an intentional obscuring of reality, like we are given an imperfect lens through which to view it. But when you showed us how the game looks without the effects yet, it feels more like a failure to imitate the look of reality and thus displeasing. Though, I can say I do legitimately like the way the game looks, I would not want to see its pixelated visual style changed. I think its because filter obscures the imperfections. The more you try to make something a closer estimation of reality, the more relevant its imperfections become and the harder and harder it becomes to capture those nuances that make it look "real". So its like the uncanny valley with faces but applied to the environment.
There are GDC talks on graphics of Ori available, if you're interested. Also, for a bit of extra, Digital Foundry did a deep dive for the Switch port recently - I believe some tech parts were mentioned there too.
So, some optimizations they could make is: 1. use an overlay or a cheaper blurring method for the helmet 2. Use geometry culling to hide certain areas behind walls which shouldnt be visible 3. render the game at a perfect ratio resolution for the monitor its being displayed in, such that theres no stretching 4. posterize the colors instead of the volumetric lighting to improve performance
cheaper blurring on the helmet yes, but no overlay. the helmet does actually reflect light, and doing that again with post processing just makes it expensive again definite yes to culling 3 and 4 don't cost performance and are a stylistic choice, so I don't think those need to be changed
Most likely the reason they aren't using culling is because Unity's built-in culling tool requires a baking stage, which is an awkward fit for a roguelike where the levels vary so much. There are solutions for culling in dynamic levels (especially ones that are indoors and have fixed portals between between areas), but it's not "check a box" thing like the default Unity culling is, and there are a lot of clues in this breakdown that imply that the people who made LC are not incredibly experienced developers. Which is fine, they made something people love anyway!
only the 1st and 2nd would improve performance, number 3 would just make it so that the visuals can be more consistent at higher resolutions and 4 would be an entirely different visual style with no performance change as the volumetric light has already been calculated so it's free to apply as many times as you want (aside from the texture sample cost)
For number 4, as far as I know that wouldn't increase performance as the volumetric pass is already rendered and is just being added back again (after being posterized)
one thing thats really cool effect of rendering an actual helmet is when fov mods go up to like 110 instead of boringly seeing the same thing you actually see more of the edges of the helmet and some of the iniside which is pretty immersive
Nice one mr rola. I respect your resistance to taking a total poop on hdrp here while also making it clear this only works because the render resolution is tiny. The ironic thing is gamers hate on games that suggest using dlss or fsr by default, but totally ignore games that force upscaling period like this one and even praise its graphics. Thanks gamers.
Coming from the modding side of this game to add a note about the dungeon taking so much longer to render: The dungeon isn't static geometry, it's generated at run time so it can't use occlusion culling like the surface of the moon can. Furthermore, the dungeon also uses entirely dynamic lights as it can't spawn static or baked lights at run time.
Dynamic occlusion culling can absolutely be done, it's just not built into Unity currently. For a game like this, where you have clearly defined areas (the rooms), it honestly is not crazy hard to implement this system yourself, and that alone would likely improve LC's performance a ton.
Im also a dev and was curious what kind of funky stuff the dev did in shader graph to get that result, nice to see whats actually going on. When making a game, its pretty easy to tweak and play with stuff until it starts looking good enough, so i imagine they got away with a lot of desisions made, because of the low render resolution to accomplish it pretty quick
I am a programmer and a game developer. I like your explanations and I am interested in learning more about shaders because they are mportant for games visuals. I usually make games on Godot game engine and sometimes use libraries like three js and api like webgl for making games. I don't understand shaders it would be great if you made a glsl shader tutorial explaining how shaders work and the glsl shading language.
One of the other reasons Leathal Company's graphical style is so brilliant is that the graphics sometimes make it harder to see in the dimly lit corridors which adds to the horror of playing the game since it makes it that much harder to see where the monsters are or what monster you are even up against. This game has scared the crap out of me on many occasions.
I think the reason for the unity rendering stuff upside down might be actual opengl/vulkan/whatever under the hood. When I was using OSMesa (a lib which emulates opengl) the pixels were located at (x, height-y-1). Maybe same happens in card accelerated graphics. But that's just a theory :^)
Hi there Acerola, really enjoyed this format! I hope you'll cover some other games with interesting visuals such as Lethal Company, whether they're considered beautiful or not, the provided information are gold. Also, happy new year!
Yea I think that explains why my intel 3rd gen processor didn't felt like running the game owhg I really was confused by it, because I managed to play through all Persona 5 Royale with my laptop and pretty much all my 3D games, but then this seemingly low quality graphics game was too much for my pc.
The first 500 people to use my link will get a 1 month free trial of Skillshare: skl.sh/acerola01241 ! #ad
With the new year this video marks the "third season" of my videos (the second season probably started with the ff14 video), so we have a new logo in the intro that I hope you all enjoy! Does the new logo mean merch soon? Nope! Anyways, I have a big announcement coming in about 10 days, so please look forward to it!
Thamk you for breaking down the furry game. :3
i am required to enter a credit card number to claim my free trial and i cannot create an account using an email forwarder ples fix
ayo nobody mentions the monogatari openings??
So is off-season next?
I just wanted to mention that I'm not sure if the image does get warped. While it does render at a weird aspect ratio, it also has black bars at the sides of the screen.
I can't believe the helmet visor is an actual 3D model and not a simple PNG applied over the entire screen.
Yeah, any sane person would have drawn it as a fullscreen quad of a transparent PNG and done a Gaussian blur pass over it to fake the depth of field.
Maybe it is lits up sometimes when you are near light source? I can't remember.
@@funguy398 You could use a normal map
@@AaroRissanen-pi4tdthat would just add unnecessary overdraw for the entire screen the model while seemingly unnecessary is actually the better choice here.
The game seems to be doing a ridiculous amount of unnecessary overdraw already though, no?
I would love for this to be a full series where you cover different games
RAIN WORLD,
Would absolutely love a video on their pipeline, although might be a bit hard to do with similar methods since from what I understand a bunch of calculations are pre-baked to create textures that are then actually used
@@rose_dddddd6476 Rain World is the absolute worst game I have ever played (ignore pfp)
@@rose_dddddd6476 Rain world would make such a good episode!
two words
Hi-Fi Rush
Definitely should do an Unrecord cover
“As usual a huge thank you to ALL my current patrons”
*My eyes lock to Penile Necrosis*
Umm. Thank you Mr penile necrosis for paying Acerola to flip the unity render over for us… I’m gonna go now
thanks penile necrosis
om hate to imagine the image stating the name 🤣
im imagining your eyes were behaving like Rapid Eye Movement when you locked on to that
What surprised me the most was Dan Salvato being there too
Shoutout to Dan Salvato being a patron to hundreds of people
It's like the graphical equivalent to a 24-bit DAW project file exported as an 96kbps MP3 and then converting that to FLAC.
And it sounds crispy 👌
I love this comparison
@@funguy398and lethal company definitely looks *crispy*
this hurts my soul, perfect analogy
lmao yeah
I like to imagine the dev just had no idea what they were doing with the shaders, made something super slow, couldn’t figure out how to optimise it, then just went screw it and lowered the resolution and called it a day
honestly. probably likely cause I can see myself doing the same and calling it stylized.
It's an ex Roblox dev with Lua experience so I'd imagine that's probably the case. Now that he's $20 Million something richer, he can hire a dev team for future graphics if he needs it lol.
actually the pixelation is a huge part of the devs style, i would recommend checking out some of their other games like "The Upturned"
@@Scaryland42didn't that person also make 'it steals'?
@@Scaryland42 dev* he is one guy
Man, putting the cat video on the screen during the ad read is such a 200 IQ move. I'm surprised more people don't do something like that.
In a comment on a recent video he said it unironically helps keep video engagement up during the ad section. I get why but it still makes me giggle
I have SponsorBlock, so I didn't even realize, but that's actually genious
Holy shit I did not realize I had watched an ad read until I read this... I was just staring at the cute cat lmao
Grand strategy youtuber AlzaboHD does that. He has 2 fluffy tabbies and I never skip the sponsor part of the video due to those cats.
Reminds me about the tiktok with subway surfer ontop or smth
seeing all the stuff computers do in a single frame makes me realize how powerful computers really are
and it's not like this is intensive either
all of that, but then you remember that you wait 3 seconds for a webpage that is less than 2 megabytes.
Maybe that's the reason why my computer can barely boot up Terraria without it exploding
@@MindBlowerWTFserver connections work in a completely different way, I don’t think that comparison makes any sense
Firstly because the gpu is by far the fastest part of your computer and loading a webpage barely uses it, but also mainly because the webpage is physically coming from literally half a planet away most of the time and the connection is the bottleneck. All these render calls are made locally and calculated inside your computer on parts just a few centimeters apart on nanometer based architectures, so obviously it will be orders of magnitude faster. When people invent portals that warp internet cables you can start comparing their speed to gpu tasks
@@BrianSantosF I don't think the network is the bottleneck in a lot of cases, modern browsers are just very heavyweight
@@MindBlowerWTFTurns out web browsers are actually among the most complex pieces of software ever created. So complex actually that only two companies and one open source project are still able to maintain a full fledged HTML rendering engine and that it is highly unlikely that there ever will be a new one developed from scratch. O_O
Love how you find out that Lethal Company was made with Unity by dumping assets with an external tool even though the first screen you'll see when starting Lethal Company is "Made with Unity"
real
I think he meant that he knew they were using Unity shaders.
That's not what he said 🤦♂️
What video did you watch?
I knew it was made in Unity the moment I walked near the pool of water on March and slid into it, like 3 times. Unity isn't the only engine with capsule hitboxes but I've never seen them so aggressively slippery on any other engine
Just one guy with no shader coding experience made this. That's inspirational as fuck.
Lethal Company is also a good example of what *not* to do when setting up your render pipeline lmfao
Its horrible, please never do this 😂
@@crimson-foxtwitch2581i like it so i dont really mind lol
@@crimson-foxtwitch2581 what? what's wrong with it's render pipeline?
@@therealpeter2267 its slow as fuck. The games performance sucks while using low res textures and models and rendering all that natively in 1/4th of fhd resolution. I'm not saying it looks bad or anything, but with a better use of shading tech he could achieve pretty much the same look with 5x the performance.
the fact that lethal company is so ridiculously inefficient, yet it runs on my 8 year old pc at like 120fps is hilarious
You can be sure even Lethal company dev learned stuff from this vid
You think he has time to watch TH-cam videos? He has quota to meet.
@@LordDragox412 😂The game is already on version 49, he is grinding
@@tinyturtle1898 Great game assets, great great game assets.
Nope. The dev is good himself and is doing things the way he wants to, not the way people tell him to.
@@satamikobro did not understand what the comment was saying
As someone who's just now learning how to optimize the performance of a game, this was deeply insightful. That's also a ridiculous amount of drawcalls... Those drawcalls were definitely multiplied by the shaders and post processing he is using. For anyone wondering, shadows and lighting are horrendously expensive for games.
this video is also a good analysis of Lethal Company’s performance issues on lower-end PCs. Long-story short, the devs picked the wrong rendering pipeline lmfao(forward rendering would have been much better for this game)
@@crimson-foxtwitch2581 I haven't even gone that far to know the difference between forward and deferred rendering. After importing some grass into my unity project, I was caught off guard by how many more triangles my assets consumed in the scene. Scary seeing how much the rendering pipeline affects the triangle/vertices count and drawcalls :(
@@crimson-foxtwitch2581 dev*
@@crimson-foxtwitch2581honestly there are multiple light sources here and there. So imo forward+ seems to be the best option
@@crimson-foxtwitch2581well, I’m pretty sure the dev didn’t think the game would blow up the way it did during the early access, so I don’t think optimization was ever a priority here, lol. But of course this can be fixed later down the line
I understand why they didnt use occlusion culling in the dungeons.
Unity requires you to bake the occlusion data with static objects already in the scene, but since the rooms are procedurally placed there is nothing to bake.
There ARE third-party dynamic occlusion systems available that can do this at runtime though.
There is a way to do this that has been popularised in other games, you configure each spsce as a module containing predetermined occlusion. It's not perfect but *really* saves on overdraw and it allows for hot-loading/unloading modules and assets with very little additional work. What you're seeing here is someone who brute forced their way through by lowering the render resolution until it worked. I think that's great but I hope they come back and fix it up at least a little before moving on.
@@orbatosdoesn't that kind of approach use up a lot of space though? Since you'd have so many textures for each combination.
I don't have any experience with Unity or graphics programming but why can't you just bake some occlusion culling into the map when generating the layout in the loading screen?
Or if baking is too slow why not just limit it to adjacent rooms?
@@clang8649Baking that kind of stuff is too slow even for adjacent rooms due to how ancient Unity’s systems are for handling this stuff are. On Unreal this is a non-issue lmfao
what does "bake" mean in this context?
Loved the video! Although, I think chromatic abberation is also used in the game several times, such as when you're being chased, or when you look at other player's dead body.
yeah it's also an fov change
@@Acerola_t there are also cracks on the helmet glass. I guess they appear once you recieve some damage. and they become very visible inside the facility on a dark background under the light from lamps. so it's interesting when they're drawn if they react to lighting
@@arti6okk I've been wondering how that's done, I assumed it's a plane in front of the camera with a transparent texture and a weird normal map, but I wasn't able to get it looking quite right when I tried it
@@Acerola_t I thought it looked closer to changing the lens distortion than just FOV, could be both
@@arti6okk The cracks are always there damage or not
I love how he put a cat on the side of the screen so people can watch the sponsorship without watching the sponsorship
I love watching videos about graphics programming without actually doing graphics programming
One things I really love about the game's visuals is the fact that not only are they realistic at first, they're stylized in a way that the game footage genuinely does look like some sort of LiveLeak, low-quality footage
(though I'm not one to watch THOSE videos so maybe I'm wrong)
Which helps tons for the workplace gone wrong mood the game has.
By the way, the helmet is not just a mask, it is a full-fledged helmet in which a camera was inserted, this can be understood when you use mods that you can freely move the camera, if you look at the point where your character stood, you can see flying hands and a comically large helmet.
- can I have quota fulfilled?
- only a helmetfull
- *pulls out comically large helmet*
@@NickiRusin Funniest Lethal Company player
YESS my friends and i play w a headcam mod in the truck and if u see ur own character thru someone elses headcam, ur just the helmet and arms lmao
I've never really been into game development, but I really want to make a game in the art style of Lethal Company , It Steals, and jdh's game
just make sure to pick a faster rendering pipeline like, idk, *forward rendering + URP*?
Idk the art style is cool but I would prefer something else
It steals and lethal company were actually made by the same guy.
Same
I second the comment about doing this type of video for more games. The hardest thing about shaders for me, is that I can't seem to make the connection between the raw shader effect, and its usage in-game. But when someone points it out to me (like you), it makes complete sense. You provide that moment of revelation. Thank you. Please make more :)
0:47 love the monogatari style intro
It's kind of crazy that all of this can happen up to 144+ times a second. Like actually wild
apparently it can't looking at all the people complaining about performance xD
But it is amazing how there can be nearly 20 000 of complex calculations done in 3-4ms on different units, in different memories.
I KNOW RIGHT
computers are so fricking cool.
And imagine if it was optimized lol
At ideal circumstances I think it the same graphics and effects would be running at about double the framerate or slightly above that
But yeah you can get away with a very surprising amount of stuff nowadays. Yet big companies (cough cough also the city skylines example again and anything made by CDPR) fail miserably at it all the time
This is not even near the limit of where we can get btw. Doom Eternal runs at 1080p with max settings ray tracing at better framerate than this game. Literally.
@@BrianSantosF id Software are the last people who actually optimize their games well. Even Source (2) runs terribly now when before it had Quake's genius PVS algorithm to quickly figure out what is visible and what isn't
gpu tech is crazy too
CPU is officialy Doctor Phil in Acerola Lore.
Acelora
babe wake up
NEW ACEROLA VIDEO
No need
She’s just having a nice, long “sleep”…
babe wake...
@@penewoldahhbabe...
Putting a cat video during the ad break must be the smartest thing I've ever seen done on youtube.
nighthawkinlight does ad spots with his bird
Hes aware people don't care about the sponsorship and distracted them with cats
Acerola is probably my favorite channel to watch lately. I love the breakdowns
The genius behind the cat video during the sponsored ad is incredible. I wish more people done that xD
I can confirm that the resolution of the game is a major reason why it performs well. When using a mod to upscale it to 1080p, my GPU is basically on fire. Even at more reasonable resolutions, I'm still seeing temps upwards of 90 degrees on my 3070. My assumption was that it was mostly due to the post processing, but HDRP would also make a lot of sense
also, having started writing my own mods and decompiling the game now (2 months later), can confirm that HDRP eats up a massive chunk of per-frame render time. Unity's built-in profiler basically only registers HDRP as causing any lag whatsoever, with other code being very minimal in impact. I wish I could see how bad the volumetric lighting is, but that appears to be bundled in with other passes, so it doesn't show up in the profiler separately. I've been working on mods specifically to optimize the game performance recently, although my focus has been more on the raw code (specifically code involved in loading that can easily take 300+ ms per frame) rather than rendering. I'd love to optimize the rendering, but I also don't think that simply reducing graphics settings is a good enough solution. It _works_, but I feel like there has to be a lot that the game does that could be faked effectively without harming performance significantly. There's still not much I can do about the general slowness of HDRP though. That part is pretty well baked into the compiled game, and modding it away wouldn't be particularly easy I don't think
Acerola ive seen you grow from the start and i love your content! You got me into graphics programming!
I always see people saying Lethal Company has "potato level" graphics, but from day one I knew this game was doing some nifty stuff behind the scenes before stylizing the crap out of it. The way that a jetpack's flame reflects all over the company moon when flying around, and the way the moist walls in the facility reflect the light of a scrap lamp when a crewmate is carrying it around, it's all pretty impressive, even with all the pixelation going on. The turret's laser is one of the most masterfully done lighting aspects in the game imo.
it's PotatOS (Portal 2) level graphics.
Its mindblowing that for each frame there are 20,000 API calls and its doing this 60+ times per second with less than 10ms of delay. I feel like modern graphics computing is one of those things that would seem truly impossible if it werent for the fact that it just exists and we're all used to it now.
Also, I love lethal company's graphics design philosophy. More games should experiment with sacrificing resolution so they can make use of expensive effects. Ive thought this for many years, but resolution and high fidelity is not very important unless its a competitive game. The human brain is really good at filling in details on its own so we dont actually care about things being blurry/pixelated, we tend to adjust to it within minutes. Anyone who plays older games can tell you that you forget youre playing a game from 1995 within 10 minutes and you never feel like the graphics suck unless it was just poorly done. What matters most is the "feel" of the graphics, and lethal company certainly wouldnt be the same game without the volumetric fog and depth of field.
8:13 you can tell this because in game, the helmet reacts to lighting changes.
I wondered how Lethal Company made its graphics for ages and I am so happy you of all people covered it! Thank you! Definitely inspiring!
Holy good LORD look at that Acerola graphic. You little tiger you!
I think this game is genius in that these post-processing effects basically let them use low poly graphics that look great
The off kilter origional resolution to native resolution ratio actually kinda works. (Which really surprises me). I think its because it matches shitty work cameras and the low effort rendering and ui design you often find on professional software. Like you are operating some shit software for a minimum wage job.
Not gonna lie, as an artist who has dabbled with 2d and 3d computer graphics, I've been wanting really complex lighting on simple scene forever. =)
Lethal Company is to me, a great example of what games should be doing with the crazy rendering techniques and hardware. They've clearly put a lot of effort and time into getting the game to be rendered with a very unique art style. It's pretty easily recognizable as Lethal Company from every screenshot I've seen. I'd rather see more games with cool styles and rendering tricks like this than the 587th hyper-realistic ray-traced release that 12% of steam users can run at native resolution.
I mean if you watch the video it's clear the dev wasn't making a ton of choices to create this vibe, rather fell backwards into it. I don't wanna bash them too hard but its clear they were simply just doing things and didn't have this vision of what the game should look like lol. It's a low res render (not even accurately done to a 16/9 aspect ratio), volumetric fog, basic posterization, and edge detection. Most of which is likely code pulled directly from the internet
@copordrop The fact it is made this way doesn't change my opinion on the state of game graphics and even reinforces my point.
Games need to get their unique looks back, Yhe fact somebody can stumble into something so recognizable as you claim they did, only makes it even sadder we don't see other games make the choice to go down the route of a distinct look. If it's possible to just fumble around monkey-typewriter style and end up with something like this, then the effort floor of making something visually unique is clearly very low.
@@copordrop If you think the dev wasn't making intentional choices to create the vibe the game has and fell backwards into it, how do you explain their other games having the same art style? Zeekerss on Steam, It Steals, Dead Seater, The Upturned are their previous releases in order, all very similar art styles and you can see the progression from It Steals all the way through to Lethal Company
So I'm pretty sure they did indeed have this vision of what the game should look like... Impressive how happy you are to crap on someone based purely on your own assumptions when 2 minutes of research would have shown you otherwise lol (Edited because typos lol)
The visor is interesting because one thing I've seen happens in game is that the visor's glass is cracked, so it's affected by actual lighting in the scene!
these videos are so fantastic and get me excited to learn more about graphics programming :)
lethal company has such a visual charm to it, and its fascinating to see the unconventional choices that were made to give us such an interesting game, even if it is at a bit of a performance cost (which imo is more than acceptable for a game made by a single person)
thanks for reporting this stuff with your knowledge and hard work, you're creating an amazing resource with this channel
With all those weird choices and missed opportunities to optimize I imagine a conversation like this: "the game still runs like shit but I rendered at a low resolution for fun and look at that" - "yoo that looks sick, we're releasing this"
@Acerola_t, I subscribed not only for your content, but for your unique practices such as the many GIFs used to explain things and my favorite: the cat during the sponsored message. This is such a good way to get people who would normally skip past a sponsored message (such as myself), to actual sit and pay attention.
2:55 actually good way to stop a viewer from skipping the video
wdym
I've got to keep some of your videos on a playlist, they feel like a course overview, as though they'd let me skip an entire course for the gist of it and apply what I need right away. Thank you for doing what you do. In this video alone is enough information to construct my own unique graphical style, perhaps even intentionally. In seriousness, each one gets my mind racing faster than I can keep up, it's a lot of information presented very well in a short span.
9:42...i see you
there is nothing that provides me the motivation i need to finish out this software engineering degree like a new upload from acerola
15:03 I love the Danganronpa music during the final recap :D
1. LOVE the new new title card
2. I had actually considered asking about this game in your chat the next time you streamed even though I'm not active there, but I rarely manage to catch one of your streams. Really glad to see you taking a look at Lethal!
10:45 I knew it was doing something odd inside. My FPS would tank significantly. This explains it.
By the way, there is a mod named cullfactory and it pretty much fixes this
Never in my wildest dreams i would have thought rendering one single image is that complex. You always learn something new! Fantastic!
You run the most inspiring easily digestible high quality valuable information packed channel for graphics. Thank you.
15:30 The decision to add the Danganronpa soundtrack while recapping is peak
LETS GO ITS ANOTHER ACEROLA VIDEO
One thing to note with the Cities Skyline 2 performance fiasco, the fault wasn't so much with the Unity HDRP as it was with how it connects it to the rest of the game logic.
Cities Skyline 2 uses Unity's new(ish) Entity Component System based DOTS framework for game logic instead of the old MonoBehavior setup. DOTS is a good fit for the extremely large amounts of parallel cpu simulation a city builder has to do, so it was a natural choice to improve cpu performance in a genre where that's usually the bottleneck. The problem is that while DOTS is considered production ready the system that allows Unity's rendering to work with it is super underbaked, and didn't support critical features, particularly at the time the game was in development, so the Skyline 2 devs built their own. It was in building their own glue for HDRP that things seem to have gone off the rails, and they were forced to release it in an incomplete state. (probably due to publisher pressure) The culling, level of detail, and geometry streaming systems that would handle the transition between the high detail models for when the camera is zoomed down to street level and the low detail views when the camera is pulled out to show the entire city either didn't work or weren't implemented yet, so the renderer choked on a pathological amount of invisible geometry. Any renderer would have run slowly.
On the other hand Lethal Company probably uses the MonoBehavior system for game logic, so everything just works without any buggy glue. Its also a much better scenario for render performance overall, environments are relatively small, geometry is low detail, and there is no attempt at doing something nutty like making a city simulation game where you can zoom in and count the eyelashes of a single npc walking through a crowd.
omg an interesting video about a game I like, but also omgomgomg there's a sponsorship containing cute clips of a cat!!!!!!!! I love this channel so much
I wasn't expecting much of this video. I got right most stuff of the pipeline just by looking at it but the in-depth analysis of what really matters makes this video a must see. Nice work!
Actually, it isn't that hdrp is MEANT to be slow. It just give you to choices to make your game run slow. Rust was ported over to hdrp a few years back and it looks amazing while performing well even on older hardware like a gtx 970.
Rule of thumb: If you have to think 'For some reason this is done this way...' 99% of the time (100% if its an indie project) it's because the dev had no clue what they were doing and just slapped a band-aid fix.
I'll just comment after I hit like. You deserve a ton of success in your edutainment career!
I'll take a look at that real time rendering book. Please continue presenting the elbows on table way to learn this stuff.
Kudos
Love how this game really fits many topica u discussed before as if u made the game before. Love this series I hope u continue doing it it's so informative.
imagine how slow lethal company would run at full resolution...
Although gotta give the dev credit for using ray-marched volumetric effects and having them matter for gameplay.
One interesting thing about the second edge detection is that it actually applies texture to a lot of flat colored objects. The player, the ship, an a lot of enemies seem to have a rough or weathered look to them that doesn't exist in the actual image texture. Some mods might render a view of the player without the shading effects and it's extremely noticeable as they look cartoonish or almost cel shaded.
you are in my top 10 human beings list
May I hear the list?
@@virtuallyreal5849 yo mom takes up 9 places
That's actually kind of sweet.@@bas_ee
I am no game dev but this is really interesting. One thing I was looking forward to but wasn't included however, was the glass cracks/scratches on the helmet visor which become illuminated according to angle of light.
The new intro logo is indeed pretty cool
Dude, I cheered out loud when I saw you had posted a new video. Second/third/affirm the comments that say you should make this a series - only if it helps you in your journey, of course. Your videos focused on helping beginner game devs get intermediate-level skills are fantastic, and really inspiring. Thank you for all your hard work!
awesome video, I really liked learning about the stylizing
13:33 That's actually true. I tried Cities Skylines 2 on release day and was shocked by the abysmal performance of my 4090. After having evaluated the impact of each setting it did indeed turn out that the DOF was single-handedly halving the frame rate. I thought it was just broken.
This video made me drink water.. for some reason...
i really like this idea for a video. maybe this could become a series where you explain how specific games do their art
I think part of lethal company's success is its uncanny graphics, and that it was probably intentionally made look like that.
awesome video as always my guy
CLIMAX RETURN FOR THE RECAP FUCKED ME UP😭😭 great vid
I think the thing is with these sorts of graphics is that the intentional departure from "realism" makes it feel better in a way, as if it is more of an intentional obscuring of reality, like we are given an imperfect lens through which to view it. But when you showed us how the game looks without the effects yet, it feels more like a failure to imitate the look of reality and thus displeasing. Though, I can say I do legitimately like the way the game looks, I would not want to see its pixelated visual style changed.
I think its because filter obscures the imperfections. The more you try to make something a closer estimation of reality, the more relevant its imperfections become and the harder and harder it becomes to capture those nuances that make it look "real". So its like the uncanny valley with faces but applied to the environment.
please make a behind the graphics for ori and the will of the wisps, i loved that game and would love to see a video about it!
a lot of that is hand drawn artwork rather than shader work, it's a very beautiful game though
ngl sounds like its time for a series towards game graphics
There are GDC talks on graphics of Ori available, if you're interested. Also, for a bit of extra, Digital Foundry did a deep dive for the Switch port recently - I believe some tech parts were mentioned there too.
where's the visor's glass tho? you can see it's cracks redirecting light in odd ways when there's a lightsource right above you
This video felt a bit more similar to your older style. I like it
the guy's been making videos for like a year the hell you mean older style
Flip8ing amazing stuff on you Acerola and the dev, and here I thought it was some simple stuff
So, some optimizations they could make is:
1. use an overlay or a cheaper blurring method for the helmet
2. Use geometry culling to hide certain areas behind walls which shouldnt be visible
3. render the game at a perfect ratio resolution for the monitor its being displayed in, such that theres no stretching
4. posterize the colors instead of the volumetric lighting to improve performance
Half of these will come at a compromise with no real benefit tho. Even a 4 year old laptop could run this game just fine.
cheaper blurring on the helmet yes, but no overlay. the helmet does actually reflect light, and doing that again with post processing just makes it expensive again
definite yes to culling
3 and 4 don't cost performance and are a stylistic choice, so I don't think those need to be changed
Most likely the reason they aren't using culling is because Unity's built-in culling tool requires a baking stage, which is an awkward fit for a roguelike where the levels vary so much. There are solutions for culling in dynamic levels (especially ones that are indoors and have fixed portals between between areas), but it's not "check a box" thing like the default Unity culling is, and there are a lot of clues in this breakdown that imply that the people who made LC are not incredibly experienced developers. Which is fine, they made something people love anyway!
only the 1st and 2nd would improve performance, number 3 would just make it so that the visuals can be more consistent at higher resolutions and 4 would be an entirely different visual style with no performance change as the volumetric light has already been calculated so it's free to apply as many times as you want (aside from the texture sample cost)
For number 4, as far as I know that wouldn't increase performance as the volumetric pass is already rendered and is just being added back again (after being posterized)
one thing thats really cool effect of rendering an actual helmet is when fov mods go up to like 110 instead of boringly seeing the same thing you actually see more of the edges of the helmet and some of the iniside which is pretty immersive
Nice one mr rola. I respect your resistance to taking a total poop on hdrp here while also making it clear this only works because the render resolution is tiny.
The ironic thing is gamers hate on games that suggest using dlss or fsr by default, but totally ignore games that force upscaling period like this one and even praise its graphics.
Thanks gamers.
Crazy how quickly this channel has become one of my favorites! Keep up the amazing work!
Coming from the modding side of this game to add a note about the dungeon taking so much longer to render: The dungeon isn't static geometry, it's generated at run time so it can't use occlusion culling like the surface of the moon can. Furthermore, the dungeon also uses entirely dynamic lights as it can't spawn static or baked lights at run time.
It's not like it *can''t* be done better. It's just that it's not as straightforward as using what Unity gives you.
Dynamic occlusion culling can absolutely be done, it's just not built into Unity currently. For a game like this, where you have clearly defined areas (the rooms), it honestly is not crazy hard to implement this system yourself, and that alone would likely improve LC's performance a ton.
Im also a dev and was curious what kind of funky stuff the dev did in shader graph to get that result, nice to see whats actually going on.
When making a game, its pretty easy to tweak and play with stuff until it starts looking good enough, so i imagine they got away with a lot of desisions made, because of the low render resolution to accomplish it pretty quick
0:52 DG reference?
it felt apt for lethal company
I am a programmer and a game developer. I like your explanations and I am interested in learning more about shaders because they are mportant for games visuals. I usually make games on Godot game engine and sometimes use libraries like three js and api like webgl for making games. I don't understand shaders it would be great if you made a glsl shader tutorial explaining how shaders work and the glsl shading language.
Mr. Graphics has done it again
I’m glad that other people can enjoy it but I never got to play the game because it hurts my eyes
A very good a and interesting video! Nice work!
One of the other reasons Leathal Company's graphical style is so brilliant is that the graphics sometimes make it harder to see in the dimly lit corridors which adds to the horror of playing the game since it makes it that much harder to see where the monsters are or what monster you are even up against. This game has scared the crap out of me on many occasions.
I think the reason for the unity rendering stuff upside down might be actual opengl/vulkan/whatever under the hood.
When I was using OSMesa (a lib which emulates opengl) the pixels were located at (x, height-y-1). Maybe same happens in card accelerated graphics.
But that's just a theory :^)
This is a very cool video. Love the graphics of LC and it's very interesting how it's rendered. Thank you!
1:03 why this image LMAO
“This is how I know lethal company was made in unity”
*The Unity Splash Screen:*
I think they also are using that ps1 effect on the walls in some areas? I know when you go to sell the giant wall is all weird and wobbly.
oh yeah that's parallax mapping (not affine texture mapping like ps1) lol i shouldve covered that oops
@@Acerola_tdont worry, the video is still like spaghetti, and spaghetti its pretty good
Hi there Acerola, really enjoyed this format!
I hope you'll cover some other games with interesting visuals such as Lethal Company, whether they're considered beautiful or not, the provided information are gold.
Also, happy new year!
I was thinking of doing a graphics study of Lethal Company knowing it would be bad, didnt know it was this bad. Great vid
yeah, Lethal Company is a good example of what *not* to do when setting up your game’s render pipeline
I mean it works@@crimson-foxtwitch2581
absolutely sick video, hope you dive into more games like this (also the va11halla background music yummy)
Yea I think that explains why my intel 3rd gen processor didn't felt like running the game owhg
I really was confused by it, because I managed to play through all Persona 5 Royale with my laptop and pretty much all my 3D games, but then this seemingly low quality graphics game was too much for my pc.