Тёмный

Could This Asset Be Code? 

Подписаться
Просмотров 86 тыс.
% 7 429

=== 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 ===
www.patreon.com/aarthificial
=== Livestreams ===
ru-vid.comabout
=== Wishlist Astortion on Steam ===
store.steampowered.com/app/1993980/Astortion/
=== Tools I'm using ===
Motion Canvas
Affinity Designer
DaVinci Resolve
Audacity
=== Music ===
"Inspired by Oppenheimer" by noisysymphony
#MadeWithMotionCanvas

Опубликовано:

 

1 мар 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 250   
@aarthificial
@aarthificial 7 месяцев назад
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 7 месяцев назад
Quite the enlightening lesson. Thanks.
@gabryx7
@gabryx7 5 месяцев назад
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 7 месяцев назад
"This couldve just been a function" is the programming equivalent of "this meeting couldve been an email"
@JorgetePanete
@JorgetePanete 7 месяцев назад
could've*
@EthMiC_
@EthMiC_ 7 месяцев назад
@@JorgetePanete i am annoyed now
@somebody4545
@somebody4545 7 месяцев назад
​@@JorgetePanete clodu'ev
@DuoVersal
@DuoVersal 7 месяцев назад
@@somebody4545ouecd’lv
@Pixaurora
@Pixaurora 7 месяцев назад
@@somebody4545 **coul'ved
@cateinum4047
@cateinum4047 7 месяцев назад
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 7 месяцев назад
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 7 месяцев назад
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 7 месяцев назад
lisp and smalltalk are the coolest runtjmes that prevent me from regretting choosing programming
@Daniel_Zhu_a6f
@Daniel_Zhu_a6f 7 месяцев назад
i wish, i was taught this sooner. this and not using OOP.
@albertweber1617
@albertweber1617 7 месяцев назад
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.
@jameender
@jameender 7 месяцев назад
The animation quality is so insanely good 🔥
@Cred_official
@Cred_official 7 месяцев назад
Thanks to motion canvas
@OctagonalSquare
@OctagonalSquare 7 месяцев назад
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 7 месяцев назад
He doesn’t just use motion-canvas, he created it
@uujuju5737
@uujuju5737 7 месяцев назад
​@@mr.johnson8974both
@Cred_official
@Cred_official 7 месяцев назад
@@mr.johnson8974 Indeed, a wise man
@Tomatech
@Tomatech 7 месяцев назад
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 7 месяцев назад
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 7 месяцев назад
it's*
@lucbloom
@lucbloom 7 месяцев назад
Tools for easily developing content are OK in my book. Assets to set up the game and its logic not so much.
@beskamir5977
@beskamir5977 7 месяцев назад
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 7 месяцев назад
I kind of disagree. Make tools to create assets and data, not logic.
@bike_n_fish
@bike_n_fish 7 месяцев назад
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"
@BackForwardPunch
@BackForwardPunch 7 месяцев назад
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 7 месяцев назад
That's a great advice and any gamedev will learn it one day
@your_sweetpea
@your_sweetpea 7 месяцев назад
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 7 месяцев назад
else's*
@delphicdescant
@delphicdescant 7 месяцев назад
@@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 7 месяцев назад
@@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.
@RenderingUser
@RenderingUser 7 месяцев назад
Easily the most underrated gamedev channel in all of RU-vid. Every single video on this channel is quality content. That's pretty rare for RU-vid channels
@ItsMorze
@ItsMorze 7 месяцев назад
Gatekeep
@RenderingUser
@RenderingUser 7 месяцев назад
@@ItsMorze whyyy?
@kuroc5116
@kuroc5116 7 месяцев назад
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 7 месяцев назад
@@RenderingUser too good for the common folk
@RenderingUser
@RenderingUser 7 месяцев назад
@@ItsMorze and who's to say who's the common folk? I want his videos to reach every game dev
@rahul9704
@rahul9704 7 месяцев назад
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.
@Donvermicelli
@Donvermicelli 7 месяцев назад
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 :)
@cavemaneca
@cavemaneca 7 месяцев назад
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.
@xiondisc
@xiondisc 7 месяцев назад
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.
@igrb
@igrb 7 месяцев назад
Absolute banger, never really thought about how scripting was both data and logic at the same time; ty for making this
@windwalkerrangerdm
@windwalkerrangerdm 7 месяцев назад
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 7 месяцев назад
Absolutely agree! It's a shame it took me a while to realize this.
@PRIMARYATIAS
@PRIMARYATIAS 7 месяцев назад
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 7 месяцев назад
@@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 7 месяцев назад
@@yjlom All of this somehow ties into the moddability of the game as well I presume?
@yjlom
@yjlom 7 месяцев назад
@@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)
@TheApmenard1993
@TheApmenard1993 7 месяцев назад
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
@SmotheredByLove
@SmotheredByLove 7 месяцев назад
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.
@DrakiniteOfficial
@DrakiniteOfficial 7 месяцев назад
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 7 месяцев назад
He made it with his own tool, motion canvas. Which would make it much easier to do these kinds of graphics. Really cool concept
@DanDeebster
@DanDeebster 7 месяцев назад
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.
@hampe1337
@hampe1337 7 месяцев назад
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!
@pixelpastiche
@pixelpastiche 7 месяцев назад
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 7 месяцев назад
It's called Motion Canvas, he already did
@ndykhng
@ndykhng 7 месяцев назад
@@Xeros08 woosh
@pixelpastiche
@pixelpastiche 7 месяцев назад
@@Xeros08 Yes... that’s the joke.
@lawrencejob
@lawrencejob 6 месяцев назад
This is extremely wise and applicable way beyond game dev. All companies struggle to define and handle their data.
@BBSplat
@BBSplat 7 месяцев назад
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.
@WeslomPo
@WeslomPo 7 месяцев назад
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!
@qwfp
@qwfp 7 месяцев назад
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!
@JTCF
@JTCF 7 месяцев назад
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.
@CyberWolf755
@CyberWolf755 7 месяцев назад
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.
@NeZversSounds
@NeZversSounds 7 месяцев назад
OMG, I knew about this functional programming pattern, but it wasn't this obvious to try it for state machines. Thank you!
@_hallowed_
@_hallowed_ 7 месяцев назад
The quality of the animations in these videos is genuinely unbelievable!
@JDihlmann
@JDihlmann 7 месяцев назад
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 7 месяцев назад
How did I almost miss this video. And why is the animation so good
@thomaspeterson5547
@thomaspeterson5547 7 месяцев назад
Great video, as always. Using several langs in your examples really helps drive home how universal the concept is
@machelul
@machelul 7 месяцев назад
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.
@hackticdev
@hackticdev 7 месяцев назад
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
@nextProgram
@nextProgram 7 месяцев назад
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.
@kadrilac
@kadrilac 7 месяцев назад
When your videos show up on my feed, my smile grows instantly
@UpsilonX
@UpsilonX 7 месяцев назад
Absolutely love gamedev videos that go into architectural concepts like this. Please make more!!
@4forfour
@4forfour 7 месяцев назад
20 seconds of bevy already got him rethinking every aspect of coding
@TheBelgarion01
@TheBelgarion01 7 месяцев назад
It's insane how good your animations are
@Salloom99
@Salloom99 7 месяцев назад
New perspective unlocked. The quality of the video is top notch, loved every second of it ❤
@peterhuijsen
@peterhuijsen 7 месяцев назад
Beautiful video! I'm constantly impressed by the content you produce and the concepts you cover. Keep it up!
@sah4pok633
@sah4pok633 7 месяцев назад
You makes videos as I wanted it for years, it's cool
@zoladkow
@zoladkow 7 месяцев назад
Nie wiem jak wypadnie ostateczna gierka, ale Twoje filmiki juz sa swietne 😁
@partlyawesome
@partlyawesome 7 месяцев назад
I'll definitely be looking at that motion canvas video thing you were talking about. Hell, a tutorial/walkthrough might make a good video!
@lukesaynor3582
@lukesaynor3582 7 месяцев назад
So cool to see shaders in use in this video!
@Dysiode
@Dysiode 7 месяцев назад
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.
@metaphoricallyspeaking
@metaphoricallyspeaking 7 месяцев назад
Incredible, as usual. I know I'll be rewatching this soon for animation ideas!
@ZealanTanner
@ZealanTanner 7 месяцев назад
This is a pretty incredible video, well done
@benjoe1993
@benjoe1993 7 месяцев назад
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.
@razveck
@razveck 7 месяцев назад
Your videos are amazing! I love the presentation and your explanations. Keep doing good work!
@Sofia-rh7ji
@Sofia-rh7ji 7 месяцев назад
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).
@CoolGabrijel
@CoolGabrijel 7 месяцев назад
This video has changed my way of thinking. So it also falls somewhere between data and logic! Neat!
@dedenapraia
@dedenapraia 7 месяцев назад
Amazing ! Awesome use of Motion Canvas ! and very interesting topic
@ChaineDeQualite
@ChaineDeQualite 7 месяцев назад
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!
@falwiuhf
@falwiuhf 7 месяцев назад
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.
@cristinocanga
@cristinocanga 7 месяцев назад
Video quality is crazy!🔥🔥
@AgainPsychoX
@AgainPsychoX 7 месяцев назад
So good video again, I need to take walk now and rethink all my game-dev experience.
@YuutoGaming
@YuutoGaming 7 месяцев назад
aarthificial just Drop a boom shell out of nowhere, the quantity of content, animation, and narrative is insane
@GoodOldQuestion
@GoodOldQuestion 7 месяцев назад
Yeap, that's what he does from time to time...
@simplegamer6660
@simplegamer6660 7 месяцев назад
you meant quality, right?
@TheGrifdail
@TheGrifdail 7 месяцев назад
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.
@ihalseide
@ihalseide 7 месяцев назад
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 7 месяцев назад
These competitions still happen. Revision 2024 over Easter weekend, end of March - are you going?
@kartopod
@kartopod 7 месяцев назад
The editing in this video is unreal
@UnofficialFoneE
@UnofficialFoneE 7 месяцев назад
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 :)
@qussaigamer553
@qussaigamer553 7 месяцев назад
such amazing content, keep up the good work.
@wchorski
@wchorski 7 месяцев назад
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
@rhyboy1
@rhyboy1 7 месяцев назад
The animations are so next level…
@98ahni
@98ahni Месяц назад
Considering that my job is to make these tools/editors for the team, I say; Yes, that does need an editor, no matter what it is!
@Sancarn
@Sancarn 7 месяцев назад
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.
@GoldenBeholden
@GoldenBeholden 7 месяцев назад
This is a really nice reflection.
@lucbloom
@lucbloom 7 месяцев назад
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.
@wandermaus4571
@wandermaus4571 7 месяцев назад
This channel is pure gold. 👍
@randomlegodev
@randomlegodev 7 месяцев назад
good golly motion canvas is lookin flippin polished!!!
@cerulity32k
@cerulity32k 7 месяцев назад
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.
@gareths
@gareths 7 месяцев назад
The flexing with motion canvas is staggering. I gotta watch this a few more times hold on
@konkitoman
@konkitoman 7 месяцев назад
Really good video, the video artifacts happens when you encode the video or when RU-vid transcodes the video?
@joshbishop
@joshbishop 7 месяцев назад
I am a simple man: I see aarthificial uploads, I click on video, I like video.
@ultimaxkom8728
@ultimaxkom8728 7 месяцев назад
Quality video as per usual.
@MrNickPlaysminecraft
@MrNickPlaysminecraft 7 месяцев назад
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 7 месяцев назад
Throughout this video, I never mentioned optimization as an argument. Premature abstraction/generalization is as problematic as premature optimization.
@sutsuj6437
@sutsuj6437 7 месяцев назад
03:26 Rust mentioned let's go!
@idedary
@idedary 7 месяцев назад
Now that you use Rust, I can finally understand the code showcases lol
@vividescence
@vividescence 7 месяцев назад
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)
@kaibennett9077
@kaibennett9077 7 месяцев назад
Motion Canvas is looking absolutely amazing!!
@Mempler
@Mempler 7 месяцев назад
The fact that you edited this video with code is kinda insane ngl
@aupaca
@aupaca 7 месяцев назад
This video is visually impeccable
@bluematter435
@bluematter435 7 месяцев назад
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?
@ukrustacean
@ukrustacean 7 месяцев назад
Rust + Bevy GameDev, we are cooking it hard!
@zactron1997
@zactron1997 7 месяцев назад
Would love to see your opinions on Bevy as one of its contributors! Regardless, excellent video as usual!
@yoloyojick
@yoloyojick 7 месяцев назад
After videos like these I being like: *holds his knees, curled up in a ball and mutters:* "Don't rewrite AnimatedSprite from scratch, don't rewrite AnimatedSprite from scratch, don't rewrite AnimatedSprite from scratch..."
@ShinSpiegel
@ShinSpiegel 7 месяцев назад
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.
@moritzscheuerle9447
@moritzscheuerle9447 7 месяцев назад
Very cool and fancy video, What fonts do you use?
@aarthificial
@aarthificial 7 месяцев назад
It's JetBrains Mono
@niuage
@niuage 7 месяцев назад
I wish I could double subscribe. Really good insights :)
@MQWalkman
@MQWalkman 7 месяцев назад
This is a beautiful video :))
@neomaxp
@neomaxp 7 месяцев назад
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.
@denn501
@denn501 7 месяцев назад
The animations on this video are sooooooooo good!!!
@jiro4559
@jiro4559 7 месяцев назад
you're very good at graphic design, mate
@CrabGuyy
@CrabGuyy 7 месяцев назад
Love me some functions and functional programming instead of classes and OOP
@mehmeh8883
@mehmeh8883 7 месяцев назад
Imagine a course with this level of production.
@FugaceFugite
@FugaceFugite 7 месяцев назад
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.
@micka190
@micka190 7 месяцев назад
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 RU-vid 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!
@tinysnaket
@tinysnaket 7 месяцев назад
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.
@CodingProjects_1
@CodingProjects_1 7 месяцев назад
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
@TinyLittleEnormous
@TinyLittleEnormous 7 месяцев назад
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.
Далее
Outsmarted 😂
00:20
Просмотров 2,7 млн
小丑调戏黑天使的后果#short #angel #clown
00:16
Part 5. Roblox trend☠️
00:13
Просмотров 3 млн
Outsmarted 😂
00:20
Просмотров 2,7 млн