If anyone decides to extend this project for another framework (gaming or not) then I'd love to hear about it! Source code: github.com/ourcade/ecs-dependency-injection Game Architecture (Unite 2017): ruclips.net/video/raQ3iHhE_Kk/видео.html Dependency Injection (JSConf 2015): ruclips.net/video/0kTq77ViAek/видео.html 💬 Join us on Discord: discord.gg/p3vfese 🐤 Follow us on Twitter: twitter.com/OurcadeHQ 😎 Subscribe to this channel!
I have been always curious about DI and ECS. And I tried to understand it, but always failed because it was too obscure to me. But I wanna give it a one more try watching this video, because you are so confident about them. I like the way you think about game programing. Thanks for sharing your thought.
This is one of those extremelly useless things that programmers like to do just for the sake of it, and I love it! I mean... 3D and React were just Flex
I was looking for something to run on my personal portfolio that is lightweight and can interact with DOM elements. I know three.js exist but for 2D using canvas what js engines would you recommend with overdoing it?
This is a nice example of "defensive programming", the fact you used this approach when developing browser games make the video quite unique. But the question is: should we? At the moment, you are mainly composing the update pipeline with the rendering functions of the engines. But games are more than just rendering assets. What would happen when you try to create scenes, UIs, animations, tilemaps, controls, sounds effects, particles, etc.? Should we use the modules provided with the game engines, and so build each of those several times? Or should we only rely on external librairies for everything?
Thank you! And that’s a good question. I don’t actually think building a game to run on more than 1 framework is necessary but that’s kinda like the extreme use for DI. It would be more helpful to use it for services within a game that is itself tightly tied to the framework It makes sense to use what the framework already provides for things like tilemaps, animations, etc One place where separating the logic from the rendering that is more common in games would be server authoritative multiplayer games where both server and client run the same simulation and can share the logic code if structured this way Thanks for this discussion!
@@supertommy Indeed, the authoritative multiplayer game server example makes sense. You'd only need the ECS and Physics system on the server side then, so no duplication of the other modules. But the other use for DI would be to allow to move easily from a game engine to another. It could make sense to program a game this way if you want, for example, to move from Phaser 3 to Phaser 4 whenever it is available for production... not sure about this one though. Anyway, your videos are opening perspectives, keep up the good job!
Almost every tutorial that I've seen about DI used overly-complicated examples that made me think that DI was some kind of fancy design pattern that I didn't have enough experience to understand, but little did I know I've been doing it ever since I learned how to compose objects from other objects in Java...
If anyone decides to extend this project for another framework (gaming or not) then I'd love to hear about it!
Source code: github.com/ourcade/ecs-dependency-injection
Game Architecture (Unite 2017): ruclips.net/video/raQ3iHhE_Kk/видео.html
Dependency Injection (JSConf 2015): ruclips.net/video/0kTq77ViAek/видео.html
💬 Join us on Discord: discord.gg/p3vfese
🐤 Follow us on Twitter: twitter.com/OurcadeHQ
😎 Subscribe to this channel!
I like your humor, lol. Thanks for the info, this is something I will definetelly look up when I free up some time from projects. Cheers!
I have been always curious about DI and ECS. And I tried to understand it, but always failed because it was too obscure to me.
But I wanna give it a one more try watching this video, because you are so confident about them. I like the way you think about game programing.
Thanks for sharing your thought.
You are welcome! Glad the video inspires you to give ECS and DI one more try!
This is one of those extremelly useless things that programmers like to do just for the sake of it, and I love it!
I mean... 3D and React were just Flex
lol, yes, basically a stunt for a video 🤣
Will be using phaser + bitECS + Brandi for my indie game project. I have 2 years of runway. Wish me luck!
Good luck!
I'm halfway through my phaser game and then I see this 😭
lol, everything or game we make/work on is practice for the next one!
This is also not the only or “right” way
That's awesome. Great Job !!! It's very usefull
Thanks! Glad to hear it!
I was looking for something to run on my personal portfolio that is lightweight and can interact with DOM elements. I know three.js exist but for 2D using canvas what js engines would you recommend with overdoing it?
This is a nice example of "defensive programming", the fact you used this approach when developing browser games make the video quite unique.
But the question is: should we?
At the moment, you are mainly composing the update pipeline with the rendering functions of the engines. But games are more than just rendering assets. What would happen when you try to create scenes, UIs, animations, tilemaps, controls, sounds effects, particles, etc.? Should we use the modules provided with the game engines, and so build each of those several times? Or should we only rely on external librairies for everything?
Thank you!
And that’s a good question. I don’t actually think building a game to run on more than 1 framework is necessary but that’s kinda like the extreme use for DI.
It would be more helpful to use it for services within a game that is itself tightly tied to the framework
It makes sense to use what the framework already provides for things like tilemaps, animations, etc
One place where separating the logic from the rendering that is more common in games would be server authoritative multiplayer games where both server and client run the same simulation and can share the logic code if structured this way
Thanks for this discussion!
@@supertommy Indeed, the authoritative multiplayer game server example makes sense. You'd only need the ECS and Physics system on the server side then, so no duplication of the other modules.
But the other use for DI would be to allow to move easily from a game engine to another. It could make sense to program a game this way if you want, for example, to move from Phaser 3 to Phaser 4 whenever it is available for production... not sure about this one though.
Anyway, your videos are opening perspectives, keep up the good job!
thanks for sharing, at least I'm bit know about DI, ECS and another framework like vitejs, or outside regular framework I used it
You are welcome! I think it’s good to know about what’s out there even if we don’t personally use it
Keeps the brain supple!
thank you superTommy
You are welcome!
good stuff
Thanks!
I like your video so much, I hope you can update more, I like these novel things very much, I hope there will be more explanations
Thanks! Definitely plan on sharing the experience and findings from building OSZG
Wow! I didn't know this concept at all, I'm going to research it, thanks again for your video it was great!
Thanks! Glad it introduced you to a new concept!
Almost every tutorial that I've seen about DI used overly-complicated examples that made me think that DI was some kind of fancy design pattern that I didn't have enough experience to understand, but little did I know I've been doing it ever since I learned how to compose objects from other objects in Java...
So ECS?
I think that ECS is definitely necessary but also dependency injection.
Two words: GOL DURN! 🤩🤩🤩
Thanks! 🤗🤗
better use Dart and Flutter
I like Flutter
@@supertommy but?
😅