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!
*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?"
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.
@@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.
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...
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.
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.
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)
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: ruclips.net/video/XpwMUxygJg4/видео.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.
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! :)
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.
@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.
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
RUclips 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
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!
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.
@@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.
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.
its a great mental exercise (even if its bad coding practice) because it shows a deep knowledge of the game engine / object hierarchy and render / sprite stuff. very fun!
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.
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
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.
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
Very impressive. Though I found it somewhat entertaining how fast you don't even have to move anymore. I let it sit for a while to see what would happen. Eventually I started a trek downwards to the point where the game was running at 5 FPS. At this point the orbs were no longer working correctly and this allowed me to walk into an enemy resetting the game. 10/10
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 enjoyed this as i also keep making oneliners, one of my biggest was like 200+ characters i think and it was one statement too. they usually ruin readability but if a code doesnt have to be readable since it's that simple, oneliner can make the code look better because functions wont look like a large block of text
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!
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.
to stop the moon walking, add an additional line (or use semicolons) to add a flipped function on the animation, so anytime a enemy is moving a different direction, the animation is flipped.
it still counts as lines of code when your program adds 500 lines to achieve "uh ill just copy and paste the skeletons". yeah thats the program adding in more code behind the scenes
@@PlayWithFurcifer Yeah, I read some of those. I think they kind of missed the point of the whole video. This is both entertaining to watch for someone who knows programming and I often fool around with code golf too, but it's great video for showing how much the game engine itself can do when it comes to game development. I've only used Unity, but since the recent scandals I've been thinking about changing to Godot. I thought it was a great video👍
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
>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
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
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 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?"
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.
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
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
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!
"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)
I've never seen someone turn an entire game into a code golf challenge, amazing
The AnimationPlayer is my favorite code editor.
:D
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.
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
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
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.
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
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.
This was a super fun video! I was rooting for you all the way!!
Thank you very much :D
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.
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!
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: ruclips.net/video/XpwMUxygJg4/видео.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.
holy shit i thought this would be clickbait I was not expecting you guys to actually pull this off. hella impressive
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! :)
:)
This is awesome, keep it up! Best Godot channel
Thanks! :D
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.
@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.
Very creative solutions, I adored this video!
Thank you very much!
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 :)
Killjoy programs Vampire Survivors in 10 lines of code
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.
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
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.
I actually thought of trying to make a game like it as an exercise so this is pretty helpful!
Amazing :)
player spawns enemies..
Hero: Why do I keep making my own life harder?
RUclips 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
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.
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
What a fun challenge! That animation player use is so hacky, I love it haha
Glad you enjoyed it :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.
That was an outstanding video - very entertaining and informative!
Thank you very much!
Jeez that's insane... Challenge crushed! Congratulations!
>make the whole thing with a gui
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.
Thats freaking mental wow, your expertise shines so much wow. I'm still super new to your ch and its amazing!!
Thank you :D
Wow, really impressive guy and gal, well done!
Thank you!
Really liked this video! I appreciated the explanations for the code shortening as well. Lets get more!
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.
Oh please do more of these! The format is excellent!
This one was impressive, 10 lines for all that.... WOW
Thanks!
its a great mental exercise (even if its bad coding practice) because it shows a deep knowledge of the game engine / object hierarchy and render / sprite stuff. very fun!
This was awesome to watch! Great optimization of code!
Glad you enjoyed it! :)
you could disable the physics in the animation:
me, using function to disable the component : OMG that's genius!
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?
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.
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
Moonwalking skeletons are definitely a feature!
Accidental feature :D
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.
If it works, then it’s not ugly, it’s beautiful.
wow
you used the animation player to animate the animation player
And i hope it does not feel weird about that
this is absolutely crazy....pretty much an entire SIMPLE game with just TEN lines of code WOWWW
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.
Very impressive. Though I found it somewhat entertaining how fast you don't even have to move anymore. I let it sit for a while to see what would happen. Eventually I started a trek downwards to the point where the game was running at 5 FPS. At this point the orbs were no longer working correctly and this allowed me to walk into an enemy resetting the game. 10/10
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?".
you could use "move_and_slide(Input.get_vector("left", "right", "up", "down")) " for the player movement wouldn't save a line but its better code
incredible video, this is really inspiring to me! thank you!
This animation speed - game speed feels like Skyrim physics based on FPS. It ends with flying horsecarts
I enjoyed this as i also keep making oneliners, one of my biggest was like 200+ characters i think and it was one statement too.
they usually ruin readability but if a code doesnt have to be readable since it's that simple, oneliner can make the code look better because functions wont look like a large block of text
lmfao. The Scholar's Make.
That is impressive as hell.
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!
You just earned a sub sir
I have seen one of your video before
It was good too and will be helpful for me ❤
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
Really cool challenge. Great way to push your knowledge of the engine!
Glad you enjoyed it!
thanks, you inspired me to download godot and start learning.
i want to someday make a survivors-like in Godot and this video gave me a lot of useful info, thx!
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.
to stop the moon walking, add an additional line (or use semicolons) to add a flipped function on the animation, so anytime a enemy is moving a different direction, the animation is flipped.
it still counts as lines of code when your program adds 500 lines to achieve "uh ill just copy and paste the skeletons". yeah thats the program adding in more code behind the scenes
It does not count. I decide what counts, and this video is about code WE WRITE. Now touch some grass x)
@@PlayWithFurciferNo wonder your channel died with this shitty attitude xd Perhaps learn to not clickbait?
a nerd telling people to touch grass. you gender bending zoomers are so wacky@@PlayWithFurcifer
Great video, you got a sub. As someone who's never used Godot before, you've actually got me interested!
This video is awesome, would love to see more videos like it.
Thank you, we will keep this in mind :D
Nice as a golf challenge like fitting a game into a QR code, or in the boot sector of a floppy but not really maintainable or clear.
Congratulations on not making each line indefinitely long
Ternary operator would technically fit your rules.
Thank you
@@PlayWithFurcifer Yeah, I read some of those. I think they kind of missed the point of the whole video. This is both entertaining to watch for someone who knows programming and I often fool around with code golf too, but it's great video for showing how much the game engine itself can do when it comes to game development.
I've only used Unity, but since the recent scandals I've been thinking about changing to Godot.
I thought it was a great video👍
That was freaking awesome.
This is why there are suddenly 5000 of these games after VS gained a smidge of popularity.
I just learnt that you can call functions from the animation player, that's so cool and powerful!
Great video
That was really entertaining AND also surprisingly educating :D
Awesome work and nice video :) Please more of it!
As a Phyton developer,
Now I am just shaking my head left and right
This is interesting, because I could totally see someone easily making the game in Godot in about 100 lines with all the bells and whistles.
Well, it does change a lot when you can fit more than one command on a line of code!
ooooo this is fun gamified coding lesson!!!! great job bridging the gap!
This is seriously impressive stuff. Will be very easy to debug this game.
I only understood about half of this, but very cool concept of a video!
PlayWithFurcifer: I can run this game in 10 lines of code.
The Engine in the background doing al the work: Wait wut?
LOL, I just start learning godot and game making. Didn't know there is such challenge in game making, love it and thank you!! 🤣👍
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