Oh wow, did not expect to see myself in this video when I started watching it. Honored to be in it! Your wiring seems to be very similar to mine in the end haha, but super nice that you managed to fix my bug and upgrade the display (super cool idea). I only realized the issue after I finished building the whole thing. Did you manage to get your version to run at any decent speed? My clock had to be pretty slow to somewhat counteract all sorts of delays in the wiring, or otherwise it would feel super unresponsive.
I definitely took inspiration layout-wise (such as putting the apple system in the front rather than the back, genius move btw), but I really tried my best not to copy any circuits or logic directly so that I could still challenge myself. I’m also really happy I could fix the bug. I should say though, there does still exist an infinite snake bug in my game, but it involves 2 unlucky apple placements in a row, which is much more rare. It runs at about 100 redstone ticks per frame. I’m sure it could be optimized by maybe 50%, but beyond that you would probably need a different implementation. Also, now that you’re here, I’m really curious, how did you handle apples spawning on the snake? It seems like such a hard problem, but maybe I’m overthinking it. Cheers, and I’m glad you enjoyed the video!
@@mattbatwings Haha yes, I think the apple problem is really hard to deal with. I was surprised when you mentioned in the video that you messed with wiring to make the apple dodge the snake. But I did exactly the same thing you did in the end :) In my case the apple detection is not done in the cells themselves. I simply used the X/Y coordinates of the apple and of the head, and compared those against each other on each axis individually. So without conscious effort, my design already made sure that if the apple spawns in the body, it's just ignored. There is only one "proper" way of dealing with the apple that I could think of: detect when the apple spawned in the snake, and just respawn it. But of course if you're unlucky it could happen multiple times. So with a fixed clock rate this could break the game. This is the approach I took in the past for a minesweeper game though, where multiple mines could spawn on the same tile otherwise. Here the delay was no issue, since generation of the game could just take however long it needed to.
@@mattbatwings First of all congratulations for the creation and for the video. Might it make sense to compare the time between the creation of the apple and when it is eaten? If the apple is eaten immediately after being created then it means that it was created inside the snake, and therefore it must not stretch; otherwise, if some time passes, it means that it was created outside, so the snake can stretch when he eat the apple. I don't know if this solution makes sense or if it's feasible
Here's the slower but probably better solution: each time you need to spawn an apple, make a list of all the non-snake squares and then pick a random one out of that list. Then you can be certain that the apple cannot ever spawn inside the snake. This is also better than any 'repeat random gen' methods as those become hella inefficient when the snake starts covering up most of the screen. I think you'd find it really fun to try and make snake in actual code (without bugs), and you'd also learn a lot about how would be the best way to approach the game in redstone.
I'm honestly surprised by how well a lot of programming logic can be translated into redstone. It looks very difficult, but I'm still surprised by how small you manage to make these circuits!
if u think about it all your doing is taking the functionality of the code and making an ASIC (application specific integrated circuit) for it. your just taking the code that would run sequentially on the cpu and making it combinational logic
While the snake's cells were 4x4, I was thinking you could make the apple 2x2 (just don't light the outer ring). It was a little difficult to differentiate between the snake and the apple, just as it was difficult to differentiate the snake's position, but you fixed that and in my opinion made the apple a little easier to differentiate.
Matt is probably the most creative players ive ever seen. im genuinely impressed on how he made some of these things in minecraft. this is awesome and keep up the good work!
I really love the approach you take with these projects. How you encourage people to look up others who've done similar, to ask for help, in an environment where that sort of thing is often ridiculed for being "unoriginal" or "copying others". Thank you
You are my motivation to try something like this, thanks to you I managed to make a program that shows letters on a screen, I really enjoy your videos, you are the best.
What is almost humiliating is that I would struggle to CODE snake in a programming language like python (lol) Big congrats on the project and also on the way you make everything look so simple
@@Dimitri_gdr he’s using python as an example of a huge variation in “difficulty”, like comparing scratch to C, sure scratch is not the greatest but the point still stands
This was a really cool video. As someone currently in university studying software engineering seeing programming brought into my favourite game is really cool and all the logic you use really makes me think.
Amazing video! Long time subscriber :) As a game developer might I suggest that since you already tagged the "head" node you can change the collision detection from "snake node" to "head node".
i really love how you can understand most of the things you are saying withot ever having minecraft, just by simply having somewhat off an idea how computers work
if the snake grows when the apple is in the tail (like the original game), you don't need to worry if an apple spawns in the snake, because the tail will be in that position anyways
I know this is an older video, so you might not see this, but is there a way that you can just store the length of the snake, then make a new apple in a random empty square by picking a random number from 1-(board size - snake length), and finding the nth free pixel with some sort of serialized logic
I’m so glad that you always keep the computer science stuff in. I know some people just like to look at the build and don’t really care about how it works in-depth but as a fellow comp science student I really appreciate it
Wowza! Your builds keep getting more and more complex! This is amazing! A lot of the logic used for moving the snake I probably would have never thought of! Good job and keep up the good work!
If I'm not mistaken, there is still a theoretical bug that would make the snake not delete the tail. When the old problem happens, with an apple next to the head of the snake, then the snake eating it will cause the tail not to be removed, as it should. However, the next frame would have the segment right before the head where the tail arrow points, causing it to yet again not delete the tail. This would actually keep happening until the snake dies, but it is an edge case that might not actually cause the bug anyway. This is a great example of how seemingly complex games can be made (relatively) small if the person is good at computational redstone(like you). I always love seeing how you make these, and you vids are well made and easy to understand, making it feel like fun rather than learning, while still actually make us a little smarter in the process.
when i watch these videos i always marvel about how we've come so far in technology that we can make computers inside computers. and also it's fascinating to see how minecraft redstone shows us the complicated electrical mechanics that happen and work together inside a computer, to be able to play something so simple that we only need a couple lines of code in an IDE to make it.
I'm not a big redstone or programming guy but I think I came up with a decent system for snake off the top of my head. The only thing you need to keep track of would be the head position, and a value of each cell. The head logic is super simple being able to move into any space tracking a length value. each time you move into a space it first sees if the target space has an apple. If not, then then a new head is created in the direction given with a value of length+minimum snake size (possibly wrong but you'll see). Each time the snake moves, all segments except the head tick down by one, resetting to a blank space upon reaching 0. If the player is set to move into an apple, all current snake spaces and the head increase their length value by 1 before moving causing the end segment to linger for an extra movement tick. Then all you'd need to do is store the last direction of the head, and allow the snake to move onto snake spaces if their value is 1 so you can go where your tail just disappeared, and apply a loss and reset condition upon contact with the edge of the playspace or a snake tile and you should be done. Like I said I'm not versed with coding beyond old scratch programming but I thought of this and was proud of myself. Edit: I just watched further and realized that my method would also help with apple spawning as all you have to do is set the apple to not spawn on a space with a length value of more than 0, as well as making it not spawn after the snake "Moves" so you don't need to worry about it spawning on the space you are moving into.
No way! That's almost exactly how I coded Snake in Pascal back in high school. Didn't even need a separate memory, just used characters on screen. Though I did store tail coordinates explicitly like head coordinates. That also solves the problem of passing my the tail.
Instead of trying to find all the possible free spaces to spawn the apple in order to avoid the snake, you could just generate a random place, and check if its a snake, and if so then go back to generating a space. The one problem is that it's possible that it could keep randomly picking spots where the snake is, delaying the game. In a normal computer, this doesn't really matter because it can do this so fast it doesn't matter as it is unnoticeable, but I don't know if the Minecraft version would be fast enough for that.
Well, you don't need to wait for the apple to respawn so it can keep trying while the snake moves. That way there may be a short delay before the new apple appears but I doubt anyone would care as long as it doesn't lock up the entire game.
This is great! One issue I could see though, your fixing of the infinite growth bug was only partial, if you eat an apple right as you’re passing your tail it would still probably happen. That is a pretty specific scenario though so for the most part it works fine.
This inspired my to make snake in an online graphing calculator called Desmos. It was a fun little project and when I finished it I was just thinking, thanks Matt.
For the randomized apple, you could make it check for a collision like you did with eating the apple then if the collision is true pick a new random location. It will continually pick new random locations until it finds one that isnt on the snake.
For the apple you could have a set of 4 random positions which automatically update when the snake is over them, then when the apple needs to spawn, it gets the first position which isn't being generated at that moment.
XOR gate outputs true if only one out of 2 inputs is active. Maybe with that you could detect snake and apple being on the same pixel, and re randomize the apple.
Whenever I see older games like this being made in Minecraft it always makes me wonder if it would be possible to make a retro style console in game, like a NES or something, would definitely be cool to see!
nice one matt ! your ideas are just awesome and well executed as usual :) I also tried to do it, but I gave up because of the "apple on the snake" problem. also I was using an approach with signal strength counters for each pixel, but your approach is way better for doing the snake shape things you've shown at the end. damn I wish I had the same motivation to finish my projects
also I had an idea, you can use a xor gate with the apple signal and the snake signal, so that you can see the apple inside the snake. it's not very clean whatever
2in1 Bricking?! Lol! Never thought I'd see a LEGO youtuber watching Minecraft! But this isn't just Minecraft, it's magic! (At least it feels like that)
You make it look so easy, but it still is easier when you break it up into smaller steps for my 1 braincell to comprehend. Amazing video! Maybe you should consider doing Pac-man in the future, because its much harder
For the apple spawning on snake problem: you could just detect if that happens, and if it happens you move it to a random place. 2. Way: you could just make it so that the tail stops for one second if the HEAD and the apple have colison. Not the snake body (snake) but only the head.
It’s probably a bit clunkier, but you could flip all the arrows, then check if there are no arrows pointing to a cell to see if it’s the tail. It would use the following logic: always @(posedge clk) begin cell = cell && (pointed_at || eating_apple); end
Maybe a good algorith for apple spawning is to get a radnom number between 0 and the number of free squares, and then place the apple in that place (as if you are making the 2 dimensional array to one dimensional). Lets say if you have 12 empty squares and you get a 5 as the random number, you count to the fifth empty cell and place it there. if your screen is 4x4, your apple may go on [0,1], and for example if only the head of the snake is on top, you will go to [1,1]. Not sure if you can build that complicated random function with redstone, but if you can that may be the best way... || [x,y] P.S. Love your videos and tutorials! You are inspireing me to try and make more complicated redstone projects! Amazing work!
Instead of checking if both the head and the apple are in the same spot by using lots of and-gates, you could subtract the x and y coordinates of the snake from those of the apple and if the result is equal to 0, they are in the same spot.
You should continue with the snake project. But with a massive 6 sided display so the snake can go from face to face as it goes past the boarders. Maybe even have all the red stone inside the cube
You should've made a system that checks if the pixel it's landing on has a value for the arrow, because if it has an arrow hooked up, it surely is part of the snake...
i don't think the issue was detecting if it was the snake, but more of what to do afterwards. in traditional coding, simply repeating the code until it finds a spot not in the snake would work splendid, but here that potentially could cause big delays, especially if it is unlucky.
I recently made this game and I didn't want to look at anything on the internet. I had a similar approach to snake movement. the arrows are pointing in the opposite direction to GunMaster's arrows. At the beginning of the game I would know where the tail is, in the next step I set the coordinates of the new tail on the block to which the old tail is directed.
It brings me joy that Minecraft has put technology back 43 years for the next generation to relearn how to build computers. Thank you for leading the charge!
The problem with spawning apples inside the snake is that when the snake starts getting really long, the chances for them to spawn outside of it become smaller and smaller and you will probably end up moving aorund forever waiting for one to spawn at some of the few clear spaces. Amazing video nonetheless!
Here’s a good question everyone is wondering after I say this. What song was playing when he showed the movement system before he made the Apple system
I think it would be fun to make something like Pong where 2 players could go against each other. The screen would be split in half for each player. The only weird thing would be the ball. Just wanted to say this because I think it would be interesting. :)
Yet another Minecraft redstone marvel that is the best version I have ever seen. You, good sir, are extremely talented and should be immensely proud. Now please go work for Nasa or something
Oh wow, did not expect to see myself in this video when I started watching it. Honored to be in it!
Your wiring seems to be very similar to mine in the end haha, but super nice that you managed to fix my bug and upgrade the display (super cool idea). I only realized the issue after I finished building the whole thing.
Did you manage to get your version to run at any decent speed? My clock had to be pretty slow to somewhat counteract all sorts of delays in the wiring, or otherwise it would feel super unresponsive.
I definitely took inspiration layout-wise (such as putting the apple system in the front rather than the back, genius move btw), but I really tried my best not to copy any circuits or logic directly so that I could still challenge myself.
I’m also really happy I could fix the bug. I should say though, there does still exist an infinite snake bug in my game, but it involves 2 unlucky apple placements in a row, which is much more rare.
It runs at about 100 redstone ticks per frame. I’m sure it could be optimized by maybe 50%, but beyond that you would probably need a different implementation.
Also, now that you’re here, I’m really curious, how did you handle apples spawning on the snake? It seems like such a hard problem, but maybe I’m overthinking it.
Cheers, and I’m glad you enjoyed the video!
@@mattbatwings Haha yes, I think the apple problem is really hard to deal with. I was surprised when you mentioned in the video that you messed with wiring to make the apple dodge the snake.
But I did exactly the same thing you did in the end :)
In my case the apple detection is not done in the cells themselves. I simply used the X/Y coordinates of the apple and of the head, and compared those against each other on each axis individually. So without conscious effort, my design already made sure that if the apple spawns in the body, it's just ignored.
There is only one "proper" way of dealing with the apple that I could think of: detect when the apple spawned in the snake, and just respawn it. But of course if you're unlucky it could happen multiple times. So with a fixed clock rate this could break the game. This is the approach I took in the past for a minesweeper game though, where multiple mines could spawn on the same tile otherwise. Here the delay was no issue, since generation of the game could just take however long it needed to.
@@mattbatwings First of all congratulations for the creation and for the video.
Might it make sense to compare the time between the creation of the apple and when it is eaten?
If the apple is eaten immediately after being created then it means that it was created inside the snake, and therefore it must not stretch; otherwise, if some time passes, it means that it was created outside, so the snake can stretch when he eat the apple.
I don't know if this solution makes sense or if it's feasible
Here's the slower but probably better solution: each time you need to spawn an apple, make a list of all the non-snake squares and then pick a random one out of that list. Then you can be certain that the apple cannot ever spawn inside the snake. This is also better than any 'repeat random gen' methods as those become hella inefficient when the snake starts covering up most of the screen. I think you'd find it really fun to try and make snake in actual code (without bugs), and you'd also learn a lot about how would be the best way to approach the game in redstone.
@@Gekoloudios if that was only so simple lmfao
You should make the Bouncing DVD logo screensaver next, that would interesting
agreed
agreed
ModPunchTree did that on his cpu
Agreed
I'm pretty sure that's pretty much pingpong, which was done before, but with no gameplay.
I'm honestly surprised by how well a lot of programming logic can be translated into redstone. It looks very difficult, but I'm still surprised by how small you manage to make these circuits!
ayy it's mashpoe
Mashpoe! Please tell us there is going to be something similar to redstone in 4DMiner
(I think you already did but I can't remember lol)
if u think about it all your doing is taking the functionality of the code and making an ASIC (application specific integrated circuit) for it. your just taking the code that would run sequentially on the cpu and making it combinational logic
@@krajsyboys not yet, but I want to add it eventually!
@@Mashpoe yooooo! cant wait :)
While the snake's cells were 4x4, I was thinking you could make the apple 2x2 (just don't light the outer ring). It was a little difficult to differentiate between the snake and the apple, just as it was difficult to differentiate the snake's position, but you fixed that and in my opinion made the apple a little easier to differentiate.
thats what I was thinking as well
You and I thought alike
Matt is probably the most creative players ive ever seen. im genuinely impressed on how he made some of these things in minecraft. this is awesome and keep up the good work!
Oh boy I'm sure excited for some brain-wrecking explanations on how you made this *_thing_* move through redstone!
hopefully it's not assembly.
@@10F2C wouldn't that require some general purpose computer?
Really cool!
I just wish you had a separate video explaining the redstone more in-depth :)
Thanks! And I plan on it, eventually. Will be posted to my second channel instead of this one though.
@@mattbatwings what is your second chanle?
@@nateyingling9063 go to the “channels” tab on my profile , its called mattbatwings++
@@mattbatwings Make a tick-tack-toe and 4-in-a-row games
Amazing build, I love the inputs, very clean!
hi lightslicer
@@Gekoloudios wtf hi
@@LightslicerGP wtf y r u here
I think these minigames are really cool. I love these games.
I really love the approach you take with these projects. How you encourage people to look up others who've done similar, to ask for help, in an environment where that sort of thing is often ridiculed for being "unoriginal" or "copying others". Thank you
These videos really drive home how insanely complex computers really are, down to the binary level.
You are my motivation to try something like this, thanks to you I managed to make a program that shows letters on a screen, I really enjoy your videos, you are the best.
5:22 that bruh was personal 💀
What is almost humiliating is that I would struggle to CODE snake in a programming language like python (lol)
Big congrats on the project and also on the way you make everything look so simple
python is a bad language
@@kgaming7599 You have the word "gaming" in your name, how would you know?
@@kgaming7599 python is slow but it's very easy to learn it and use it
@@Dimitri_gdr he’s using python as an example of a huge variation in “difficulty”, like comparing scratch to C, sure scratch is not the greatest but the point still stands
@@mysingingmonstersfan1023 I said Python is a *bad* language, not a *difficult* language
Amazing video, your attention to detail and logical explanations are amazing
I feel like if this guy dueled mumbo-jumbo in a Redstone one V one he would dominate it
This was a really cool video. As someone currently in university studying software engineering seeing programming brought into my favourite game is really cool and all the logic you use really makes me think.
Amazing video! Long time subscriber :)
As a game developer might I suggest that since you already tagged the "head" node you can change the collision detection from "snake node" to "head node".
Really impressive! As always.Very well explained and so interesting to watch!
Btw, congrats for the 100k!
Great job!! I learned a lot, like if a lever powers a redstone lamp, it lights up...
i really love how you can understand most of the things you are saying withot ever having minecraft, just by simply having somewhat off an idea how computers work
if the snake grows when the apple is in the tail (like the original game), you don't need to worry if an apple spawns in the snake, because the tail will be in that position anyways
Waww, we could build this ad a minigame on the survival world of our channel!!! Good job bro!
Can't wait to see the video!
The drop in the showcase was so good
I know this is an older video, so you might not see this, but is there a way that you can just store the length of the snake, then make a new apple in a random empty square by picking a random number from 1-(board size - snake length), and finding the nth free pixel with some sort of serialized logic
I’m so glad that you always keep the computer science stuff in. I know some people just like to look at the build and don’t really care about how it works in-depth but as a fellow comp science student I really appreciate it
Wowza! Your builds keep getting more and more complex! This is amazing! A lot of the logic used for moving the snake I probably would have never thought of! Good job and keep up the good work!
If I'm not mistaken, there is still a theoretical bug that would make the snake not delete the tail. When the old problem happens, with an apple next to the head of the snake, then the snake eating it will cause the tail not to be removed, as it should. However, the next frame would have the segment right before the head where the tail arrow points, causing it to yet again not delete the tail. This would actually keep happening until the snake dies, but it is an edge case that might not actually cause the bug anyway. This is a great example of how seemingly complex games can be made (relatively) small if the person is good at computational redstone(like you). I always love seeing how you make these, and you vids are well made and easy to understand, making it feel like fun rather than learning, while still actually make us a little smarter in the process.
Genious! Awesome quality, KEEP UP THE GRIND🎉!
You honestly make such great videos, taking us through the whole process and all, abolutely love em!
when trying to create snake in code for myself, I came up with the timer method which I still think is the best but I guess this works aswell
Hi ogamero
how does that work tho
@@XENON2028 you can search it up
when i watch these videos i always marvel about how we've come so far in technology that we can make computers inside computers. and also it's fascinating to see how minecraft redstone shows us the complicated electrical mechanics that happen and work together inside a computer, to be able to play something so simple that we only need a couple lines of code in an IDE to make it.
I'm not a big redstone or programming guy but I think I came up with a decent system for snake off the top of my head. The only thing you need to keep track of would be the head position, and a value of each cell. The head logic is super simple being able to move into any space tracking a length value. each time you move into a space it first sees if the target space has an apple. If not, then then a new head is created in the direction given with a value of length+minimum snake size (possibly wrong but you'll see). Each time the snake moves, all segments except the head tick down by one, resetting to a blank space upon reaching 0. If the player is set to move into an apple, all current snake spaces and the head increase their length value by 1 before moving causing the end segment to linger for an extra movement tick. Then all you'd need to do is store the last direction of the head, and allow the snake to move onto snake spaces if their value is 1 so you can go where your tail just disappeared, and apply a loss and reset condition upon contact with the edge of the playspace or a snake tile and you should be done. Like I said I'm not versed with coding beyond old scratch programming but I thought of this and was proud of myself.
Edit: I just watched further and realized that my method would also help with apple spawning as all you have to do is set the apple to not spawn on a space with a length value of more than 0, as well as making it not spawn after the snake "Moves" so you don't need to worry about it spawning on the space you are moving into.
I love your videos so much. They are really interesting, and the way you explain things helps me understand more complicated stuff.
these are really cool but I always wish you'd show longer clips of them working in the showcase
Jamattack jumpscare
No way! That's almost exactly how I coded Snake in Pascal back in high school. Didn't even need a separate memory, just used characters on screen.
Though I did store tail coordinates explicitly like head coordinates. That also solves the problem of passing my the tail.
I love how I can’t understand a single thing he says about redstone but it just sounds so cool.
Instead of trying to find all the possible free spaces to spawn the apple in order to avoid the snake, you could just generate a random place, and check if its a snake, and if so then go back to generating a space. The one problem is that it's possible that it could keep randomly picking spots where the snake is, delaying the game. In a normal computer, this doesn't really matter because it can do this so fast it doesn't matter as it is unnoticeable, but I don't know if the Minecraft version would be fast enough for that.
Well, you don't need to wait for the apple to respawn so it can keep trying while the snake moves. That way there may be a short delay before the new apple appears but I doubt anyone would care as long as it doesn't lock up the entire game.
minecraft ticks works the same way it doesnt cares the computer
@@cubodix It would still halt the snake game though, depending on implementation.
This is great! One issue I could see though, your fixing of the infinite growth bug was only partial, if you eat an apple right as you’re passing your tail it would still probably happen. That is a pretty specific scenario though so for the most part it works fine.
as always your creation are mind blowing
keep going it's some of the best minecraft content a have watched
When you said movement done I jumped out of my seat *YOU ARE INSANE* keep it up
The showcase beginning though, I will love that forever
This inspired my to make snake in an online graphing calculator called Desmos. It was a fun little project and when I finished it I was just thinking, thanks Matt.
For the randomized apple, you could make it check for a collision like you did with eating the apple then if the collision is true pick a new random location. It will continually pick new random locations until it finds one that isnt on the snake.
as a programmer(a real one not those newbies), I say just the logic is amazing and you're super intelligent in algorithm, Wish the best
For the apple you could have a set of 4 random positions which automatically update when the snake is over them, then when the apple needs to spawn, it gets the first position which isn't being generated at that moment.
XOR gate outputs true if only one out of 2 inputs is active. Maybe with that you could detect snake and apple being on the same pixel, and re randomize the apple.
Is the secret trick to becoming a god at restone to create a superflat of sandstone? lol, great video!
Whenever I see older games like this being made in Minecraft it always makes me wonder if it would be possible to make a retro style console in game, like a NES or something, would definitely be cool to see!
I've seen Sethbling do an Atari back in the day using command blocks iirc. However the caveat was that frames took forever to render.
Great work. i built a redstone computer based on your content. love your videos
You are an absolute fucking genius man. You have an extraordinary talent and we are so blessed to have this shared with us.
Awesome due. I love how you can explain it like it is just some simple thing, but its actually brilliant.
Love it! It's just a big setup of nonsense to a redstone illiterate like me, but somehow I grasp the logic behind it. An other masterpiece.
New video, new C418 Sweden remix utilized
Love the videos bro, and I appreciate the mark rober music in the background while you're explaining things lol.
mattbatwings never ceases to amaze us
I loved this video. I always pause everything I'm doing and watch it. Love the content!
nice one matt ! your ideas are just awesome and well executed as usual :)
I also tried to do it, but I gave up because of the "apple on the snake" problem.
also I was using an approach with signal strength counters for each pixel, but your approach is way better for doing the snake shape things you've shown at the end.
damn I wish I had the same motivation to finish my projects
also I had an idea, you can use a xor gate with the apple signal and the snake signal, so that you can see the apple inside the snake. it's not very clean whatever
There are so many small details you have to consider... It's mindblowing that you managed to do it with just Redstone
2in1 Bricking?! Lol! Never thought I'd see a LEGO youtuber watching Minecraft! But this isn't just Minecraft, it's magic! (At least it feels like that)
You make it look so easy, but it still is easier when you break it up into smaller steps for my 1 braincell to comprehend. Amazing video! Maybe you should consider doing Pac-man in the future, because its much harder
These videos are so well edited, he knows the line between things to keep and things to cut out of the video so well.
I love the new style of showing the build process before the showcase, keep it up, also great video and idea in general!
You always manage too make ideas I will never think of! Great work!
For the apple spawning on snake problem: you could just detect if that happens, and if it happens you move it to a random place.
2. Way: you could just make it so that the tail stops for one second if the HEAD and the apple have colison. Not the snake body (snake) but only the head.
'Why is it getting so big?!' Legendary quote, love these videos makes me wanna play mc again like i used to😋
The mitochondria is the powerhouse of the cell
you made me have will to learn programing logic again!! great video!
every video i get more impressed
good job, this is way beyond my capabilities
It’s probably a bit clunkier, but you could flip all the arrows, then check if there are no arrows pointing to a cell to see if it’s the tail. It would use the following logic:
always @(posedge clk) begin
cell = cell && (pointed_at || eating_apple);
end
Super amazing and inspirational as always!
The video format is just perfect.
Insane work!!!!!
Can't wait the next one.
Maybe a good algorith for apple spawning is to get a radnom number between 0 and the number of free squares, and then place the apple in that place (as if you are making the 2 dimensional array to one dimensional). Lets say if you have 12 empty squares and you get a 5 as the random number, you count to the fifth empty cell and place it there. if your screen is 4x4, your apple may go on [0,1], and for example if only the head of the snake is on top, you will go to [1,1]. Not sure if you can build that complicated random function with redstone, but if you can that may be the best way... || [x,y]
P.S. Love your videos and tutorials! You are inspireing me to try and make more complicated redstone projects! Amazing work!
I hope there will be rhythm with the red stone. Like the one on the playing field, the rhythm while dancing on top of it. Of course with a music box.
Instead of checking if both the head and the apple are in the same spot by using lots of and-gates, you could subtract the x and y coordinates of the snake from those of the apple and if the result is equal to 0, they are in the same spot.
I love your builds!
You should continue with the snake project. But with a massive 6 sided display so the snake can go from face to face as it goes past the boarders. Maybe even have all the red stone inside the cube
You should've made a system that checks if the pixel it's landing on has a value for the arrow, because if it has an arrow hooked up, it surely is part of the snake...
i don't think the issue was detecting if it was the snake, but more of what to do afterwards.
in traditional coding, simply repeating the code until it finds a spot not in the snake would work splendid, but here that potentially could cause big delays, especially if it is unlucky.
I recently made this game and I didn't want to look at anything on the internet. I had a similar approach to snake movement. the arrows are pointing in the opposite direction to GunMaster's arrows. At the beginning of the game I would know where the tail is, in the next step I set the coordinates of the new tail on the block to which the old tail is directed.
Very nice dedication! This was amazingly complicated but interesting and fascinating!
Idea: make a boxing game with just Redstone
Mattbatwings is the best person I know when it comes to redstone like this
Great job! This is absolutely incredible. This seems so complex.
I called it: computational redstone running some popular game from the 80's
you explained everything so well and made it so simple and I can't even figure out how to use repeaters 💀
Fundy: I made snake with mods!
Mattbatwings: mods?
I thought for the apple you would just reuse your 2048 block-spawning circuit, but this way is a bit more fun!
It brings me joy that Minecraft has put technology back 43 years for the next generation to relearn how to build computers. Thank you for leading the charge!
Wow this snake game is really amazing(especially seeing the final result at the END of the video)
Mattbatwings makes us all smile! Let's give him the attention he deserves!
The problem with spawning apples inside the snake is that when the snake starts getting really long, the chances for them to spawn outside of it become smaller and smaller and you will probably end up moving aorund forever waiting for one to spawn at some of the few clear spaces.
Amazing video nonetheless!
Seeing that you've released a video is always a pleasant surprise
congrats on 100k. Also I can't stop watching craftymasterman's bigg vault video. you were just so hilarious lol
Here’s a good question everyone is wondering after I say this. What song was playing when he showed the movement system before he made the Apple system
Vsauce: mattbatwings here
when the apple spawns on the snake, you could just eat it BUT only extend the snake if the apple overlaps with the head
For apple spawning what if you used your 2048 method where it checks is touching snake then find another location
I think it would be fun to make something like Pong where 2 players could go against each other. The screen would be split in half for each player. The only weird thing would be the ball. Just wanted to say this because I think it would be interesting. :)
Congratulations with new aMAZEing project and 100k subs!
Yet another Minecraft redstone marvel that is the best version I have ever seen. You, good sir, are extremely talented and should be immensely proud. Now please go work for Nasa or something
Nearly 100k subs keep up the good work 👏
Guys he was 90% done I swear
Really? (First btw)