2023 Year in Review
13:37
8 ай бұрын
Every Variant in Godot 4
49:28
9 ай бұрын
Пікірлер
@OrGames_net
@OrGames_net 15 сағат бұрын
hey, I am also always wondering why we do not have good Christian games or even movies. I'm with you on that, may Jesus bless you and more people with the same feeling and desire to create Christian content. I'm gonna join your discord and follow your work. Congrats on your decision, I believe everything is gonna work, and all the Glory to our Lord! 🙏🏽
@psyboyo
@psyboyo 23 сағат бұрын
A KZbin video with the title Every Control Node Explained AND it's not in "Five Minutes"??? What's going on here??? 🤔
@Pov-p9c
@Pov-p9c Күн бұрын
And if you posted Google Play on your game, yours?
@Pov-p9c
@Pov-p9c Күн бұрын
How to make a game on Minecraft this year?
@AYouTubeUser349
@AYouTubeUser349 8 күн бұрын
(laughs in virtualbox drag and drop)
@Lucas-gg9yb
@Lucas-gg9yb 11 күн бұрын
Great vídeo! One thing that is not clear to me in the your code: How are you obtaining this ijk value? Are you using local or global basis?
@SDGGames
@SDGGames 10 күн бұрын
The sliders are just a vector3 and are pre-normalized. Once I have my numbers I want, I normalize this (make it length of 1), and build a new quaternion in global space using Quaternion(ijk, w). I then apply it to the box when I'm ready to rotate. I, J, and K are aligned with the X, Z, and Y axis in world space.
@HomeFrogGames
@HomeFrogGames 11 күн бұрын
For some reason my original comment didn‘t go through but I wish you the best of luck my friend, and we‘ll stay in touch all the way through.
@mr.condekua6141
@mr.condekua6141 13 күн бұрын
I hope creating video/games (pun intended) gives as much fun as it does to me. The performance video of minecraft was awesome
@SDGGames
@SDGGames 12 күн бұрын
Thanks! That was a fun one :)
@michaw7408
@michaw7408 14 күн бұрын
Some of the posts in your game are absolutely hilarious! It really made me smile. But mostly I'm writing to thank you for making this video - I'm working on my own clicker game (my first game!) and it was great to hear your thoughts about making it.
@GeneralChrisGaming
@GeneralChrisGaming 16 күн бұрын
So I do I apply this to godot trash animation playernso it shuts up and leaves me alone
@Cr4y7-AegisInquisitor
@Cr4y7-AegisInquisitor 21 күн бұрын
Interesting. What time period are you thinking of? I am curious what Christian SciFi would look like.
@SDGGames
@SDGGames 21 күн бұрын
Honestly, I would love to do a colony sim in the vein of the C.S Lewis Space trilogy. Right now, I'm doing a simple game with a Subnautica style story - again set in the age of space travel. In the medium term, I do want to explore parables, so I'd be doing all sorts of time periods, characters, etc. A few of those might be entirely fictional worlds with non-human protagonists.
@Cr4y7-AegisInquisitor
@Cr4y7-AegisInquisitor 21 күн бұрын
@@SDGGames Awesome!
@PlaysWithSquirrels32
@PlaysWithSquirrels32 22 күн бұрын
Excited to see you go full steam ahead!
@sniper44x
@sniper44x 22 күн бұрын
Oh wow, can I help make games with you, I work in unreal engine, I know HTML, Java, css, SQL, all c languages, and am pretty proficient in blueprints but not as much as I'd like to be - I'm Christian and I've been making games part time I've finished and am releasing one, I am excellent at level design and I love this idea, and anyway I can help id be happy to help any way I can, god bless you and I pray for your success, I'm gonna try to see if I can get the same type of grant and maybe we could collaborate honestly I've just wanted to make sure I am set for that long to do my game dev full time
@SDGGames
@SDGGames 22 күн бұрын
Yeah, I'm still figuring out a lot of details, but I definitely want to start collaborating more and more. Right now, the best place to connect is Discord (I have a link in the video description), but I have email, etc. too if you want to connect that way. My current project is a short game I'm trying to complete in 3 months. I'll be posting updates as I go
@theoathman8188
@theoathman8188 22 күн бұрын
Christian game developers are not common because their audience is often limited to a specific demographic. However, if your goal is to use game development as a form of missionary work, this limitation may not be a concern. You could potentially find a good balance between profitability and outreach. I understand the struggle of reconciling the creation of games-a medium that can seem hedonistic-with the greater purpose of life. As a Moslem, my current solution to this existential dilemma is to apply what I've learned from game development to create apps that help people reflect on the creation of Allah. Good luck to you and May god grant us Guidance Amen.
@SDGGames
@SDGGames 22 күн бұрын
That's a good point about hedonism. I think that the taboos of the 90s played a large part in the way the industry grew. It's almost impossible to make art if you don't value the medium, and the "games are evil, but I should make one so my kids have something to play" approach results in a mediocre product at best. I love games, and believe that they have great potential. I think that great artists see the best in the art medium, and use their tools to make something beautiful, regardless of what others are doing.
@gracebrown9209
@gracebrown9209 22 күн бұрын
Cool!
@andrewsneacker1256
@andrewsneacker1256 22 күн бұрын
If you promote creationism you're an evil human.
@blackfun4448
@blackfun4448 22 күн бұрын
I'm a Muslim and i think the courage to choose this path considering how toxic some online trolls can get is admirable . Good luck!
@ACatWithACrown
@ACatWithACrown 23 күн бұрын
Glory be to God! Continue to walk and develop with the lord, brother ❤
@collinvisser7108
@collinvisser7108 23 күн бұрын
Neat - good luck
@SDGGames
@SDGGames 22 күн бұрын
Thanks!
@bartudev566
@bartudev566 23 күн бұрын
I was using godot to make games now I use it to make my own tool. But I'm catholic ,) I'm not fulltime developer though so good luck ❤
@InnerEagle
@InnerEagle 23 күн бұрын
I'm quite agnostic about the real thing, but the fact you found your niche it will boost your career very fast, keep at it bro
@JacobTeach
@JacobTeach 23 күн бұрын
I'm agnostic, but I like what Jesus stood for. I'm interested to see how you approach this.
@ericturner2477
@ericturner2477 23 күн бұрын
I'm not a Christian, but I wish you all the best.
@SDGGames
@SDGGames 23 күн бұрын
Thank you!
@user-rx3xl7zn1u
@user-rx3xl7zn1u 23 күн бұрын
Congratulations!
@SDGGames
@SDGGames 23 күн бұрын
Thank you!
@joshuadillon8893
@joshuadillon8893 23 күн бұрын
Praise God! I will pray that you achieve your dream. I would love to hear how of how you got to this point and finally decided to take the leap? looking forward to more content.
@SDGGames
@SDGGames 23 күн бұрын
Thanks, I initially recorded a much longer video, but decided to shorten the announcement for now. Mainly, a lot of prayer :) I accepted a call to full-time vocational ministry 13 years ago, and have been looking for my place to serve ever since. The past 5 years have been a slow process of me falling in love with this industry and deciding to work here. A major moment for me was the failed launch of No Man's Sky. People weren't just looking for a game, they were looking for a better world than this one. I saw the desperation amid the hype, and wanted to make a game that pointed toward Heaven. No game can be the destination itself, but games can a sign that points to real sources of hope. I've been giving each year a theme in my end-of-year review videos. 2024 is my year of completion, and I secretly hoped that it would mean I go full time, though I didn't tell anyone (even my wife 🤪). I've been praying over the industry, but I started praying for my place in it more and more, and eventually started fasting "until I'm a full time Christian game developer." 1.5 months later, I was laid off. TL:DR, the decision made itself once I was let go. I already knew about the CLIMB program, so I signed up, and got funded. It's scary, but I keep reminding myself that my dad owns the planet, and the safest place to be is in the center of His will.
@randomchannel-px6ho
@randomchannel-px6ho 25 күн бұрын
I have serious questions about an education system that seems to go out of its way to hide this from most studentd becaude "its too complex"
@SDGGames
@SDGGames 25 күн бұрын
It's definitely an issue with the system, but I wonder how many teachers actually understand these concepts themselves. If you get a degree in teaching, then you will never have the practical knowledge that comes from using math in a career. If you get a degree as an engineer or programmer, then you can make at least 3X a teacher's salary by not teaching. I feel like schools should welcome retired professionals to help teach the advanced concepts. Most of my college professors had a lot of experience in the workplace, and it showed. They were 10X easier to understand than the math professor because they were able to go beyond the theory and root the concepts in real projects they worked on. All that to say, the system is broken, but I don't think it's malicious. Just underfunded and overregulated
@DatYouTubeGuy
@DatYouTubeGuy Ай бұрын
What about different biomes?
@monamibob
@monamibob Ай бұрын
No fair you tricked me into learning
@maraudingmudlarker5318
@maraudingmudlarker5318 Ай бұрын
Could you please explain your approach on unit testing and how you go about doing it for your games?
@SDGGames
@SDGGames Ай бұрын
I'm using unit tests for large or complex systems. While it's technically possible to test everything, I find things like player controller easier to just test manually. For systems with clear jobs (for example, saving and loading, or game state transitions), I write the unit tests first, then fill out the function so the test passes. For big, messy systems, I'll often do a prototype first, then re-make that particular system with a Test-Driven Development approach. I've found that it's quicker to throw away the prototype than it is to try to find and fix all of the bugs in a first draft
@AlanDarkworld
@AlanDarkworld Ай бұрын
Thank you for the very nice and visual explanation. Even though quaternions are obviously superior in functionality, godot makes it a little too hard to use them. You mentioned that multiplying quaternions is the same as adding eulers. How are we supposed to know that? Why isn't there a "combine_with(....)" function on the quaternion class that properly deals with the math and exposes it in a language a non-mathematician can deal with? Not your fault of course :)
@SDGGames
@SDGGames Ай бұрын
It's a hard balance to strike. If you re-invent the wheel, then the math people get upset because the function doesn't match reality. But, if you don't study the math, the game engine functions don't make much sense. I'm not sure what the ideal solution would be...
@makebreakrepeat
@makebreakrepeat Ай бұрын
Nice work! Love what you're doing with the rhythm! Scratches that geometry wars or super hexagon itch.
@SDGGames
@SDGGames Ай бұрын
Thanks! I'll have to revisit those games again :)
@victorianomas89
@victorianomas89 Ай бұрын
Fantastic conclusion. Will keep it in mind. I think it can be applied to most long term projects.
@aaronschneider7191
@aaronschneider7191 Ай бұрын
Keep up the amazing work. Quick question. My girlfriend is into video game development (wants to make a point and click adventure) Any good ideas on encouraging her as she works on it? Thanks
@SDGGames
@SDGGames Ай бұрын
Good question! A lot of the advice would overlap with advice for healthy communication in general. If she's really excited, share the moment. "I clicked on this rectangle and a text box appeared" sounds silly, but a lot of game development breakthroughs aren't glamorous. If she's stressed/self critical, offer encouragement. Sid Meyer talks a lot about the "Valley of Despair" partway through development. The game WILL suck, probably for a long time. It takes a lot of faith and determination to make it through that phase to the other side. When she's thinking critically and looking for honest feedback, give it. Specific things like "Did you notice that that text box isn't aligned" is 100X more valuable than the generic "Yeah, it looks good." I usually ask my wife for one positive and one negative. I want to know that she likes it, but I also want to make it better. Also, this is a later in development thing, but if you have the ability, you should definitely try to bring her game to life in some way. Physical memorabilia is just so special, even a card with a drawing of her character on it (or something similar) would be pretty magical. I designed my own channel logo, and I keep asking my wife to get an Etsy shop to put it on a hat for my birthday :)
@prazza-vas-normandy
@prazza-vas-normandy Ай бұрын
You are the best!!
@htspencer9084
@htspencer9084 Ай бұрын
So its basically internal RPCs? Very interesting concept! A few things for people who are interested in this topic could look at: Command Game Design Pattern seeds in your random number generator These won't solve the core issue you were having, being that out of the box Godot 2D physics is not deterministic but they're great resources to make your game more replay friendly. Another thing you could do in your case, and I'm sure you're already doing this is perhaps storing the diffs between logging events, as opposed to the entire object each time. Also worth looking at curves/other generalisations to interpolate between longer logging moments, whilst also allowing for "tent-pole" events such as collisions to be logged in between. Also, I hope to all that is heavenly that you did the logging on a separate thread!
@SDGGames
@SDGGames Ай бұрын
Thanks for the pointers. I'm probably going to keep this as a debugging feature for now, so performance doesn't matter (as I can run in Movie Maker mode which ignores framerate). I'll have to look into RPCs more, though. If I need to squeeze more out of the feature, there are definitely a lot of tweaks I can make. It's pretty poorly optimized right now, but it works well enough for the applications
@htspencer9084
@htspencer9084 Ай бұрын
@@SDGGames that's very valid, an OK enough solution now is far superior to a perfect solution never :)
@htspencer9084
@htspencer9084 Ай бұрын
Slight non-sequitur but I was wondering if there's plans to include the modular godot mod support from your common libraries repo into your "Godot game template with unit tests and CI" repo?
@SDGGames
@SDGGames Ай бұрын
Eventually, I might want to try something like that. The game template is my working starting point, so I'm trying to only include addons that are useful for my next project. Right now, I'm primarily trying to finish and release a game. After that, I'll apply all lessons learned to the game template so I can skip as much boilerplate as possible for the next one. Eventually, accessibility features, mod support, etc. would be a part of the project. I would want to fully revisit mod support again in Godot 4, I feel like there might be a better solution than what I had for Godot 3. So, not today, but yes, eventually
@anonviking6969
@anonviking6969 Ай бұрын
very high quality content!
@lv99redchocobo37
@lv99redchocobo37 Ай бұрын
how did you make the flippers? if you used a tutorial could you point me to it?
@SDGGames
@SDGGames Ай бұрын
They're just an animatable body, and I rotated them with the lerp function. The trick is that the object origin is exactly where I want the rotation to happen, so I don't have to translate anything, just rotate. I did link the source code in the video description, if you want to take a further look. It's under player_elements/flipper.gd
@strgn1360
@strgn1360 Ай бұрын
God, this is way too good XD
@lildannyz
@lildannyz Ай бұрын
Great video. Thank you
@simco1534
@simco1534 2 ай бұрын
It kinda sounds like you wanted clips of before and after, which screen capture would've done (and it seems like the original footage used, the cars are out of sync because randomness). But you wanted them to be the exact same so developed multiplayer lol.
@SDGGames
@SDGGames 2 ай бұрын
Yup, pretty much 😅
@dbatdev
@dbatdev 2 ай бұрын
a beast of a vid. thank you!
@cvabds
@cvabds 2 ай бұрын
I bet you can't do that on templeOS haha, I will only subscribe to you if you like this and confirm that
@SDGGames
@SDGGames 2 ай бұрын
I think templeOS support is the number 1 priority for Godot's development team right now...
@titaniumtomato7247
@titaniumtomato7247 2 ай бұрын
Shame about the unpredictable physics, nice solution though!
@du0lol
@du0lol 2 ай бұрын
Couldn't you just make a pseudorandom number generator like in Doom? That way you'd be able to keep track of every "random" number in your game, which is how demos work in Doom.
@SDGGames
@SDGGames 2 ай бұрын
That was the first approach. The problem is that the physics aren't deterministic, so I can pull a number off of the generator a frame early or late compared to the recording. If two events happen "simultaneously," they will trade numbers on different replays, causing events to diverge. Doom had the benefit of an in-house physics engine that could be shaped to fit the RNG tools. I'm using Godot's default physics, which don't appear to work exactly the same way twice.
@du0lol
@du0lol 2 ай бұрын
@@SDGGames oh, I guess it went over my head during the vídeo, then. I thought you'd start by setting a look-up table (like in Doom) to drive the random number generator, só that's why I thought you hadn't tried it. Thanks for clarifying though! Also, very cool idea.
@SDGGames
@SDGGames 2 ай бұрын
@@du0lol Yeah, I was relying on fixed-seed randomness, so no need for a LUT. The numbers are generated as they are consumed, but the state guarantees that the numbers are the same each time. If I wanted, I could print them to a table, and see what the next number would be.
@RightInfinity
@RightInfinity 2 ай бұрын
Your first approach, recording inputs and fixed RNG, is essentially how Doom handles it's demos and multiplayer. Why it didn't work for you, I can only guess.
@SDGGames
@SDGGames 2 ай бұрын
Yeah, I think it was a timing issue. The physics engine determines when events happen, which determines the order in which numbers are consumed. I think Doom was simpler in its physics, I'm trying to work with a physics engine that I didn't write.
@GonziHere
@GonziHere 2 ай бұрын
What you are looking for is determimistic physics btw.
@SDGGames
@SDGGames 2 ай бұрын
Fair enough! I think I would have spent more time making my own physics engine, though :)
@Hexcede
@Hexcede Ай бұрын
@@SDGGames Another thing you could do for physics is just interpolate some samples of the position. Essentially your puppeteer code, but you only save the position/rotation every so often, and then you can linearly interpolate the state. This also applies to other values, so long as they are continuous values that are changing in small amounts over multiple frames like position and rotation. E.g. sudden changes in position, velocity, etc can break it and requires more samples at those points (when the instantaneous change happened). If something teleports, you obviously want that mechanic to be preserved, so deciding when you would interpolate something is definitely a factor to consider though it can be automatically determined in a number of ways such as testing if linearly interpolating the value would actually reproduce similar results during the recording stage (so you don't linearly interpolate stuff when it would produce visual discrepencies above some threshold) or simply manually specifying what things should be interpolated and which ones shouldn't. Things like the thruster animation can technically be ""interpolated"" too if you encode them as a continuous value, for example encoding the state of the thruster as a function of time (rather, you would be encoding the thruster animation in a way that allows you to interpolate time and derive the animation frame from the time). Obviously, this isn't necessary in this case because this is deterministic behaviour, plus it has a very low impact when it's not quite in sync, but, it does express how versatile interpolation can be for reproducing a lot of complicated game behaviours in a replay.
@JacobTeach
@JacobTeach 2 ай бұрын
It's funny because I've always made multiplayer games and that's the solution I would've thought of first. It shows that people with different backgrounds come to very different initial conclusions.
@SDGGames
@SDGGames 2 ай бұрын
Yeah, the process of discovery is interesting. I haven't made a multiplayer game before, so I didn't have that tool in my toolbox yet. I believe that really old games did use captured inputs in their attract modes, which is why I started there.
@user9999-z
@user9999-z 2 ай бұрын
why not use a distance horizons mod mechanic
@Drakhis
@Drakhis 2 ай бұрын
I'm late to the party but I just want to say for all those who will try to make their minecraft clone in GdScript or optimize this benchmark : Use static typing! I edited this project with static typing and I had a huge increase in my FPS even though I'm just starting the optimizations. It went from an average of 52 fps using meshes to an average of 85 using the very same settings! Edit : Went past 100 fps with a few more optimizations.