*adjusts monocle* The tape is known as "duct" tape as it was originally used in taping ducts together. Duck tape is a brand of tape that was made much later because they realized more people said "duck tape" than "duct tape". Fun!
I like not having to choose when saying it out loud since it sounds the same in most accents. I do not like when someone thinks they're correcting me by clarifying. In those situations it helps to have both a branded and non branded roll in your back pocket at all times. Just in case.
@@kevnerx I like the idea of having a roll of both and when someone asks, you ask back with a little coy trailing off in your voice, "Oh, sorry... did you want duc.... tape or duc... tape?"
This is brilliant. Not only do you demonstrate the workflow and thought process for coding and editing, you do so with a smile. In other words, your video made me feel like I can do it too. Thank you guys!
Literally if it had to ability to change position as opposed to it being set screen locations it would be perfect (which I hear they are working on, so in theory it IS perfect).
Only three days ago I started learning game development and godot... I loved it from the first instance ( pun intended), and earlier today, I realized that the animation player is unbelievably amazing. This video confirmed my hypothesis.
Holy roguelike, Batman! This is a fun watch. I love the fact that you don't just write out the short code, but show how it's "typically" done then explain your compression process line by line.
@@PaulSpades It's amazing how many things turn out this way. I remember seeing somebody proving that the MOVE processor instruction itself is turing complete, and writing a transpiler that makes your entire program use only MOVE, just because they can. I don't doubt at all that the animation player is turing complete.
Wow you are amazing. I didn't think the baseline goal was possible (I expected a janky mess that worked on technicalities, because 10 lines is so few) and you actually made the game more detailed over time. Just love it.
Ha, this reminds me of the completely-codeless flappy bird I made a few months ago. Specially the tricks with AnimationPlayer for the leveling system. Perhaps I should make a video about it...
I loved the video! The concept is super cool and I think it's a great way to showcase little tricks. The animation player is super useful and could be even better. One day, we'll be able to make entire games just with anim players x)
Wow! When I first heard of this challenge, I thought that there was no way to do it in Godot because of the (minimal) boilerplate that would cost at least two lines! Bravo! :)
@5:08 You could have also used the walrus operator to both assign to the variable and use the variable as a parameter to add_child. You could even have compressed your entire spawner script to a single line by using a tuple along with the walrus operator, for example add_child((enemy := load(...), enemy.set_position(...))[0]). Tuples are probably your best method to merge multiple expressions into a single line of code without using semicolons.
First time watching this channel! You may have just won me over to Godot! Of course make many more videos like this! It greatly shows how you can do things in more than one way and clean up code!
@@lbaxel9122 experimenting with novel approaches are how new ways to do something are learned. A 10 line survival game no matter how minimalistic it is, is a big deal and worth of attention.
Hey guys, hope you liked the video! Could we have used less lines? By the way, this is how what happens if we actually try to make a *good* Vampire survivors like: th-cam.com/video/XpwMUxygJg4/w-d-xo.html
you have more then one Script, they all can share one Script a KinematicBody2D. a dictionary can hold many variables in one. not sure if Godot has this but in python dictionaries can even hold functions.
If you use godot and using godot doesn't count as using lines, modifying it wouldn't count as using lines too. So you could work out makros into the engine - this way you could define a makro for "extends Node2D; _physics_process(delta):" and can save a line with MAKRO [stuff that is made] in the enemy/player node. (afaik godot doesn't have makros because they are stupid)
Yeah, I legit thought they were gonna write a helper file and just just call ten functions. But then they did this crazy shit instead lmao. I'm impressed.
I clicked into this thinking there must be some way it's click bait. I thought for sure I was going to see a bunch of semi-colons ... well color me impressed, I can't believe you actually pulled it off!
Its incredibly bad programming and would result in a very ugly line, but you could use the same script for the player and enemy, and just use a ternary operator based on the parent nodes name to determine whether it does the player movement or enemy movement. Thats two lines in one!
TH-cam just recommended this to me now, sorry for being late :( But, holy! It's actually insane how you guys managed to do this in so little code. This is a super inspirational video
@@BassSpleen by that logic go ahead and count the kernel too :P `extends` is not `#include`, it's simply saying which class to extend from, not inserting any code. just like calling a file `.png` isn't "relying on hundreds of lines of code" in your image viewer.
At my school one of the projects we had to do was to make a game of tic-tac-toe in python, however this was boring as I already knew how to code. A kid named Joshua and I got into a competition to complete the project in the fewest line of code. In the end we had user input and the code printed error statements and continued running properly with false inputs. the code also refreshed infinity meaning you could win one game then instantly roll into the next game. We managed to get it down to 2 lines in total. The first line defined the board and the second line was a very long in line while statement that contained all the code for actually running the game.
Loved that you showed the usual way of doing before reducing the number of lines, I'm more of a Unity dev so I don't get everything but really cool!Don't think I could have done it it 10 lines because of the using statements, Unity will require more than this
definitely thought there would be 500k+ subscribers for this channel, but when i saw replies on every comment, i knew something was up. extremely well made video, good job
This was extremely cool and impressive. While I program, I've never done game development, so I was really surprised at how much you can do with so little.
it would be cool to se how much of a difference another 10 lines would make. Even if just to really show how many lines go into making a game of any kind.
So bigger libraries would just make this "less code" lol seems like we're splitting hairs on semantics but this was a fun watch. The real take away is # of lines of code don't really mean much at all. If you truly needed to worry about how "expensive" a line of code was, you wouldn't touch this game dev kit in the first place lol but its a quirky example for sure
it's a nice challenge, but the engine does a lot of heavy lifting for you. So at the end there's a lot more than 10 lines of code :D The exercice is really nice though. I really liked that you clearly showed the thought process of "this is what I think I need, now how can I do it more efficiently". This is something that is often not shown in computer science classes anymore, and we ends up with junior developers who try to argue that a single page website showing one product requires at least 10-15mb of javascript :D
I mean, the whole "in 10 lines" is a little bit cheated considering all the lines of code that godot already provides you with in the background (like, doing basically all the graphics and such). So this is really more of a "Can we do it in Godot with 10 extra lines of code in addition to everything that Godot provides us with already?".
Oh hey this is cool. Much cooler than that one video where a guy made a game in one line of code, but he just pretty much wrote lots of lines without any line breaks.
ONE. IDEA. PER. LINE. That is how you measure a line. If you are "compressing" 10 lines into one, you are putting more than one idea on that line, break it up. Vampire survivors in 100 lines is just as good of clickbait, AND your code won't look unreadable, bonus!
Props for counting "extends [Node]" as a line in eveey script. I'd have accepted 10 written lines. Seeing as you didn't write extends node, nor can you delete extends node I could see an argument for ignoring it.
wow this is incredible for 10 lines of code. takes a lot of coding and optimization knowledge to be able to break something down to 10 lines and still be functional like this.
And then there’s me who attempted to make Tetris in python and somehow it had like 8k lines and still didn’t work
haha having a game engine is a huge difference!!
That's rough buddy
I mean they had a game engine
Imagine what these guys could do if they realized you can write more than 10 lines of code!
Jokes aside, I enjoyed this a lot!
...wait, you can do that?!
thank you :)
@@PlayWithFurcifer Pssst. 0x10 lines.
Yeah, you can use up to *11* lines! @@PlayWithFurcifer
im pretty sure i needet more then 10 lines for my first "hello world" programm, and at least 9 or em where not needet :D
Well, now they have a top 50 game on Steam, lol
>write whole game
>put it into a library
>call it in 1 line
basicly
Your comment squished to one line: "import minecraft"
I disliked
#include
int main()
{
game.start();
return 0;
}
EZ.
@@LordVandor1 why do u have italian death note intro
I know game dev is just a bunch of duck tape and hacks, but this takes that to a whole new level!! Nice work.
Lots of duck tape here :>
Nivea und Panzertape in der matrix, genius duo! @@PlayWithFurcifer
*adjusts monocle* The tape is known as "duct" tape as it was originally used in taping ducts together. Duck tape is a brand of tape that was made much later because they realized more people said "duck tape" than "duct tape". Fun!
I like not having to choose when saying it out loud since it sounds the same in most accents. I do not like when someone thinks they're correcting me by clarifying. In those situations it helps to have both a branded and non branded roll in your back pocket at all times. Just in case.
@@kevnerx I like the idea of having a roll of both and when someone asks, you ask back with a little coy trailing off in your voice, "Oh, sorry... did you want duc.... tape or duc... tape?"
The moonwalking skeleton is honestly just the right amount of jank to give a game like this a charm. This is a pretty crazy undertaking, good job
This is brilliant. Not only do you demonstrate the workflow and thought process for coding and editing, you do so with a smile. In other words, your video made me feel like I can do it too. Thank you guys!
Thank you so much :)
I bet you can do it!
I created a game in this genre recently for a game jam, probably had 20x the code and honestly not much more functionality. Very impressive work.
It's kinda crazy how versatile the AnimationPlayer is
I love it
Literally if it had to ability to change position as opposed to it being set screen locations it would be perfect (which I hear they are working on, so in theory it IS perfect).
Kinda makes me think about which parts of my game i should move to the animation player.
@@milesparker557 new challenge, make a game only in the animation player.
Only three days ago I started learning game development and godot... I loved it from the first instance ( pun intended), and earlier today, I realized that the animation player is unbelievably amazing. This video confirmed my hypothesis.
More of this please! Stuff like this seems perfect for understanding every nook and cranny of the engine.
Thank you! :)
Son: Dad can we buy Vampire survivors?
Dad: Give me 7 mins Son
And that's how you learn that less lines of code doesn't mean good coding. Very impressive video!
I've never seen someone turn an entire game into a code golf challenge, amazing
Holy roguelike, Batman! This is a fun watch. I love the fact that you don't just write out the short code, but show how it's "typically" done then explain your compression process line by line.
"10 lines of code" (+ 10 million lines of dependencies)
you say this as if its a bad thing :D
try coding without an editor, OS, compiler,...
@@PlayWithFurcifer People do it's called bare metal programming, how do you think your operating system kernel exists in the first place...?
@@joshbond8391 I have not said it's impossible, i have said he should try and make a game without these tools. Read before you smartass my dude :)
2000 assembly instructions (+ 1 billion microcode instructions)
Soon the AnimationPlayer will be powerful enough to BE the engine. It's the emacs of nodes 🤣.
Maybe we can get this thing turing complete :>
@@PlayWithFurcifer Well, it does loops, there's a frame counter, input and output trough variables, and it can branch. I think it is complete.
@@PaulSpades It's amazing how many things turn out this way. I remember seeing somebody proving that the MOVE processor instruction itself is turing complete, and writing a transpiler that makes your entire program use only MOVE, just because they can. I don't doubt at all that the animation player is turing complete.
Wow you are amazing. I didn't think the baseline goal was possible (I expected a janky mess that worked on technicalities, because 10 lines is so few) and you actually made the game more detailed over time. Just love it.
Thank you!
It still is a janky mess :D
Ha, this reminds me of the completely-codeless flappy bird I made a few months ago. Specially the tricks with AnimationPlayer for the leveling system.
Perhaps I should make a video about it...
I would love to see how you did it!
Do eet
This was a super fun video! I was rooting for you all the way!!
Thank you very much :D
The AnimationPlayer is my favorite code editor.
:D
Next video : make a game using animation players only :D
I mean....maybe its possible
Given how powerful the animation player on its own is it shouldn't be that hard :p
This is so cool! You should try moving all of the code into a single script to get some extra lines (no need for so many “extends ___”)
What a devilish idea, i love it
Yeah, if it's a single script you also don't need that include statement at the top every time either.
Very creative solutions, I adored this video!
Thank you very much!
holy shit i thought this would be clickbait I was not expecting you guys to actually pull this off. hella impressive
This is awesome, keep it up! Best Godot channel
Thanks! :D
I loved the video! The concept is super cool and I think it's a great way to showcase little tricks. The animation player is super useful and could be even better. One day, we'll be able to make entire games just with anim players x)
Thank you very much :D
A commenter made flappy bird with only animation players sooooo ....
@@PlayWithFurcifer That's cool! I might try the challenge one day ^^
I think we already can!
For the moonwalking skeletons, you might be able to utilize a key in the animator to scale X with directional movement on the X axis.
Wow! When I first heard of this challenge, I thought that there was no way to do it in Godot because of the (minimal) boilerplate that would cost at least two lines! Bravo! :)
:)
You just earned a sub sir
I have seen one of your video before
It was good too and will be helpful for me ❤
@5:08 You could have also used the walrus operator to both assign to the variable and use the variable as a parameter to add_child. You could even have compressed your entire spawner script to a single line by using a tuple along with the walrus operator, for example add_child((enemy := load(...), enemy.set_position(...))[0]). Tuples are probably your best method to merge multiple expressions into a single line of code without using semicolons.
Jeez that's insane... Challenge crushed! Congratulations!
First time watching this channel! You may have just won me over to Godot!
Of course make many more videos like this! It greatly shows how you can do things in more than one way and clean up code!
Amazing :)
I love doing challenges like this. The voice overs also trump any asmr, and the two personalities and witty jokes are super fun to listen along with.
That was an outstanding video - very entertaining and informative!
Thank you very much!
Really liked this video! I appreciated the explanations for the code shortening as well. Lets get more!
This is way more educational than one might expect
It is interesting but not good practices, so not that much
@@lbaxel9122 experimenting with novel approaches are how new ways to do something are learned. A 10 line survival game no matter how minimalistic it is, is a big deal and worth of attention.
just stumbled into this video...
this is art. congratulations.
Hey guys, hope you liked the video! Could we have used less lines?
By the way, this is how what happens if we actually try to make a *good* Vampire survivors like: th-cam.com/video/XpwMUxygJg4/w-d-xo.html
That's maybe cheating but you could use godot's visual scriping
2:37 - you can use: Input.get_axis("positive_action", "negative_action") instead
@Karlsson Just try to program without an engine/compiler/interpreter and see how it goes
You could've used Input.get_vector() for the movement code. It handles both axes.
you have more then one Script, they all can share one Script a KinematicBody2D.
a dictionary can hold many variables in one. not sure if Godot has this but in python dictionaries can even hold functions.
Thats freaking mental wow, your expertise shines so much wow. I'm still super new to your ch and its amazing!!
Thank you :D
What a fun challenge! That animation player use is so hacky, I love it haha
Glad you enjoyed it :D
player spawns enemies..
Hero: Why do I keep making my own life harder?
If you use godot and using godot doesn't count as using lines, modifying it wouldn't count as using lines too. So you could work out makros into the engine - this way you could define a makro for "extends Node2D; _physics_process(delta):" and can save a line with MAKRO [stuff that is made] in the enemy/player node. (afaik godot doesn't have makros because they are stupid)
What a scary idea
@@PlayWithFurcifer it is scary, dirty and stupid, but would save a line of code.
@@delqyrus2619 Thats the spirit!
Or extend everything you need by default.
Yeah, I legit thought they were gonna write a helper file and just just call ten functions.
But then they did this crazy shit instead lmao. I'm impressed.
I clicked into this thinking there must be some way it's click bait. I thought for sure I was going to see a bunch of semi-colons ... well color me impressed, I can't believe you actually pulled it off!
Its incredibly bad programming and would result in a very ugly line, but you could use the same script for the player and enemy, and just use a ternary operator based on the parent nodes name to determine whether it does the player movement or enemy movement. Thats two lines in one!
That sounds like a great idea to me
Go doesn’t have ternary afaik
@@welovedotnet this is in GDScript, which Im fairly sure does
@@bigbodge nice!
@@welovedotnet Godot has ternary, it's written as "var value = 7 if should_be_seven else 9" as an example.
incredible video, this is really inspiring to me! thank you!
Wow, really impressive guy and gal, well done!
Thank you!
Oh please do more of these! The format is excellent!
TH-cam just recommended this to me now, sorry for being late :(
But, holy! It's actually insane how you guys managed to do this in so little code. This is a super inspirational video
Just got it in the recommendations as well. Holy shit, I'm flabbergasted!
same!
Its in an engine which means it is actually already using far more than 10 lines of code
Thanks to this fantastic video, I was introduced to my new love, Vampire Survivors.
That's genuinely amazing. A suggestion is that "extend node_type" calls shouldn't count towards your LOC.
Thank you! We will think about that :)
@@PlayWithFurcifer for my own selfish reasons pleaseeeee make another one of these challenges.
@@BassSpleen I can see that point but I think focusing on 10 user written lines would truly showcase some powerful ideas in Godot.
@@BassSpleen by that logic go ahead and count the kernel too :P
`extends` is not `#include`, it's simply saying which class to extend from, not inserting any code.
just like calling a file `.png` isn't "relying on hundreds of lines of code" in your image viewer.
Really cool challenge. Great way to push your knowledge of the engine!
Glad you enjoyed it!
Its one thing to write the scripts as 10 lines of script code, but what about the rest of the code generated inside the editors and drag/drop UI's?
And how many lines of code does Godot have?
That was a great challenge :D
Thank you very much!
>make the whole thing with a gui
That was freaking awesome.
I actually thought of trying to make a game like it as an exercise so this is pretty helpful!
Amazing :)
At my school one of the projects we had to do was to make a game of tic-tac-toe in python, however this was boring as I already knew how to code. A kid named Joshua and I got into a competition to complete the project in the fewest line of code. In the end we had user input and the code printed error statements and continued running properly with false inputs. the code also refreshed infinity meaning you could win one game then instantly roll into the next game. We managed to get it down to 2 lines in total. The first line defined the board and the second line was a very long in line while statement that contained all the code for actually running the game.
Loved that you showed the usual way of doing before reducing the number of lines, I'm more of a Unity dev so I don't get everything but really cool!Don't think I could have done it it 10 lines because of the using statements, Unity will require more than this
This was awesome to watch! Great optimization of code!
Glad you enjoyed it! :)
Killjoy programs Vampire Survivors in 10 lines of code
This one was impressive, 10 lines for all that.... WOW
Thanks!
Great video! Enjoyed it!
Thank you very much!
definitely thought there would be 500k+ subscribers for this channel, but when i saw replies on every comment, i knew something was up. extremely well made video, good job
Thank you very much. I guess there still lies a bit ahead of us :D
This was extremely cool and impressive. While I program, I've never done game development, so I was really surprised at how much you can do with so little.
it would be cool to se how much of a difference another 10 lines would make. Even if just to really show how many lines go into making a game of any kind.
So bigger libraries would just make this "less code" lol seems like we're splitting hairs on semantics but this was a fun watch. The real take away is # of lines of code don't really mean much at all. If you truly needed to worry about how "expensive" a line of code was, you wouldn't touch this game dev kit in the first place lol but its a quirky example for sure
it's a nice challenge, but the engine does a lot of heavy lifting for you. So at the end there's a lot more than 10 lines of code :D
The exercice is really nice though. I really liked that you clearly showed the thought process of "this is what I think I need, now how can I do it more efficiently". This is something that is often not shown in computer science classes anymore, and we ends up with junior developers who try to argue that a single page website showing one product requires at least 10-15mb of javascript :D
Unless you are coding in assembly, anything you make could be argued as being given heavy assistance by the platform/language.
man I hate the modern internet, literally every website takes so much ram cuz they all use these big ass wasteful frameworks and are not optimized.
This video is awesome, would love to see more videos like it.
Thank you, we will keep this in mind :D
wow
you used the animation player to animate the animation player
And i hope it does not feel weird about that
Love the dual narration
I mean, the whole "in 10 lines" is a little bit cheated considering all the lines of code that godot already provides you with in the background (like, doing basically all the graphics and such).
So this is really more of a "Can we do it in Godot with 10 extra lines of code in addition to everything that Godot provides us with already?".
I hereby award you this award.
Love this concept
ooooo this is fun gamified coding lesson!!!! great job bridging the gap!
That was really entertaining AND also surprisingly educating :D
Awesome work and nice video :) Please more of it!
This is great! So creative! 😊
Thank you :)
Congratulations on not making each line indefinitely long
Awesome video! Great job!
If it works, then it’s not ugly, it’s beautiful.
I love the sprites in this game!
this is absolutely crazy....pretty much an entire SIMPLE game with just TEN lines of code WOWWW
lmfao. The Scholar's Make.
That is impressive as hell.
Awesome video, thank you!
lol. You are amazing teachers, great tutorials! I am learning how to belly laugh!
thank you very much :)
Oh hey this is cool. Much cooler than that one video where a guy made a game in one line of code, but he just pretty much wrote lots of lines without any line breaks.
youtube threw this to my algo. banger. this was so cool.
ONE. IDEA. PER. LINE. That is how you measure a line. If you are "compressing" 10 lines into one, you are putting more than one idea on that line, break it up. Vampire survivors in 100 lines is just as good of clickbait, AND your code won't look unreadable, bonus!
We just count lines differently :D
Happy new year!
Great video, you got a sub. As someone who's never used Godot before, you've actually got me interested!
Props for counting "extends [Node]" as a line in eveey script. I'd have accepted 10 written lines. Seeing as you didn't write extends node, nor can you delete extends node I could see an argument for ignoring it.
thanks, you inspired me to download godot and start learning.
PlayWithFurcifer: I can run this game in 10 lines of code.
The Engine in the background doing al the work: Wait wut?
this reminds me of my aseembly assignments back in uni where it took hundreds and hundreds of lines to make a block move and collide with other blocks
wow this is incredible for 10 lines of code. takes a lot of coding and optimization knowledge to be able to break something down to 10 lines and still be functional like this.
damn this is really good, keep up the great work!
Excellent video. Definitely consider doing more.
Thank you, we will think about that :)
That's just impressive!
Thank you! :D
Moonwalking skeletons are definitely a feature!
Accidental feature :D
you guys are amazing, love the job
Very cool! thank you for sharing!
:)
i want to someday make a survivors-like in Godot and this video gave me a lot of useful info, thx!
Not bad but let's not forget the "atleast ten thousand engine code lines"
Close one, we almost forgot that we opened an engine! Good thing youtube commenters are there to the rescue