Could This Asset Be Code?

  Рет қаралды 81,580

aarthificial

aarthificial

Күн бұрын

=== Additional Information ===
1. 0:56 Virtual Memory
While it is not possible to fit all of that data into physical RAM, the operating system could theoretically use virtual memory to share the load with secondary memory (HDD, SDD). This would still not be practical since the usual swapping space is much smaller than 100GB and requesting memory that's not currently in RAM would cause the game to freeze temporarily as the OS fetches the data from the disk. Virtual Memory is meant more for running a lot of programs at the same time rather than running one gigantic program.
2. 3:32 Just-in-time compilation
Under certain conditions, some interpreted languages can match the speed of a compiled program. A good example would be V8, the JavaScript interpreter used in Chromium-based browsers. It uses a technique called Just-in-time compilation (JIT) that lets it compile parts of the script into actual machine code and do so at runtime. Of course, this comparison is not entirely fair since we no longer perform interpretation, we run machine code, just like you would with C or Rust, the only difference being that the compilation happens at runtime. The act of interpretation itself will always be much slower than running machine code.
3. 5:37 Bevy Editor
As of recording this video, Bevy doesn't have an official editor but there is ongoing work being done towards developing one. I think it's a great thing. The point of this video is not that editors are bad or that Bevy shouldn't have one. The lack of an editor was what made me reevaluate my past choices but I believe my conclusions apply regardless.
=== Support the Channel ===
/ aarthificial
=== Livestreams ===
kzbin.info...
=== Wishlist Astortion on Steam ===
store.steampowered.com/app/19...
=== Tools I'm using ===
Motion Canvas
Affinity Designer
DaVinci Resolve
Audacity
=== Music ===
"Inspired by Oppenheimer" by noisysymphony
#MadeWithMotionCanvas

Пікірлер: 248
@aarthificial
@aarthificial 2 ай бұрын
Help me make more videos like this: www.patreon.com/aarthificial The source code for this video is available at github.com/motion-canvas/examples
@ultimaxkom8728
@ultimaxkom8728 2 ай бұрын
Quite the enlightening lesson. Thanks.
@gabryx7
@gabryx7 17 күн бұрын
Hey, I sent you an email to apologise for being an absolute dickhead on GitHub. I was definitely acting like a dick on gh issues and I wanted to publicly apologise on that issue (I think it was a PR) but couldn't. Anyway yeah I was being a douchebag honestly and then eventually got too busy and forgot to reply to it (or delete the comment).
@timquestionmark
@timquestionmark 2 ай бұрын
"This couldve just been a function" is the programming equivalent of "this meeting couldve been an email"
@JorgetePanete
@JorgetePanete 2 ай бұрын
could've*
@EthMiC_
@EthMiC_ 2 ай бұрын
@@JorgetePanete i am annoyed now
@somebody4545
@somebody4545 2 ай бұрын
​@@JorgetePanete clodu'ev
@DuoVersal
@DuoVersal 2 ай бұрын
@@somebody4545ouecd’lv
@Pixaurora
@Pixaurora 2 ай бұрын
@@somebody4545 **coul'ved
@cateinum4047
@cateinum4047 2 ай бұрын
This video is a good illustration of Greenspun's tenth rule: "Any sufficiently complicated program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp"
@rahul9704
@rahul9704 2 ай бұрын
I also (more literally) end up writing yet another Lisp every time one of my projects gets sufficiently large enough, then I have to convince myself to let it go because I'd be the only person to understand it.
@Dysiode
@Dysiode 2 ай бұрын
That is the crux of the problem with so many DSLs :) And given enough time away from it /you/ wouldn't even understand it@@rahul9704
@spookyconnolly6072
@spookyconnolly6072 2 ай бұрын
lisp and smalltalk are the coolest runtjmes that prevent me from regretting choosing programming
@Daniel_Zhu_a6f
@Daniel_Zhu_a6f 2 ай бұрын
i wish, i was taught this sooner. this and not using OOP.
@albertweber1617
@albertweber1617 2 ай бұрын
This is especially true with unity. The best dialogue manager has its own interpreter. The timeline is Turing Complete. There are at least three node graphs that can definitely be expressed in lisp.
@bike_n_fish
@bike_n_fish 2 ай бұрын
I think the overall gamedev experience is being on a boat where a wave is "I SHOULD MAKE A FUCKING EDITOR FOR THIS" and where the bottom of the wave is "IT WASN'T USEFUL"
@Tomatech
@Tomatech 2 ай бұрын
In a way, the spectrum between assets and code parallels a spectrum between artists, designers, and engineers. (Nearly) all games need pure assets and pure code, but Ideally there should also be some level of designer-friendly middle ground, even if its as simple as way of grouping textures into a frame-by-frame animation, or a way of defining data files for game stats instead of hardcoding them
@PRIMARYATIAS
@PRIMARYATIAS 2 ай бұрын
But this will also require a team of engineers to maintain all the code to support those tools for the designers, Thus the fundamental “problem” will never go away as this is basically how computers work. Scripting languages with hot reloading lie exactly at the middle ground. Writing custom UI for every little thing can lead to lots of churn and feature creep as you can’t really build “everything” the designers will ever want, It will require a constant feedback loop back and force between the engineering team and the designers and will actually add work as those tools will always have some flaw of being not too general or too restricting. What I ideally want is a scripting language with built in spline and color editors and maybe also a graph plotter and the rest to remain the same as standard coding. This is the most sane approach I see for this middle ground.
@JorgetePanete
@JorgetePanete 2 ай бұрын
it's*
@lucbloom
@lucbloom 2 ай бұрын
Tools for easily developing content are OK in my book. Assets to set up the game and its logic not so much.
@beskamir5977
@beskamir5977 2 ай бұрын
That is actually a really good point. As both a programmer and artist, I've never really seen much purpose for most of the stuff between those two extremes in game development. I can just as easily make purely data or purely code assets. So my only real selection criteria for which I'll use, is what is the most efficient option available, and that's usually an extreme rather than something that tries to be both data and code.
@NeZversSounds
@NeZversSounds 2 ай бұрын
I kind of disagree. Make tools to create assets and data, not logic.
@jameender
@jameender 2 ай бұрын
The animation quality is so insanely good 🔥
@Cred_official
@Cred_official 2 ай бұрын
Thanks to motion canvas
@OctagonalSquare
@OctagonalSquare 2 ай бұрын
Yeah I just made a comment about that. He uses motion canvas and it’s so nice! I need to switch because the animations on my last video for my second channel took forever lol
@mr.johnson8974
@mr.johnson8974 2 ай бұрын
He doesn’t just use motion-canvas, he created it
@uujuju5737
@uujuju5737 2 ай бұрын
​@@mr.johnson8974both
@Cred_official
@Cred_official 2 ай бұрын
@@mr.johnson8974 Indeed, a wise man
@RenderingUser
@RenderingUser 2 ай бұрын
Easily the most underrated gamedev channel in all of KZbin. Every single video on this channel is quality content. That's pretty rare for KZbin channels
@ItsMorze
@ItsMorze 2 ай бұрын
Gatekeep
@RenderingUser
@RenderingUser 2 ай бұрын
@@ItsMorze whyyy?
@kuroc5116
@kuroc5116 2 ай бұрын
Agreed. His stuff is top notch. He discusses less of just the game idea and how he did it, but rather look at it block by block, a bit like NoDayShallEraseYou, the dev of DDS
@ItsMorze
@ItsMorze 2 ай бұрын
@@RenderingUser too good for the common folk
@RenderingUser
@RenderingUser 2 ай бұрын
@@ItsMorze and who's to say who's the common folk? I want his videos to reach every game dev
@BackForwardPunch
@BackForwardPunch 2 ай бұрын
I’ve had this experience with a lot of jack-of-all -trades game engines. It’s not just that your game isn’t the same as anyone elses, it’s also just that each person’s brain works differently. Being able to structure things in whichever way is most efficient and sensible to you is going to be a better way then blindly following restrictive conventions of a premade editor.
@bike_n_fish
@bike_n_fish 2 ай бұрын
That's a great advice and any gamedev will learn it one day
@your_sweetpea
@your_sweetpea 2 ай бұрын
This is a big part of why I find myself deeply frustrated by Godot, honestly. I want to like it and keep revisiting it, but the model it uses just refuses to click for me. I understand it, it just doesn't match how I structure the game in my head at all.
@JorgetePanete
@JorgetePanete 2 ай бұрын
else's*
@delphicdescant
@delphicdescant 2 ай бұрын
@@your_sweetpeaThat sort of experience is probably why I keep returning to just writing my own engine code. You can sacrifice control of the model to use a pre-made engine, but then all that pre-made engine really does for you is the stuff that, in my opinion, was never the hard part of making a game. It loads assets, has a scene graph, has some rendering boilerplate, probably includes some third-party physics engine that you can include in your own code just as easily - none of that stuff is the hard part of game dev, so I feel like I might as well do that stuff myself and then have control over my model when I have to do the hard part that I'd have to do either way.
@BackForwardPunch
@BackForwardPunch 2 ай бұрын
@@delphicdescantI feel like avoiding the hard parts is the trap people get into (including me) A lot of engines help a lot in the first steps of making a game and being able to see the assets, interact etc... but the hard parts like actual behaviors and level design still have to be done by you.
@rahul9704
@rahul9704 2 ай бұрын
This awakened something in me. I'd been arguing for months with my sister who uses Unity that it's easier to model logic in code; it's just two different mentalities it seems. I've come across the same dilemma about assets as code, and feel vindicated in my own belief in code being a better medium to express myself.
@mz-power9587
@mz-power9587 5 күн бұрын
There's a class i would want to take. About game mechanic design. But the professor makes students use unity visual scripting for that. I find code a lot more idiomatic and easier to read then a graph. Some stuff with editors I find faster to just code.
@windwalkerrangerdm
@windwalkerrangerdm 2 ай бұрын
I was under the impression that writing custom editors and shaping your inspector windows or whatnot was done for the specific purpose of being able to transfer the design process to the designers. So that they can fiddle with knobs and sliders and thingamagics to make the game more fun. In theory, at least. I worked with XNA for a year so I know what it feels like to work without an editor environment, but I think it doesn't matter which is what as long as you are productive. Unfortunately, everything has boiled down to productivity.
@aarthificial
@aarthificial 2 ай бұрын
Absolutely agree! It's a shame it took me a while to realize this.
@PRIMARYATIAS
@PRIMARYATIAS 2 ай бұрын
When you program your games in a compiled language it is always a good practice to integrate some third party scripting language to iterate fast on some stuff and if it expanded over time into something that would be more appropriate to be in the “foundational” part of the game then a porting should be done. Lua is the most common one to integrate but there could be some other options like AngleScript, JavaScript or some other Scheme and Lisp flavors.
@yjlom
@yjlom 2 ай бұрын
@@PRIMARYATIAS better yet: write your scripts in that same compiled language (it needs to have fast enough compile times) and hot reload libraries with dlopen or equivalent greatly simplifies the interaction layer and makes integrating into (or separating from) the engine a very easy ordeal
@windwalkerrangerdm
@windwalkerrangerdm 2 ай бұрын
@@yjlom All of this somehow ties into the moddability of the game as well I presume?
@yjlom
@yjlom 2 ай бұрын
@@windwalkerrangerdm indeed (btw I should probably have mentioned it earlier, but I've never made a published game so do take my takes with a grain of salt)
@Donvermicelli
@Donvermicelli 2 ай бұрын
I've had this very same realization myself while trying to implement a custom level editor for my game in Unity the other day. What started out as me trying to create all of these cool custom inspectors and scriptable objects turned into the realization that the vast majority of work that I was doing was working around the self imposed limitations of the engine. Re-writing everything into a self contained program that only interfaced with the engine at the very edges not only made it faster and smaller in size, it greatly reduced the complexity and the velocity at which I could develop because of it. Thanks for the awesome talk, I feel validated :)
@xiondisc
@xiondisc 2 ай бұрын
It’s been interesting seeing how humbled you’ve become in learning about professional game development. How it’s helped you evolve your approach to game design. It almost feels defeatist, like you’ve given up on something you love, but obviously it’s just a compromise for the sake of productivity over passion. I have a lot of respect for you. Please never stop making these incredible animations.
@cavemaneca
@cavemaneca 2 ай бұрын
The editer serves as translator to help people who don't know the code still create game behavior, or to visualize complex relationships between components. It really shines when you have a larger project with team members of various skill levels. So it makes perfect sense for a solo developer who prefers straight code to not need one. However, it also makes sense when a solo developer who has a hard time coding instead spends that time doing the "difficult" work extending an editor so that it can do more of what they want.
@hampe1337
@hampe1337 2 ай бұрын
I'd say the 3 perks from using scriptableObjects in this case is: 1. You can change your params very easy during runtime and see them take effect immedietly without needing to recompile / rebuild. 2. Since scriptableObjects are serializable you can generate them / use them with other type of tools, externally created, or internally within Unity. 3. For situations where you have teams working on games you can provide a layer of abstraction which makes changing the data easier for someone who might not be a software developer. If anyone has some more insights or doesn't agree with these points I'd love some feedback!
@igrb
@igrb 2 ай бұрын
Absolute banger, never really thought about how scripting was both data and logic at the same time; ty for making this
@pixelpastiche
@pixelpastiche 2 ай бұрын
Jeez these animations are so smooth and look great! You should make an opensource library for animating just like it someday so that other people can benefit from making their own text beautiful with the same aesthetic. Love the video btw.
@Xeros08
@Xeros08 2 ай бұрын
It's called Motion Canvas, he already did
@ndykhng
@ndykhng 2 ай бұрын
@@Xeros08 woosh
@pixelpastiche
@pixelpastiche 2 ай бұрын
@@Xeros08 Yes... that’s the joke.
@qwfp
@qwfp 2 ай бұрын
I think it's easy to go from one extreme to the other one. There are many concepts that are simpler to reason about when they are visualized as not just code (obvious example being 3D meshes, but also 2D structures such as dialogue graphs). Just because it can be represented as code, doesn't mean it should. And spending time optimizing the workflow (be it by converting code to assets, or assets to code) is probably a bigger issue than the underlying problem itself (speaking from experience ;)). But I agree that sometimes it is better to just use code directly, so everyone should evaluate their specific situation by themself!
@CyberWolf755
@CyberWolf755 2 ай бұрын
As a UE dev/programmer. I use both blueprints scriptiong and C++ code. Each has their strenght from accessability and iteration of blueprints to the power and performance of C++. I think you can have a good mix of both. Especially for animation and AI, a graph or tree is easier to visually parse than to have a bunch of files open either in tiny windows or hidden behind tabs. It's an interesting mental exercise to have. Deciding where in the data/code gradiant you want your system to be and how to react when you need to adjust that idea in practise.
@BBSplat
@BBSplat 2 ай бұрын
I should really check out Bevy. I've been learning Rust through toy problems like Advent of Code for a while now, and made a little egui tool to help with something at work. Setting up data structures that allow the type system to strictly enforce invariants just tickles my brain in the perfect way. This video makes it super clear how this could be useful for game development, too.
@TheApmenard1993
@TheApmenard1993 2 ай бұрын
For smaller projects that aren't online multiplayer on multiple platforms this is great. From that other lens though, assets are something that can be updated without changing the core application and requiring publishers or mobile app stores to revalidate. They allow designers to create things with little support from developers after initial implementation too. The difference between big and little infrastructure on game dev is really interesting
@WeslomPo
@WeslomPo 2 ай бұрын
That's funny thing, because I write code like you show in last part of your video. And ECS frameworks is a key feature to make something like that. I love to code and code editors :). Cool video!
@machelul
@machelul 2 ай бұрын
In small teams more code is probably an option and even a need, on bigger teams with varying degrees of coding skill, having visual tools is a must to prevent problems and streamline the process.
@JTCF
@JTCF 2 ай бұрын
Nice to see some recognition for Bevy! Have been watching your Astortion devlogs and it kinda inspired the visual style I have in mind for my game.
@DanDeebster
@DanDeebster 2 ай бұрын
I love how you've used animation to reinforce what you're saying, like how you switch from the background being hard-edged red/blue Voronoi regions into a gradient when you're saying it's a spectrum. Great stuff.
@peterhuijsen
@peterhuijsen 2 ай бұрын
Beautiful video! I'm constantly impressed by the content you produce and the concepts you cover. Keep it up!
@metaphoricallyspeaking
@metaphoricallyspeaking 2 ай бұрын
Incredible, as usual. I know I'll be rewatching this soon for animation ideas!
@SmotheredByLove
@SmotheredByLove 2 ай бұрын
Fascinating video - as usual! As an artist who needs editors and graphical interfaces to be able to achieve the more technicals aspects of my work, I appreciate my engineer and developer coworkers for creating that layer between the worlds of asset and code. This way we can communicate using a shared language and find the solutions to reach a common goal.
@thomaspeterson5547
@thomaspeterson5547 2 ай бұрын
Great video, as always. Using several langs in your examples really helps drive home how universal the concept is
@sah4pok633
@sah4pok633 2 ай бұрын
You makes videos as I wanted it for years, it's cool
@sutsuj6437
@sutsuj6437 2 ай бұрын
03:26 Rust mentioned let's go!
@Salloom99
@Salloom99 2 ай бұрын
New perspective unlocked. The quality of the video is top notch, loved every second of it ❤
@UpsilonX
@UpsilonX 2 ай бұрын
Absolutely love gamedev videos that go into architectural concepts like this. Please make more!!
@JDihlmann
@JDihlmann 2 ай бұрын
Every time I see a video from you, I'm so blown away by the quality of the animation and visual explanation that I forget to focus on the content.
@RenderingUser
@RenderingUser 2 ай бұрын
How did I almost miss this video. And why is the animation so good
@razveck
@razveck 2 ай бұрын
Your videos are amazing! I love the presentation and your explanations. Keep doing good work!
@_hallowed_
@_hallowed_ 2 ай бұрын
The quality of the animations in these videos is genuinely unbelievable!
@kadrilac
@kadrilac 2 ай бұрын
When your videos show up on my feed, my smile grows instantly
@partlyawesome
@partlyawesome 2 ай бұрын
I'll definitely be looking at that motion canvas video thing you were talking about. Hell, a tutorial/walkthrough might make a good video!
@ZealanTanner
@ZealanTanner 2 ай бұрын
This is a pretty incredible video, well done
@qussaigamer553
@qussaigamer553 2 ай бұрын
such amazing content, keep up the good work.
@lukesaynor3582
@lukesaynor3582 2 ай бұрын
So cool to see shaders in use in this video!
@ChaineDeQualite
@ChaineDeQualite 2 ай бұрын
Lately I've been trying to make custom tools in Unity but string references annoy me quite a lot and for a long time I've had a hard time finding a way around them. Unity's input system solves this by generating a C# class that represent your asset with the compromise that it takes a second or two every time you save. It's pretty useful and allows to have an editor that generates an asset without any string references. On top of that, you can hardcode everything if you want to. This makes me think that maybe tools like this should be designed as an API first, and them adapted into an editor to make easier for fast iterations, non-programmers and debugging. I'll try to do that for my current and future tools. Anyway, thanks for the video, I always learn a lot watching them and I can't wait to see what you do next!
@NeZversSounds
@NeZversSounds 2 ай бұрын
OMG, I knew about this functional programming pattern, but it wasn't this obvious to try it for state machines. Thank you!
@CoolGabrijel
@CoolGabrijel 2 ай бұрын
This video has changed my way of thinking. So it also falls somewhere between data and logic! Neat!
@TheBelgarion01
@TheBelgarion01 2 ай бұрын
It's insane how good your animations are
@dedenapraia
@dedenapraia 2 ай бұрын
Amazing ! Awesome use of Motion Canvas ! and very interesting topic
@ihalseide
@ihalseide 2 ай бұрын
Cool video, reminds me of Lisp trying to span the entire code/data spectrum. I heard that there was some kind of space-limited game programming/demo scene competitions back in the day… and a team made a FPS called kkrieger that generated all textures when the game started using functions and pre-existing files on windows. This is very related to the space (data) versus time (computation) trade off in programming
@thewhitefalcon8539
@thewhitefalcon8539 2 ай бұрын
These competitions still happen. Revision 2024 over Easter weekend, end of March - are you going?
@cristinocanga
@cristinocanga 2 ай бұрын
Video quality is crazy!🔥🔥
@AgainPsychoX
@AgainPsychoX 2 ай бұрын
So good video again, I need to take walk now and rethink all my game-dev experience.
@lawrencejob
@lawrencejob Ай бұрын
This is extremely wise and applicable way beyond game dev. All companies struggle to define and handle their data.
@Dysiode
@Dysiode 2 ай бұрын
Great overview! I'm a full-stack web engineer so a lot of the asset/code gradient is intuitive to me, and I think you explained it great! One example from the earlier web days is Webpack vs. Gulp. Webpack uses configuration files to define how to compile your web app, while Gulp you're writing standard javascript the entire way. There's all sorts of pros and cons, but the "I love to code" part of me finds Gulp's model very attractive. The Webpack/Rollup/Vite configuration based model has settled into the defacto standard, so I'm sure there's a good reason for using it instead, but I haven't looked into it. I think the reason an editor is so desirable is because it's /visual/ which makes complex ideas like the animation graph easier to comprehend. I think though there should be more/easier tooling that builds information from code, or, and I understand this is the holy grail of development, tooling that is able to modify or generate that clean representation. Anything that makes the raw code accessible for when you need to do something dirty.
@wandermaus4571
@wandermaus4571 2 ай бұрын
This channel is pure gold. 👍
@niuage
@niuage 2 ай бұрын
I wish I could double subscribe. Really good insights :)
@4forfour
@4forfour 2 ай бұрын
20 seconds of bevy already got him rethinking every aspect of coding
@benjoe1993
@benjoe1993 2 ай бұрын
Great video because it doesn't say "you should do this" but rather makes you question why you do things the way you do them. Perfect approach. Why Unity and similar engines go the asset way is because they are made for bigger teams with dedicated game designers who might not know how to code. It might take less code and compile simpler if you just write the functions out as is but if there's a designer who wants to tweak values or change up the behavior of certain parts then they need some kind of editor to speed up that part of the process. Also if you write stuff in code it might be a bit harder to iterate on stuff. I get that it might be quicker to write code but it's not as easy to read. It's much simpler to click on a "Take Hit" node and pull a line to the "Apply Knockback" node than looking for where exactly the take hit takes place and then figuring out how to apply the knockback with the correct function and what parameters it needs in order to apply correctly, at the correct time to the correct entity. Yes if you organize the code well then it's not a HUGE issue but with multiple people or with a long enough development cycle it can be slower on the long run. So where the line should be between asset and code is purely based on project and team size and composition.
@UnofficialFoneE
@UnofficialFoneE 2 ай бұрын
As always, your animations are sooo slick! My opinion certainly lies in the middle. In this case, representing something through code might be clearer to the dev, but yields more code. It's really just trading complexity and at the end of the day it should largely come down to preference. Errors/bugs will inevitably be made both ways and so the skill of the user and experience using the tool seems like it should decide which method to use. Now obviously, us programmers have a big bias towards scripting, but as they say: the best code is no code… Don't code bugs kids :)
@ultimaxkom8728
@ultimaxkom8728 2 ай бұрын
Quality video as per usual.
@hackticdev
@hackticdev 2 ай бұрын
The production quality on this video is so high. I seriously need to learn Motion Canvas so I can make my own videos this good
@ofekazarya7247
@ofekazarya7247 2 ай бұрын
Awesome video! Another issue I found up about regarding this topic is searchability. I'm highly familiar with Unity; I've worked with it for a decade. Recently, I have jumped into quite a large project that I haven't worked on before, and I've noticed that Unity UI and editors encapsulate a lot of data that otherwise should have been easy to find. That makes understanding the data flow extremely difficult. It's hard to notice if you worked on a project from day one, as you know where all the different parts are, but for an ongoing project, it makes it a bit harder to figure out different parts of it. As you said, it's all a game of compromises, and Unity is quite good for what it does, IMO.
@MQWalkman
@MQWalkman 2 ай бұрын
This is a beautiful video :))
@DrakiniteOfficial
@DrakiniteOfficial 2 ай бұрын
Duuuude, the animation in this video was so slick. I can only imagine just how much time it took to do all the animation.
@sechmascm
@sechmascm 2 ай бұрын
He made it with his own tool, motion canvas. Which would make it much easier to do these kinds of graphics. Really cool concept
@idedary
@idedary 2 ай бұрын
Now that you use Rust, I can finally understand the code showcases lol
@YuutoGaming
@YuutoGaming 2 ай бұрын
aarthificial just Drop a boom shell out of nowhere, the quantity of content, animation, and narrative is insane
@GoodOldQuestion
@GoodOldQuestion 2 ай бұрын
Yeap, that's what he does from time to time...
@simplegamer6660
@simplegamer6660 2 ай бұрын
you meant quality, right?
@lucbloom
@lucbloom 2 ай бұрын
Sebastian Lague wants to have a word with you… But seriously, I love doing it in code. It’s so much easier to find stuff and the compiler checks your work.
@randomlegodev
@randomlegodev 2 ай бұрын
good golly motion canvas is lookin flippin polished!!!
@GoldenBeholden
@GoldenBeholden 2 ай бұрын
This is a really nice reflection.
@money_hyde
@money_hyde 2 ай бұрын
Awesome video!!
@denn501
@denn501 2 ай бұрын
The animations on this video are sooooooooo good!!!
@ShinSpiegel
@ShinSpiegel 2 ай бұрын
Long long time ago I left a small comment asking, "why did you choose this, since you are rewriting pretty much everything"... Now I'm seeing ya on Bevy, which allows you to make the way you want, "almost from scratch", This is a fresh air, and by the tone of the video, looks like you are having fun with this change. Like usual, thank you very much for the amazing video (and by the excellent quality of the video), hope to see more content. Thank you again.
@bluematter435
@bluematter435 2 ай бұрын
ah what a nice video. its fun to think how when a file controls what code does, the file itself its kinda code-like. also i belive you could have a code only approach even when using engines that have editors?
@Sofia-rh7ji
@Sofia-rh7ji 2 ай бұрын
I'm currently developing a language that's specifically for game development. One major feature is that the accompanying data storage format can include complex logic written in the form of closures or even function definitions in the exact same language that are just-in-time compiled. Since the jitc times are really small, the only real downside is that it makes it WAY easier to decompile your code & requires you increase binary size a significant amount (it's quite variable how much it increases binary size, things like exposing types with generics adds a lot more than small stuff, like just exposing functions that return primitives).
@gareths
@gareths 2 ай бұрын
The flexing with motion canvas is staggering. I gotta watch this a few more times hold on
@kaibennett9077
@kaibennett9077 2 ай бұрын
Motion Canvas is looking absolutely amazing!!
@kartopod
@kartopod 2 ай бұрын
The editing in this video is unreal
@neomaxp
@neomaxp 2 ай бұрын
Great video ! Also by my experience, the use of "assets" is mainly caused by : 1. a misunderstanding of the development kit: in Unity, the editor and all the components available but it is also true in other field of programming 2. thinking this code can be reusable: often "can be reusable" does not mean "will be reused" aka over engineering 3. wanting too much "code quality" by removing code: not a great way, as you example shows, we can simplify code without using assets Also Unity editor coding is cumbersome.
@joshbishop
@joshbishop 2 ай бұрын
I am a simple man: I see aarthificial uploads, I click on video, I like video.
@zactron1997
@zactron1997 2 ай бұрын
Would love to see your opinions on Bevy as one of its contributors! Regardless, excellent video as usual!
@osartur
@osartur 2 ай бұрын
This video is visually impeccable
@cerulity32k
@cerulity32k 2 ай бұрын
I'm remaking Just Shapes and Beats, and I've found that having functions to construct a level is so much easier than defining a layout in something like JSON. For one, I can have as many factory functions and build helpers as I see fit, and I can introduce as much custom logic as I want.
@pedroth3
@pedroth3 2 ай бұрын
Great animations! Motion canvas could be the new manim...
@TheGrifdail
@TheGrifdail 2 ай бұрын
An argument in support of assets files and tool: Tools shape the way we think about things. The same data can be perceived in totally different way. For instance the animation controller you showed, is arguably easier to understand at a glance than the code. I also played with behavior tree. Writing then with code feels very different than manipulating them through a visual tool.
@wchorski
@wchorski 2 ай бұрын
Visual editors help me get comfortable with configuration without having to always be digging in the docs, and having that 'switch to code' really helps me break into any new tech. except for shader graphs. god bless GUI node based shader graph editors
@stokedfool
@stokedfool 7 күн бұрын
Subtle, quality content. I learned something, thank you. [07:10]
@vividescence
@vividescence 2 ай бұрын
I'm very curious on your thoughts on use of interpreted animations in a language like C#, where *everything* is JIT-compiled. I think this is why Unity is so focused on Assets, personally, since by default, the Unity engine uses C# (there's also the ability to compile the C# code into C++ code via the IL2CPP library, but since we assume that not everyone can use that, it would track that compilation is the exception)
@nextProgram
@nextProgram 2 ай бұрын
That's funny, I had the exact same realization awhile ago. I was working on a system for creating boss battles using a complex system of custom assets that let you define things like phases, attacks, timing, etc. I finally realized that it would be much simpler and faster to write if I just program the boss battle manually. I'm not sure why, but I feel like we always think we're not being good programmers if we just go with the simplest option. But the fact is, most of the time the simplest option IS the best.
@jiro4559
@jiro4559 2 ай бұрын
you're very good at graphic design, mate
@MrNickPlaysminecraft
@MrNickPlaysminecraft 2 ай бұрын
I use Unity, and when developing systems like you're describing, I make the code very general but secure, never (aside from maybe setting files) with .json or .yaml type formats. It allows for a performant system that is adaptable in the editor so new content can be easily customized with little worry of breaking the system. I find that to be the right balance for me because a purely code based version would be much too rigid, and unless I'm in the final optimization section of game development, isn't worth compromising adaptability for. I recommend Code Aesthetic's video on premature optimization.
@aarthificial
@aarthificial 2 ай бұрын
Throughout this video, I never mentioned optimization as an argument. Premature abstraction/generalization is as problematic as premature optimization.
@micka190
@micka190 2 ай бұрын
Loved the "I'm not recommending this. I just love to code, so I enjoy it this way." bit. There's a lot of devs on KZbin who never end-up making anything, because they've convinced themselves that they need to remove all "bloat" from their projects. It's refreshing to see a channel that actually talks about how there's a cost to everything and that these decisions come with pros and cons. Keep up the good work!
@konkitoman
@konkitoman 2 ай бұрын
Really good video, the video artifacts happens when you encode the video or when KZbin transcodes the video?
@rhyboy1
@rhyboy1 2 ай бұрын
The animations are so next level…
@Sancarn
@Sancarn 2 ай бұрын
We need more low-code pro-code hybrid languages I feel. Like Enso, but for this game enginge stuff it would be awesome for designers and coders to work better together.
@tinysnaket
@tinysnaket 2 ай бұрын
I love unity engine because it's way simpler than other engines to create my custom asset. If we rewind back 10 years, almost every custom asset requires you to make your own editor. Unity, Unreal, Godot are more a universal Game Creator rather than a pure Game Engine like Bevy or Raylib or the long dead Flash.
@tevor09
@tevor09 2 ай бұрын
i love motion canvas and astortion
@CodingProjects_1
@CodingProjects_1 2 ай бұрын
2:49 I spend the last 8 months making a software that meets this description, you were a really big inspiration on the creation of it, thanks. Also how did you made Open Canvas... well open source?, I dont know how to do it. and I think my code is finally mature enough to post it. there is two functions I was not able to implement due to my own limitations of knowledge (and burn out ngl) but it has all that its neccesary for it to work with no bugs
@ashuzon
@ashuzon 2 ай бұрын
Insightful.
@moritzscheuerle9447
@moritzscheuerle9447 2 ай бұрын
Very cool and fancy video, What fonts do you use?
@aarthificial
@aarthificial 2 ай бұрын
It's JetBrains Mono
@DerSolinski
@DerSolinski 2 ай бұрын
You do realize you have to do a video now about your experience with Bevy, don't you? Also great video. The "make your own tool" fallacy is something that eats way to much time... even so it's kinda enjoyable to have something that works...
@user-yw5et3os6i
@user-yw5et3os6i 2 ай бұрын
Having assets instead of code allows you to make changes faster because you don’t have to recompile everything when a simple change is made. When non programmers are present in the team, it helps them understand and modify the assets easily. I think the advantages of engines like unity are more visible when the team is bigger.
@FugaceFugite
@FugaceFugite 2 ай бұрын
One of the best compromises is a visual editor for assets with a function to export to code. It's even better if it supports feeding code that it can then merge with the rest. Assets are generally much easier to tweak and produce when working with a team, especially in the context of outsourcing that production ; they can also be changed without the need to recompile/rebuild the executable, which can be a huge benefit. A pure code approach is generally much more performant and more adapted to solo devs up to small teams of developers or otherwise code capable members, but removing all the standards and guides that the asset format and visual editor add, it will require more care to make sure everyone is using it correctly. In the end it's all just compromises, compromising for different contexts.
@mkwpaul
@mkwpaul 2 ай бұрын
Maybe this is different in gamedev, but my experience in non-game dev is that most often people hard-code behavior that would be much more easily expressed as some form of data. And by that I don't even necessarily mean a separate file format where assets are loaded at runtime, but also just normal structs that contain contain all the data to describe a certain thing and an "interpreter" that "dynamically" changes behavior depending on what the struct it is given contains. I often find this so much more flexible and easier to understand than big code structures that attempt to implement everything through hard coded behavior, especially when it heavily involves subtype polymorphism.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 774 М.
I Vanished to Make My First Game
11:29
aarthificial
Рет қаралды 55 М.
YouTube's Biggest Mistake..
00:34
Stokes Twins
Рет қаралды 77 МЛН
everything is open source if you can reverse engineer (try it RIGHT NOW!)
13:56
Low Level Learning
Рет қаралды 1,2 МЛН
Dear Game Developers, Stop Messing This Up!
22:19
Jonas Tyroller
Рет қаралды 673 М.
This is one of my favorite video game exploits
3:27
Garbaj
Рет қаралды 227 М.
The Algorithm Behind Spell Checkers
13:02
b001
Рет қаралды 370 М.
How principled coders outperform the competition
11:11
Coderized
Рет қаралды 1,5 МЛН
Reimagining Astortion | Devlog 0
7:22
aarthificial
Рет қаралды 74 М.
Smooth Parallax - Pixel Renderer Devlog #2
8:18
aarthificial
Рет қаралды 115 М.
Building the ENDGAME invisible PC
27:30
DIY Perks
Рет қаралды 688 М.
Why You Can't Visit 💀🎺.com
8:50
Dev Detour
Рет қаралды 487 М.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,4 МЛН