Пікірлер
@66ogg
@66ogg Күн бұрын
4:29 you custom write all sybsystem for deleting?
@uselessgamedev
@uselessgamedev Күн бұрын
I'm not sure what you mean. It's a generic function I wrote it once. Then I did test whether each subsystem was needed or not (although I did that in groups and not one by one)
@66ogg
@66ogg Күн бұрын
@uselessgamedev I mean CurrentSystem object when you show this moment timestamp in video I selected, you write every Current System in u script? 👁👄👁👂💬🌌
@66ogg
@66ogg Күн бұрын
@uselessgamedev I'm very stupid
@uselessgamedev
@uselessgamedev 21 сағат бұрын
Usually for these I use a text editor's multiple cursors features to type multiple lines at once (some editors like Sublime even handle intelligent clipboards) If the task is too complex for that, I write code to generate the code. I also could have written a simpler code with a list of types to delete and a loop iterating through it
@66ogg
@66ogg 15 сағат бұрын
@uselessgamedev and so all loop be so cleaner, it's magic, love u tutorials ❤💬
@Mtaalas
@Mtaalas 8 күн бұрын
As soon as the picture starts moving with more than 12fps, the hand drawn feel is basically lost. That's the issue with trying to make a game look hand drawn. either it IS hand drawn and animated (Cuphead) or it's still and can look like hand drawn... the second it moves in uncanny way that hand animation would not, game over :) It's a great effort, but there's still bunch of problems to solve to be actually convincing :) But as a tutorial on what to do to get the look, this is gold.
@std_void
@std_void 9 күн бұрын
One thing I would modifie is to make outline thickness depend on depth (distance to the object), proffesional artists make lines thinner if they are further away to show the depth of the scene
@ildylandogg
@ildylandogg 25 күн бұрын
spettacolare! complimenti
@le-jesuve
@le-jesuve Ай бұрын
this is dope
@scriptguru8
@scriptguru8 Ай бұрын
Very informative and well explained, thank you!
@Bardent
@Bardent Ай бұрын
Love it!
@ReddStrider
@ReddStrider Ай бұрын
Futurama had a gag like this in s9 e5 4:16
@tellibanana
@tellibanana Ай бұрын
I wonder if this would be possible to make it super quick and efficient using some kind of a custom DLSS function. Also I think it would be even cooler if you used PETSCII instead of ASCII.
@dialyons
@dialyons Ай бұрын
wow the 3d version is amazing
@surdno5796
@surdno5796 Ай бұрын
I wonder if we can dnSpy-hack the game to exclude the unnecessary code in build.
@EtienneDeguine
@EtienneDeguine Ай бұрын
have you considered using a compute shader to parallelize and speed up the solve to a single frame?
@uselessgamedev
@uselessgamedev Ай бұрын
Hi! Yes and no. Solving in a single frame wouldn't be possible because you need to make some clicks to make the game progress, and wait for windows to process that. So even if a "round-trip" takes a frame you would need multiple of them. A compute shader would certainly speed things up but not by much as the number of cells to analyze (the "edge" of the discovered space) isn't that large and the CPU is capable of handling them quite fast. I do agree this is a parallel problem though and would benefit from parallelization, whether on CPU or GPU
@EtienneDeguine
@EtienneDeguine Ай бұрын
@uselessgamedev I see yes I was referring to a single frame for the part in between clicks (image processing + logic) so that you could click every other frame but it sounds like the latency is somewhere else. Keep it up, I love your videos :)
@lvdpoel9758
@lvdpoel9758 2 ай бұрын
Is there a way I could download your game as a unity package? I'd like to study how you did this and really get a better grasp of it! Thank you for your great videos :)
@uselessgamedev
@uselessgamedev 2 ай бұрын
Hi! All projects source code is on the Patreon (link in the description). However I made this when I was a beginner at the whole shader thing so I'm not sure it's good studying material
@Cyberfoxxy
@Cyberfoxxy 2 ай бұрын
A blank project should be about 30mb. Surely your couple of images can't bump it to 80mb! This is why I have settled on older versions of Unity. They provide negative value with each update. I clearly remember going from Unity2019 to Unity2021 in-editor compile times went from ~1 second to 3-5 seconds.
@onetruetroy
@onetruetroy 2 ай бұрын
I love this video. Thank you for the Moebius trip.
@KingRecycle69
@KingRecycle69 2 ай бұрын
You can edit the manifest file to include only the packages you want. Its just a json file so you can save it and every new project you just replace it with your edited one and unity will automatically add and remove packages.
@WeekofRain_hr
@WeekofRain_hr 2 ай бұрын
useless game dev? all i see are gold
@fakeusertas721
@fakeusertas721 2 ай бұрын
Source Code (this code only for free share can be possible) ??
@sketchingbaer8243
@sketchingbaer8243 2 ай бұрын
there is (or was?) a light version. i dunno how to find it, but it was presented some time ago. they marketed it for mobile games, that want to be as small as possible, only using the bare minimum
@uselessgamedev
@uselessgamedev 2 ай бұрын
Project Tiny it was called. I don't know if it's officially canceled but the package doesn't get a lot of activity these days
@pokruk0
@pokruk0 2 ай бұрын
Premature optimization moment
@viccie211
@viccie211 2 ай бұрын
As a full time C# web dev. JetBrains Rider is AWESOME! it's great seeing them sponsor youtubers
@neonneon892
@neonneon892 2 ай бұрын
Unfortunate how all game engines just seem to get bigger over time. I just checked the size of a game jam game I made in 2017 with Unity, and that was 39MB without paying any attention to the size of the project. And it had 3D graphics, unlike the project in this video.
@thanatosor
@thanatosor 2 ай бұрын
This is hopeless 😂 Just try defold if you want 5MB build size
@empty5013
@empty5013 2 ай бұрын
loving this video but a minor gripe: measure performance in ms, not fps, fps is hard to compare due to being inverse. if you cut frame time by 16ms you go from 30fps to 60, or from 10 fps to 13fps, same improvement but one seems way more impressive!! gamers might not understand ms vs fps but we're smart game devs so we don't need to worry about that for performance discussion
@empty5013
@empty5013 2 ай бұрын
unsubscribed this is useful game dev
@CelesteSoueid
@CelesteSoueid 2 ай бұрын
Here's one that, in my tests, gave an 8x improvement in frame-time: avoid using unity's reflection-based "event" functions (eg. Start, Awake, Update, FixedUpdate). If you create a singleton that receives the unity "events", you can architect your MonoBehaviours (via base class) to register and deregister themselves to the singleton, which will then directly call the relevant methods through either C# events, or lists of interfaces (eg. IFixedUpdateable, IAwakeable). I don't use Unity nowadays, so unfortunately I didn't get much use out of this after I figured it out, but hopefully it helps others. Unity's 'events'/'messages' are based on runtime reflection, which comes with an absolutely insane amount of overhead. I've never understood why they thought building the application code on the top of reflection was a good idea, especially since when they first architected it, reflection was even slower than it is now.
@uselessgamedev
@uselessgamedev 2 ай бұрын
Oh 100%. You could even put your singleton in the playerloop. But it's certain the SendMessage/Broadcast message system is a performance sinkhole, and the events (Update etc) cannot be much better
@Biggorbino
@Biggorbino 2 ай бұрын
Hi, could you try explaining that in a beginner friendly way because i am interested
@Briezar
@Briezar 2 ай бұрын
from what I know, Unity messages do not use reflection (SendMessage might be, but not Start, Update, etc.). A quick search on google will have you this: "The first time a MonoBehaviour of a given type is accessed the underlying script is inspected through scripting runtime (either Mono or IL2CPP) whether it has any magic methods defined and this information is cached. If a MonoBehaviour has a specific method it is added to a proper list, for example if a script has Update method defined it is added to a list of scripts which need to be updated every frame. During the game Unity just iterates through these lists and executes methods from it." So what you're doing is essentially reinventing the wheel, minus the checks so you have more performance. Checks here include the auto-removal of null/invalid "IUpdateable"s from a list while iterating, handling exceptions and so on.
@razveck
@razveck Ай бұрын
IIRC this is not entirely true. There's a blog post from Unity saying they don't actually call methods through reflection. They register the methods through reflection at compile time/some other pre-processing step and there is no runtime reflection.
@anon_y_mousse
@anon_y_mousse 2 ай бұрын
I'd love to see a whole series on this with at least one video for every engine. Might be really cool to write an engine from scratch and talk about the best ways to optimize it.
@sechmascm
@sechmascm 2 ай бұрын
The most optimized game engine is the one made for that one specific game. You only add what you want/need
@anon_y_mousse
@anon_y_mousse 2 ай бұрын
@@sechmascm If you don't enjoy programming then fine, but some people do.
@sechmascm
@sechmascm 2 ай бұрын
@@anon_y_mousse What are you on about? lol I was saying that you have to make your own engine... I don't follow your logic
@anon_y_mousse
@anon_y_mousse 2 ай бұрын
@@sechmascm Do you enjoy writing boilerplate code that you have already written over and over again? Even if you write an engine generically, you'll just be duplicating the preexisting engines. Better to just start writing your game, unless you're only doing it for a learning experience.
@sechmascm
@sechmascm 2 ай бұрын
@@anon_y_mousse Well, you can start from the step just below the comercial engines. No need to write a compiler from scratch, but there are existing libraries that give you control over what you want to add. I'm not even an engine purist, but if you want a comercial engine to be perfectly optimized for your project it'll be hard to find one. I know you can modify and recompile Godot (if you know C++), but Unity and Unreal Engine could be lost cases in that regard. The tech debt will carry over no matter what
@albarnie1168
@albarnie1168 2 ай бұрын
False advertising. this is Useful game dev.
@NeatWolf
@NeatWolf 2 ай бұрын
Or, you know, just uninstall the built-in features you don't use from the package manager 😜 I appreciate the effort tho ^^
@Pitoouuu
@Pitoouuu 2 ай бұрын
5:35 Don't use the FPS as a measurement, use milliseconds per frame. That way, you will see each project got a (very small) boost, like 0.05 ms less per frame.
@garklein8089
@garklein8089 2 ай бұрын
What is that background? It looks really cool!
@uselessgamedev
@uselessgamedev 2 ай бұрын
It's three sobel filters applied to a two sliding gradient noises multiplied together
@ChillaxeMake
@ChillaxeMake 2 ай бұрын
A lot of people are just considering ditching Unity entirely.
@CadaverKuma
@CadaverKuma 2 ай бұрын
A gazillion quadrillion of a billion people are considering leaving unity 🤯 🤯
@kaasronald3623
@kaasronald3623 2 ай бұрын
all your videos are good
@kaasronald3623
@kaasronald3623 2 ай бұрын
i thought LoadSceneAsync was fine in build mode (not in editor). But maybe my scenes are not complex enough to cause stutter in build.
@julienpoulton4924
@julienpoulton4924 2 ай бұрын
did you know running a baguette through a vampire's heart is a painstaking process?
@reguret2976
@reguret2976 2 ай бұрын
boids!
@JamieBainbridge
@JamieBainbridge 2 ай бұрын
Later, the govt made Baguette Clicker the French national video game. Congratulations! 🎉🇫🇷🥖
@uselessgamedev
@uselessgamedev 2 ай бұрын
The original title I planned was _Paintastic_ but I couldn't be bothered to make a visual for it
@Uforik64yt
@Uforik64yt 2 ай бұрын
You would love Godot!
@igorthelight
@igorthelight 2 ай бұрын
Agree! But for build sizes. Defold and GameMaker Studio 2 are even better ;-) Godot export templates could be rebuilded with less modules tho - still not as small as Defold and GMS2 xD
@sechmascm
@sechmascm 2 ай бұрын
​@@igorthelightyou can strip editor features you don't need from the editor settings as well
@xabblll
@xabblll 2 ай бұрын
Hello there! As technical artist I can recommend more optimization, if you really trying to strip unity default stuff. 1. Check you Player Settings and remove things you don't use. Best examples are Video support, built-in shaders, unused qualities, Graphics API, and code stripping as video mentions. 2. Try to avoid URP/HDRP if you trying to achieve performance or small footprint. Ideally, write your own custom SRP, other option will be to keep Built-in, but obviously you will miss new features 3. Avoid default shaders such as "Procedural Skybox", "Standard" from built-in RP. Ideally write your own, without hundreds of variants Asset-wise obviously check you textures and models, in some cases sounds could get pretty big too. For example, small 3D web game I developed for game jam featured full PBR, Post-fx, 3D level, sounds & music, 0 asset optimizations, since I was out of time, but I setup project beforehand, and wrote somewhat decent looking SRP+Shader core. Surprisingly Web build come out about 20MB, when Godot games I saw was about 60-150MB, and 150+MB for most basic looking UE4 games Edit: Yes, I checked my web build with empty project, it’s 8mb
@imzary
@imzary 2 ай бұрын
Honestly? Unity's issue is not really that it's builded games are bloated, rather the editor itself is. God unity 2022 LTS was an absolute PAIN to use, Unity 6 is miles faster in that regard but still slower than the old days of unity 2018 & 2019
@uselessgamedev
@uselessgamedev 2 ай бұрын
Yeah I look forward to the switch to coreCLR I think it will vastly improve performance
@CadaverKuma
@CadaverKuma 2 ай бұрын
Unity 2020-21 is the fastest
@pokefreak2112
@pokefreak2112 2 ай бұрын
man unity is so cooked, I remember back in the day before all this modular subsystem bs there was just a single unity runtime dll and a build would be like 15mb total
@CadaverKuma
@CadaverKuma 2 ай бұрын
Its not BS my man, they don’t appeal to you, then aight, don’t use it…
@pokefreak2112
@pokefreak2112 2 ай бұрын
@CadaverKuma The entire point of a package system is that you can have a lean core and only include modules you need. But instead of getting leaner Unity just got slower and more bloated, that's just objectively a failure. Doesn't mean it can't still be the best engine for your usecase of course, but I think the drastic decline in popularity and share price proves I'm not alone in thinking Unity messed up.
@pokefreak2112
@pokefreak2112 2 ай бұрын
@CadaverKuma Also apparently project tiny is _still_ in preview lmao, so that isn't even an option. I used Unity for 8-ish years and in that time they've *always* over promised and under delivered.
@CadaverKuma
@CadaverKuma 2 ай бұрын
@@pokefreak2112 always bringing up the price changes from over a year ago 😭.. brother, the whole team changed from the board to the ceo
@autismspirit
@autismspirit 2 ай бұрын
@@pokefreak2112 The planned switch to CoreCLR is hopefully gonna speed it back up to the levels of Unity 5. Probably gonna be in a beta next year or something
@scribemike
@scribemike 2 ай бұрын
I don't know, man. Name your channel the way you want. But I haven't seen a single one of your videos that's useless. Just sayin'.
@tommax1626
@tommax1626 2 ай бұрын
Hey, Nice!!!
@Paul-to1nb
@Paul-to1nb 2 ай бұрын
Rider really is great. Been paying for it for a few years, never looked back.
@dawidmx
@dawidmx 2 ай бұрын
You can also change compression settings for smaller build size.
@maxlabsinc1662
@maxlabsinc1662 2 ай бұрын
Could you use Project Tiny / DOTS runtime? I’ve never used it, but it might be an improvement.
@uselessgamedev
@uselessgamedev 2 ай бұрын
Isn't project Tiny discontinued? If not, that would be a great lead for a new default template
@ITR
@ITR 2 ай бұрын
​​@@uselessgamedevTiny turned into DOTS, but it's not tinying the same way
@johnrossporter3439
@johnrossporter3439 2 ай бұрын
Did you know that you can disable many of the default things by going to Package Manager->Built-in?
@Drastonar
@Drastonar 2 ай бұрын
This
@NeatWolf
@NeatWolf 2 ай бұрын
Came here to say the same after watching 2 minutes - that's...a bit embarrassing ^^"
@PoisonedAl
@PoisonedAl 2 ай бұрын
Why is your project still so large? I got a 3D, first person horror game with sound and music down to 38Mb!
@successor0
@successor0 2 ай бұрын
HOW
@PoisonedAl
@PoisonedAl 2 ай бұрын
@@successor0 Leaning on a style using low poly and a few basic textures run through a shader.
@joaopedromonteiro2517
@joaopedromonteiro2517 2 ай бұрын
He probably didnt compress the textures
@gorlix
@gorlix 2 ай бұрын
​@@successor0also check build logs it shows which assets have which size consumption
@surdno5796
@surdno5796 2 ай бұрын
Unity Player alone is >30mb. All your assets, scenes, resources and managed libraries fit into 8MB? Bullshit.
@psenej
@psenej 2 ай бұрын
I m french and je valide la baguette
@tommcboatface1908
@tommcboatface1908 2 ай бұрын
As a gamedev myself, I love your channel!