I Coded Snake but there's a Catch...

Поделиться
HTML-код
  • Опубликовано: 8 июл 2022
  • So... in my latest indie game I coded snake except that the roles get reversed.
    In this video I show off my most recent indie game Inverse Snake. It is a small game I coded where the player plays snake as the food instead of the snake. If you like this video, make sure to subscribe and leave a comment down below if you have any suggestions on what I should make next.
    LINKS
    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
    Support the channel: ko-fi.com/codenoodles
    Itch.io: codenoodles.itch.io/
    GitHub: github.com/OfficialCodeNoodles
    █▀ █ █ █▄▄ █▀ █▀▀ █▀█ █ █▄▄ █▀▀
    ▄█ █▄█ █▄█ ▄█ █▄▄ █▀▄ █ █▄█ ██▄
  • НаукаНаука

Комментарии • 2,3 тыс.

  • @CodeNoodles
    @CodeNoodles  Год назад +4443

    Due to popular demand the thumbnail has been changed to the proper grammar (you're instead of your). So, you're welcome! Also, thanks for the support, guys!

    • @waffler-yz3gw
      @waffler-yz3gw Год назад +282

      i found this video after the change and im really nitpicky so i probably would have ignored this video if the thumbnail grammar was wrong, thank you

    • @wertyjax
      @wertyjax Год назад +141

      I actually ignored the video because of that, now watching it

    • @irok1
      @irok1 Год назад +31

      Good save

    • @waffler-yz3gw
      @waffler-yz3gw Год назад +76

      @@wertyjax your spelling, sir.

    • @dagreatleaf9003
      @dagreatleaf9003 Год назад +52

      Change it to your’re

  • @ethanisnotsleeping
    @ethanisnotsleeping Год назад +4327

    This would make for an interesting multi-player game pitting snakes against the food
    People playing as snakes compete to become the biggest, whereas the food tries to stay alive as long as possible or kill all the snakes

    • @CodeNoodles
      @CodeNoodles  Год назад +515

      So many good ideas!

    • @kayagorzan
      @kayagorzan Год назад +141

      Like a weird battle royale I presume

    • @johnes4882
      @johnes4882 Год назад +257

      @@kayagorzan I assume it would be more like an .io game where there are no definite rounds and when you die you just go back to the bottom of the leaderboard

    • @JoooooooooooooooooooooooooooJ
      @JoooooooooooooooooooooooooooJ Год назад +11

      Reminds me of Pac-Man VS

    • @Ucatty2
      @Ucatty2 Год назад +7

      Snakes and Voles! 😁

  • @gabrieljreed
    @gabrieljreed Год назад +416

    “After picking fights with the standard library for a while”
    Pretty much sums up my coding experience lol

  • @peterkiss1204
    @peterkiss1204 Год назад +679

    It would be funny to have a "reverse" snake, where you start with a relatively long snake that shits at frequent, but random times and you have to avoid the ever growing number of permanent shitpiles. Difficulty settings could affect the length of the snake. Or this feature could be combined with the original game.

    • @umanglunia2194
      @umanglunia2194 Год назад +35

      Pretty easy to win I think, keep the tip of the tail at the edge :)

    • @chrisrenemans5026
      @chrisrenemans5026 Год назад

      @@umanglunia2194 add food which extends the snake length, and give the feces a timer. Get to small you lose, to large and you get yourself killed.

    • @justjillie6391
      @justjillie6391 Год назад +1

      😂

    • @dhruvgupta5658
      @dhruvgupta5658 Год назад +2

      Dude wtf that's perfect I'll take it

  • @purplehaze2358
    @purplehaze2358 Год назад +308

    I feel like this type of content is too smart for my tiny little brain.

    • @Neoh53
      @Neoh53 Год назад +7

      I you admit it, then that mean you have a bigger brain than you thougth

    • @placeholdername3907
      @placeholdername3907 Год назад +11

      The pain from learning is just your brain getting bigger

    • @Taha632RMF
      @Taha632RMF Год назад

      ​@@placeholdername3907No pain no gain they say

  • @justinsemple7454
    @justinsemple7454 Год назад +9482

    Could you use Inverse Snake to make a local multiplayer VS mode Snake? One person is the food the other is the Snake.

    • @CodeNoodles
      @CodeNoodles  Год назад +2700

      Brilliant idea!

    • @totoisayal5045
      @totoisayal5045 Год назад +670

      @@CodeNoodles what if 2 people could be food and 2 people be snakes?

    • @usernametaken017
      @usernametaken017 Год назад +609

      @@totoisayal5045 Snakr battle royale

    • @LampNTable
      @LampNTable Год назад

      rcrlicu

    • @bijeshshrestha2450
      @bijeshshrestha2450 Год назад +372

      All people as food sounds good too, elimination battle royale

  • @Beregorn88
    @Beregorn88 Год назад +1469

    Here some suggestions
    Gives the snakes different colours and a different shade for the head
    Make the snakes always target the nearest piece of food, so that you can trick a snake into another piece of food, rather than following you, or start hunting you if you pass too close
    Snakes increase their speed every time they eat a piece of food

    • @donuthurtmyhoney8313
      @donuthurtmyhoney8313 Год назад +102

      I suggest a speed cap, if the bottom suggestion is added

    • @ryleygriggs9840
      @ryleygriggs9840 Год назад +114

      You could also give certain snakes different behaviors. Ex. One snake goes after the closest piece of food it sees, and will not stop chasing until they disappear. One snake always chases the player but has the slowest speed of the snakes. Another snake could puppy guard an area and chases any food that's close to it radius.

    • @Kukilet
      @Kukilet Год назад +24

      This would be cool, like ghost in pacman

    • @mattmorgan2525
      @mattmorgan2525 Год назад +21

      I would also suggest a visual cue for where the player is after moving through a portal. Like a growing/blinking, fading ring centred on the player's new location.

    • @dylanzlol7293
      @dylanzlol7293 Год назад

      @@ryleygriggs9840 what about a snake that rather than wanting to eat you, instead simply wants to get you cornered (like imagine you're escaping from a snake and sneaky snake gets on front of you therefore you die)

  • @Sollace
    @Sollace Год назад +155

    Oh hey, finally something I've actually done before :D
    In university I coded a snake game for fun in JS. Looking at how you did the snake, food, and collision... There are a few ways you could optimise that, definitely.
    Firstly, you don't need any collision stuff. Just have a grid that is either occupied by food, a snake segment, or air, and then when the snake moves you check the tile it's going into for whether that's A) food, or B) snake.
    If it's food, you increase the snake's length. If it's snake, the snake dies and it's game over.
    For moving the snake, you don't have to move all the segments forward. Just remove the last segment and put it in front.
    To increase the snake's length when eating food, do the same as above without removing the tail segment.

    • @waldoman7
      @waldoman7 Год назад +1

      So why don't you need collision prevention

    • @Sollace
      @Sollace Год назад +1

      @@waldoman7 I already explained why,

    • @bramvanduijn8086
      @bramvanduijn8086 Год назад +4

      That's quite elegant.

    • @bramvanduijn8086
      @bramvanduijn8086 Год назад +12

      @@waldoman7 Because you're not building a physics engine, just applying some very basic boolean logic.

    • @Seedx
      @Seedx Год назад +4

      I made one in JS too! I didn’t even think about moving the last segment to the front though 😂 that’s a much better solution

  • @gooseharbinger4851
    @gooseharbinger4851 Год назад +50

    3 things:
    1. You should hace a portal respawn cooldown when you go through the portal to discourage camping the portals and going through last second.
    2. What happens if you go through the food?
    3. If you want to make sure the snakes dont go straight for you you should make it so that they redirect to the closest food every 2ish seconds.
    Obviously i dont expect you to add these (ive taken some coding classes and i hate going back to a finished product and changing my code) but it is some solutions/questions i thought of when i was watching

    • @NightChime
      @NightChime Год назад

      Imagine if you could eat the food, too, and get longer, increasing your length, making it harder to dodge enemies. Extra hazard of lesser importance, but enough to be worth avoiding when possible.

  • @keny1000
    @keny1000 Год назад +1446

    You should've given each snake a different color so when they're all in a clump you can still differentiate them

  • @larsthememelord3383
    @larsthememelord3383 Год назад +384

    maybe a cool thing could be that the snakes prefer walking in straight lines like a player would do in snake only sometimes going diagonal

    • @ChasmChaos
      @ChasmChaos Год назад +13

      Yeah, that diagonal walk was so weird. A real uncanny valley experience.
      There could be a cost associated with the choice of movement. A string up North-South + East-West movements would have a much larger cost vs a string of only North-South or East-West movements.

    • @luisd.mancilla8169
      @luisd.mancilla8169 Год назад +8

      I thought the same thing. Maybe tie it to the difficulty? Have the snakes move only in straight lines on easy difficulty, occasionally diagonally on normal, and always take the most efficient route on hard

    • @Seedx
      @Seedx Год назад

      I made that in my program, there’s 2 snake AIs: one that chases you diagonally and one that goes parallel to you but only spawns 15% of the time

  • @weirdnessfades
    @weirdnessfades Год назад +55

    To the people who can code... I salute to you

  • @NLR-J
    @NLR-J Год назад +12

    Here's a good idea for the game: make it, so that if a snake dies, it responds as only the head. This makes it so it's impossible for the snakes to all kill themselves, leaving you with an open field with no enemies. This will make the game more infinite.

    • @Profeshinal
      @Profeshinal Год назад

      He could add an endless mode using this idea

  • @the_loose_goose
    @the_loose_goose Год назад +169

    3:21 I think your heart rate monitor is broken

    • @trethetree
      @trethetree Год назад +4

      Lol

    • @leandroTRA
      @leandroTRA Год назад +5

      "When your wife says your in laws are comigo over

    • @thomicfee529
      @thomicfee529 Год назад +8

      “Yo nurse get on this i got a highscore”

  • @commanderdemonno9819
    @commanderdemonno9819 Год назад +974

    so; here's an idea
    give snakes their own """"personalities"""", like in pacman where the ghosts have different behavior
    one might be persistent on chasing you, while one might try and wall you off once it realizes you're moving
    also, another thing you might want to add: some way to deter or even flat out kill one of the snakes temporarily, perhaps a poison apple you have to bait the snake into?

    • @Techy404
      @Techy404 Год назад +62

      Next, we give them names like the ghosts

    • @alinac.7919
      @alinac.7919 Год назад +19

      @@Techy404 meh, but them it’s basically pacman

    • @Techy404
      @Techy404 Год назад +44

      @@alinac.7919 it was a joke but yeah true, although the main diference would be that there is no maze

    • @alinac.7919
      @alinac.7919 Год назад +2

      @@Techy404 true true

    • @TheGamingLegendsOfficial
      @TheGamingLegendsOfficial Год назад +33

      @@Techy404 you're wrong - the snakes ARE the maze >:D

  • @Sly-Moose
    @Sly-Moose Год назад +39

    Dude made a whole new game. Mad respect. Interesting concept.

  • @memetech-
    @memetech- Год назад +2

    Note to self: make clone of this and make the player only move the first frame you press the button but you move every time you start pressing so if you want to really run away you have to really MASH

  • @primozuado
    @primozuado Год назад +2145

    got a feeling this is gonna blow up real soon. Great display of content in coding and game creation.

    • @yaslerfuj
      @yaslerfuj Год назад +22

      Same, I thought this was a viral coding video or something, but just a random suggestion, hope it blows up :)

    • @DaemonWorx
      @DaemonWorx Год назад +9

      Here before 300 subs lol. But I do feel the same

    • @tt_thoma
      @tt_thoma Год назад +2

      I forgor to subscribe but you reminded me

    • @cherpsy3770
      @cherpsy3770 Год назад +1

      yea

    • @seyj7457
      @seyj7457 Год назад +11

      It blew up. RUclips recommended it to me and the only reasonable connection is one Code Bullet video I skimmed through a couple weeks ago

  • @E5PY
    @E5PY Год назад +3

    I am just beginning my python journey. I initially didn't understand how making games would apply to real life tasks but your video helped me connect those dots. Thank you so much for including some of the work for the game.

  • @emilyb5307
    @emilyb5307 Год назад +1

    I know almost nothing about coding, but this is fascinating... I appreciate that I could still follow things too. Thanks for sharing your work. It's a good reminder of how complex creations that seem deceptively simple can be. Impressive!

  • @feffy380
    @feffy380 Год назад +2247

    "It's not an AI"
    Yes it is. Though hand-coded, it makes intelligent decisions based on its environment. You find these kinds of search algorithms at the start of every intro to AI course. Machine learning isn't the only subfield of AI

    • @Rutious4
      @Rutious4 Год назад +156

      Yes thank you it annoys me so much

    • @ManiGzz87
      @ManiGzz87 Год назад +49

      Still technically not AI.

    • @MrDarkSky
      @MrDarkSky Год назад +124

      I like your funny words, magic man

    • @bravebeatT
      @bravebeatT Год назад +150

      @@ManiGzz87 its a fkin AI bcz it makes DESICIONS between 2 or more status

    • @ManiGzz87
      @ManiGzz87 Год назад +22

      @@bravebeatT Still TECHNICALLY not an AI

  • @4P5MC
    @4P5MC Год назад +595

    This is very good quality for such a small channel! One suggestion I'd have is give the snakes a random offset from their base colour. Not enough to make them wildly different, but just enough that you can tell two of them apart when they're adjacent.

    • @CodeNoodles
      @CodeNoodles  Год назад +99

      Excellent point! This isn't actually my first time doing crazy things with snake because one time I did exactly what your describing. Thanks for the support!

  • @thatoneyoutuber777
    @thatoneyoutuber777 Год назад +4

    Love the music! And the game looks really good, the UI and all the art blends well together 👍🏼👏🏼

  • @whyyoutry2021_YT
    @whyyoutry2021_YT Год назад +2

    That is impressive when it's been years since anyone played snake a very long time and came back with you coding being Food instead of snake that is impressive

  • @lomanalchemik7749
    @lomanalchemik7749 Год назад +287

    I really love it!
    Few tips for actual game:
    1. You should make snakes different colours so they don't blend together
    2. You could add some massive point boost after killing the snake so it would be more profitable to outsurvive them all in a short game than to simply survive the longest time possible.
    And for 2.0:
    Powerups. Players love powerups let it be brief invulnerability, repelent, bonus points, speed up, slow for snakes, freeze time, even extra life!

    • @MakingYouSad
      @MakingYouSad Год назад +8

      Cool suggestions, I hope we will something like this implemented in the game :)

    • @mamathama8923
      @mamathama8923 Год назад

      You can add them yourself. The source code is available.

    • @zaishijunior9455
      @zaishijunior9455 Год назад

      @@mamathama8923 hara hara hara ha ha harararararara

  • @KateSullivan135
    @KateSullivan135 Год назад +180

    I have a few suggestions for making the game more interesting. Have the score be based on how many fruits you can collect yourself. Collecting fruits give you some amount of score, and that score has a bonus for each fruit you've gotten without using a portal. If you take a fruit that a snake was after, it aggros you. Using a portal resets your multiplier, but it also resets the aggro on any snakes that had you targeted. This gives you an objective that intersects with the snakes objective, and instead of standing next to a portal and waiting on snakes to get close, you are constantly moving into danger.

  • @simplistic9899
    @simplistic9899 Год назад +5

    POV: you visit your grandma in the hospital
    the heart monitor: 3:30

  • @5000Famous
    @5000Famous Год назад +1

    So apparently this video super blew up and you went up from maybe 500 subscribers to over 10 thousand? That's impressive, I personally can't wait to see if this gets a V2. You have my sub.

  • @stupidAgeverificatio
    @stupidAgeverificatio Год назад +53

    I would probably rotate one set of portals 45 degrees for easier identification and have each food a different color and have the head of the snake match the color of the food it's navigating to.

  • @azarious644
    @azarious644 Год назад +108

    This actually seems terrifying in the fruits pov. Imagine an entire zoo's worth of snakes getting bigger with each of your brethren they eat and when they see you they relentlessly chase after you until you're eaten
    3:13 also anime moment

    • @Blue-fg8vt
      @Blue-fg8vt Год назад +4

      I imagine due to being a different color, your a mouse not a fruit.

  • @SpaceLobster21
    @SpaceLobster21 Год назад +3

    I think it'd be pretty cool if going through a portal caused any snakes currently chasing you to re-assess which piece of food they're chasing (randomly select a piece of food again, there's a chance they'll still be chasing you). This gives the player a chance to properly escape from the snakes.
    Pretty cool project!

  • @castlehaha
    @castlehaha Год назад +2

    This is so underrated, I am definitely subbed

  • @Vorael
    @Vorael Год назад +39

    This is neat! I think it'd be cool if you gave the snakes the Pac Man ghost treatment, honestly. Give them different colors and different "personalities." One could always be hunting you regardless, one could more or less ignore you and only go after stationary food, one could just go after whatever food was closest, one could randomly switch targets every few seconds, etc.

  • @lemonlordminecraft
    @lemonlordminecraft Год назад +14

    I love this idea. It’s such a simple to grasp gamemode with quite a nice layering of that paradoxical meta that “primitive” games like this are known for. “Aim is to avoid the snakes but if all snakes die you lose out on points,” is such an intrinsically satisfying predicament. I’m telling you, people would’ve gone crazy for this in the 80s and 90s.

  • @bleachisgoodforyouhealth7800
    @bleachisgoodforyouhealth7800 Год назад +1

    You are a very gifted teacher. I've been teacNice tutorialng soft for over 50 years and really appreciate your video being a beginner in soft soft.

  • @That1Knife
    @That1Knife Год назад +1

    I love this! Another idea: make the "AI" track the nearest food instead. Then if you go too close to the snake it will go after you, but if you go close to a piece of food the snake might get temporarily distracted and go get the food before going back to get whatever food is closest from there.

  • @KStarPR
    @KStarPR Год назад +49

    Aside from the "controlling the food" part, this reminds me of an old pc game called Snake Arena. I've always wanted a new version of that game, and an inverse mode would be pretty cool, especially if other people's "food vs. snake" mode idea is incorporated.

  • @rcnhsuailsnyfiue2
    @rcnhsuailsnyfiue2 Год назад +50

    Your code is super clean! 💯 Structured logically, formatted nicely, and easy to follow. Having managed dev teams for many years, my code review senses got all excited watching this… 😆 Great vid!

    • @CodeNoodles
      @CodeNoodles  Год назад +14

      Lol thanks! Most people are quick to point out problems/flaws with code so thanks for the positive feedback!

    • @rcnhsuailsnyfiue2
      @rcnhsuailsnyfiue2 Год назад +7

      @@CodeNoodles and well deserved! It’s rare to see code of this standard on RUclips... I really appreciated your consistent naming conventions (“isX()” for functions returning booleans, or “getX()” for methods returning calculated properties). Your static Snake::isSafe() method used reference calling cleverly across multiple Snake instances… And I liked how you used ternary operators to make your code shorter, but not at the expense of readability :)
      I’m guessing you do this professionally? If you don’t mind me asking, for how many years? Keep it up dude. Your code is poetry 🙌🏻

    • @gurvanshsingh2271
      @gurvanshsingh2271 Год назад +3

      @@CodeNoodles the reason they can even POINT out flaws is cuz you code is clean as hell
      Wear it as a badge of honor my g

    • @deatho0ne587
      @deatho0ne587 Год назад

      @@CodeNoodles 5:08
      Hate to be mean, but this fails both clean (5 indents, lines 13 to 23 should most likely be a separate function) and it sounds like you did not fully understand it (basically can you describe it to a none DEV).
      Just one example, most of it looks good and I can understand the function at 5:08 in context.

  • @brodyperry2294
    @brodyperry2294 Год назад

    I may not be looking in the right areas but I don’t know that I’ve ever seen someone make there game available and I love that, thank you

  • @randellarrogante4329
    @randellarrogante4329 Год назад

    Man, you don't know how grateful I am right now! THANK YOU SO MUCH!!!

  • @adamj.mc.3078
    @adamj.mc.3078 Год назад +89

    I killed all the snakes and the you won screen didnt pop up,
    Factors:
    - Easy mode
    - 1 Hp remaining
    - 3 final snakes all died in the same move
    Beyond that im not sure what would affect the function youre presumably using to detect this victory condition

  • @Slackow
    @Slackow Год назад +16

    Damn I wish I could come up with ideas like this! This is really cool. I saw a lot of people suggest to make the snakes movements more natural, and I think I have an idea for that.
    Each snake calculates the distance to its target on the x and y axis and then generates a random number to see which direction it should go in, so for example if it's 3 units away in a direction and 7 in the other, it'll have a 3/10 chance of going in the first direction and a 7/10 chance of going in the other, this way the movement looks more natural.

  • @Shadbae
    @Shadbae Год назад +1

    wow! this was posted on my birthday lol great video you inspire me!

  • @PlayerALH
    @PlayerALH Год назад +1

    I only started to watch you 1 hour ago and Im already addicted.

  • @ftwgaming0
    @ftwgaming0 Год назад +7

    8:19 Casually just portal into the body of a snake.

    • @CodeNoodles
      @CodeNoodles  Год назад +3

      Lol, um pretend you didn't see that

    • @trethetree
      @trethetree Год назад +1

      @@CodeNoodles see what?

  • @goobyahh7142
    @goobyahh7142 Год назад +21

    I would’ve never come up with an idea like this that’s actually amazing! I wish I could be creative like that and not lazy enough to start learning code cause coding looks interesting

    • @CodeNoodles
      @CodeNoodles  Год назад +4

      Coding can be hard but infinitely rewarding. If you have the means to do so trust your gut and go for it. Thanks for the support!

  • @jinxedproduction
    @jinxedproduction Год назад +1

    He is on the way to get a lot of subs. I absolutely love all this coding stuff and I hope to see even more soon. Good luck on your RUclips journey!

    • @CodeNoodles
      @CodeNoodles  Год назад +1

      Thanks so much! I've only been doing RUclips for a bit now and already have an awesome community to encourage me! More stuff will be coming soon.

    • @jinxedproduction
      @jinxedproduction Год назад

      @@CodeNoodles people like you go Skyrocket! You are gonna grow your channel in no time! This coding has been popular for so long but keep getting even more!

  • @romanluis8961
    @romanluis8961 Год назад +1

    i like that idea so i dowloaded the game. ITS AMAZING. nice job!

  • @LukeSmith1984
    @LukeSmith1984 Год назад +3

    I am finding an alarming number of videos with amazing quality and very little views, and this is one of them.

  • @Qsie
    @Qsie Год назад +5

    noodles: "This total abomination" 2:11
    me: this is fine! what do you mean?
    snake tail: becomes hydra
    me: oh...

  • @xM0nsterFr3ak
    @xM0nsterFr3ak Год назад +5

    1:18 made me laugh way harder than it should😂

  • @sussysugar7853
    @sussysugar7853 Год назад +1

    This is a really fun game concept. Super simple yet it looks very fun.

  • @Firefly256
    @Firefly256 Год назад +20

    I think the portals should have a set distance, so they’re not too close to each other which makes the portals kind of useless.
    I also think screen wraps will be a great addition as well so there’s a secondary option to escape other than portals

    • @pineappleudh6561
      @pineappleudh6561 Год назад +1

      Problem with that is you could just stand at the edge and repeatedly go back and forth, so long as you were fast I'm pretty sure it would make you nearly immortal.

    • @proloycodes
      @proloycodes Год назад +2

      @@pineappleudh6561 what if the snake could screen wrap as well?

    • @pineappleudh6561
      @pineappleudh6561 Год назад +2

      @@proloycodes
      Would likely be even more complicated to code and would completely invalidate the usefulness of the mechanic but would fix the issues I provided. (Probably)

    • @JKd3vLD
      @JKd3vLD Год назад +1

      It could be done in certain areas only, much like PacMan does

    • @Firefly256
      @Firefly256 Год назад

      @@pineappleudh6561 maybe add a cooldown?

  • @meowcat280
    @meowcat280 Год назад +3

    Yooo. I love this so much. I really hope to see a part two for this video. Never seen such a small channel feel so professional.

  • @ThyGooberTheThird
    @ThyGooberTheThird Год назад +1

    Mkay I am just IMPRESSED that you know how to code alllll of that in like what a week? That’s just… wow

  • @juanchecaro1856
    @juanchecaro1856 Год назад

    Keep em' comin' and thanks for all of the help!!

  • @CATTATAT
    @CATTATAT Год назад +9

    THIS IS SO UNDERRATED. Love the idea of a reverse snake game.

  • @ibemper1850
    @ibemper1850 Год назад +6

    code at 5:12 "don't even ask me to explain any of it", dw i will explain it
    this is what i interpret of the code
    i might be wrong, this is what i think though
    lets say we want to check if a particular snake, lets say his name is gustav, is safe, i.e gustav isnt colliding with another snake
    i have the function Snake::isSafe for just that, and i pass in the arguement is snakeIndex, and right now i am passing gustav as an input to the function, so for now, gustav = snakeIndex
    now i go through each and every snake in a list of snakes, the list of snakes is called "snakes"
    now while checking through the list of snakes, i want to check if gustav collides with any of them, but remember gustav is also in that list, i dont want to check if gustav is colliding against himself, so if(gustav==current_Snake_That_We_Are_Checking_Against_In_The_List), skip over gustav
    now i make a new "imaginary" snake called currentSnake, lets call him bob, since i like making names up
    now bob is made in such a way that his position is overlapping over the snake that we are currently checking, lets say we are checking the 3rd snake on the list, bob's position is overlapping over the 3rd snake on the list
    (the ternary operator is not even needed, unecessary complication, could have just done const Snake* currentSnake = &snakes[currentSnakeIndex]; or maybe i am just dumb and there is a reason behind it, idk)
    now we will go through every body part of bob, which in the code he calls it a "segment" of a snake
    this part is kinda long to explain and i have other things to do, so i will just tell the gist of what happens
    we go through every segment of bob, and check if that body part collides with any of gustav's body part, if yes, well gustav isnt safe, since he collided with bob
    my idea to reduce the code, i think the efficiency of the code is O(m*n) since you are using a nested loop for every part of gustav and every part of bob, essentially multiplying the time, now to check for collision, just check if gustav's head (i.e the 0th segment of the list that stores gustav's segments) is colliding with any part of bob, this is because no snake can physically move their whole body to the left or right all at once, yes snakes can TURN sideways but it cant fully move sideways or upwards or downwards all at once, so there is no need to check for every part of gustav, neither can snakes go backwards
    so the new algorithm should be O(m) , m = length of bob
    good job on the game

  • @Tonicfailure
    @Tonicfailure Год назад

    I love how, when you finally understand c#, and see some game making video. You actually get to understand it 🙂

  • @nairanvac79
    @nairanvac79 Год назад

    I love the choice of background music for this vid.

  • @biteso2333
    @biteso2333 Год назад +3

    Such a weird thing that I'd never have thought of but wow that's really cool. Love what amazing stuff you did with such a seemingly simplish concept!

  • @zskull162
    @zskull162 Год назад +13

    If you can, I think the snakes would look nicer if the body of the snakes was slightly smaller than the head, to make it a little easier to tell orientation when they’re next to eachother.

    • @LugiDergX
      @LugiDergX Год назад

      Adding onto this suggestion, actual snake like body could be cool! Head is the biggest, segment behind it slightly smaller, another smaller again, then another behind it even smaller and so on.

  • @goldenruby4
    @goldenruby4 Год назад

    Knowing how to code could be the most impressive and amazing things ever

  • @mikipleyer2
    @mikipleyer2 Год назад

    Thank you so much this helped a lot!!!! You saved my life

  • @quentinschrader7104
    @quentinschrader7104 Год назад +7

    I can't even code, I'm just here cause this is cool as hell

  • @jordibuchner
    @jordibuchner Год назад +4

    There's a strategy you can maybe employ which is to wait for the snakes to get to a certain length and then trapping them in a self death loop before hopping into a portal and escaping being eaten. That way you're not waiting for them to make a mistake but actively killing the snakes.

  • @malachihormel7994
    @malachihormel7994 Год назад +2

    Fun concept with a simple execution, good stuff. Any time I try to make a project like this I end up with too much feature creep and abandon it.

  • @noobsplaysensei3324
    @noobsplaysensei3324 Год назад

    To be honest that's a very good approach. More challenging this way and creative.

  • @vladimir-gk6ml
    @vladimir-gk6ml Год назад +4

    This is some of the best stuff I've seen recently 😂
    Honestly tho every time you complained about programing I just died with how relatable it is

  • @boomfossil9256
    @boomfossil9256 Год назад +8

    Wow this is really well made content, I can feel you are gonna make it big time

  • @justyournormalblitz
    @justyournormalblitz Год назад +1

    CodeNoodles : So how long are you gonna go on for?
    The Algorithm : Yes!

  • @gabrielmazante3877
    @gabrielmazante3877 Год назад

    Congratulations dude! Enjoyed the content

  • @Deretythe
    @Deretythe Год назад +87

    4:50 at line 4, you were always setting currentSnake to the snake at snakeIndex, which doesn't change at any point during the method. So each snake was only trying to avoid one particular snake many times, instead of trying to avoid every snake one time. If you had snakes[currentSnakeIndex] instead, it should have worked, and wouldn't need the snakeIndex parameter at all (I'm guessing that's the index of the snake the method is called on?)

    • @Smooth_Brain
      @Smooth_Brain Год назад +7

      and also the perpendicularity of the bisector was interfering with the vortex

    • @HiddenBush64
      @HiddenBush64 Год назад +2

      @@Smooth_Brainskeppy moment not really funny

    • @Smooth_Brain
      @Smooth_Brain Год назад

      @@HiddenBush64 how did u know

    • @HiddenBush64
      @HiddenBush64 Год назад +1

      @@Smooth_Brain I could recognise that phrase ‘perpendicularity of the bisector’ from a light year away

    • @mudkippity
      @mudkippity Год назад

      @@HiddenBush64 perpendicularity moment

  • @brendanr4961
    @brendanr4961 Год назад +3

    Awesome job! This is super inspirational for someone wanting to get into programming like me, so thanks!

  • @friqxzw
    @friqxzw Год назад

    I am getting back into production after so ti and tNice tutorials makes it so easy to understand. Thank you so much for making these videos.

  • @user-rn6nr1qn1h
    @user-rn6nr1qn1h Год назад

    Thank you so much! TNice tutorials video helped produce fire soft thanks bro❤️

  • @Incognito-rb4tz
    @Incognito-rb4tz Год назад +10

    :0 this is so well made! u deserve way more subs

  • @devini15yt
    @devini15yt Год назад +5

    This is pretty neat, I do think it would be cool if the different snakes were different colors so you could tell them apart when they go right next to each other

  • @Enyl_Stray
    @Enyl_Stray Год назад

    Looks fun ! To avoid the waiting time you could add a priority variable to make sure there's always a snake looking for you

  • @thecatofnineswords
    @thecatofnineswords Год назад

    This is very cool.
    Nice work!

  • @potatomashertv4545
    @potatomashertv4545 Год назад +4

    youre channel is so underated

  • @elijahwood3564
    @elijahwood3564 Год назад +4

    Dang that was a really good quality video I'm surprised you only have like 100 subs with videos like this you should get 1k in no time best of luck keep it up

  • @idontwantahandlethough
    @idontwantahandlethough Год назад +1

    that was a tasty code noodle bro!
    Subscribed :)

  • @Ezoluna
    @Ezoluna Год назад +1

    This is cool! I remember making portal snake in java swing, man that was a nightmare

  • @trbz_8745
    @trbz_8745 Год назад +7

    It would be interesting if the snakes gained a temporary speed boost when eating food, then slowed down. That way they can chase you faster without being perma-inescapable

  • @profwoland8942
    @profwoland8942 Год назад +7

    This is great! You’re going to be the next CodeBullet :)

    • @lifinale
      @lifinale Год назад

      so he becomes non existent for a couple of months and comes back with a banger? works for me!

  • @mariocastillo4864
    @mariocastillo4864 Год назад

    Thanks for your easy to follow explanations

  • @dodo2829
    @dodo2829 Год назад +1

    Congrats! Your video is on RUclips recommendations.

  • @kabirbatra
    @kabirbatra Год назад +3

    Nice video idea and thumbnail!
    If you stick with these kind of videos, I'm sure your channel will grow quick and you'll also get better at the craft
    Good luck!

  • @IdK-ve4gu
    @IdK-ve4gu Год назад +3

    code bullet? no no I mean code noodles

  • @Koyai_Zieam
    @Koyai_Zieam Год назад

    As soon as I saw your channel name I am immediately subscribed because I love noodles and coding

  • @user-br1vk1bq2z
    @user-br1vk1bq2z Год назад

    Truly inspired ,i study c++ and I thought it has no future in programming games but u proved how ignorant I was .
    nice vid by the way

  • @paul10724
    @paul10724 Год назад +4

    9:16 Hey, that‘s me. 😁 Good video and an interesting idea.
    I already saw the video when it had 38 views.

  • @avi99996
    @avi99996 Год назад +4

    Make it where the snakes slow down for a second when they eat food so you can lead them to food to give you a chance to escape

  • @gloopglobz
    @gloopglobz Год назад +1

    New sub bro is literally so underrated

  • @yuiop2703
    @yuiop2703 Год назад

    This is super cool! I find it very difficult to tell the portals apart though. Short of pausing the video to compare, I can't track it that quickly. Maybe using different colors? Like a purple portal that uses dark and light purple flickers, and a pink portal that uses light and dark pink, or something like that

  • @OPTactics
    @OPTactics Год назад +3

    Great video and cool idea for a game. My feedback would be to replace the portal with a temporary speed buff powerup.

  • @augustaseptemberova5664
    @augustaseptemberova5664 Год назад +6

    Probably won't make a noticeable difference, but you can make the push 1:38 more efficient: only move the head to its next position and then push the tail segment to the position where the head was previously. Efficiency goes from O(n) -> O(1)
    This way the snake's lengths won't affect their push speed.

    • @williamdrum9899
      @williamdrum9899 Год назад

      Could snake size also be another variable that is kept elsewhere, kind of like a pascal string?

    • @xGOKOPx
      @xGOKOPx Год назад

      Or he could make tiles with snake non-walkable for the purpose of pathfinding. Seems like a sensible solution

  • @MasonAttano
    @MasonAttano Год назад

    ngl, I felt pretty validated when you said "this code is a mess and doesn't work. I made it work by making it even messier. Don't even ask". That's my life as a programmer lol

  • @camiloindart1218
    @camiloindart1218 Год назад

    I love it, seems really fun!