Undertale is a horribly made game

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.พ. 2025

ความคิดเห็น • 3.6K

  • @JuniperDev
    @JuniperDev  7 หลายเดือนก่อน +1206

    Download GameMaker over at gamemaker.io/en or else

    • @unnaturalanimations1383
      @unnaturalanimations1383 7 หลายเดือนก่อน +14

      I already have 😈😈

    • @kr0tyara
      @kr0tyara 7 หลายเดือนก่อน +25

      I expected some kind of a referral link, but it's actually clean??? That's a miracle :3

    • @AnimatingBeats
      @AnimatingBeats 7 หลายเดือนก่อน +7

      OR ELSE?! WHY IS THERE AN OR ELSE?!

    • @SoupMarley64
      @SoupMarley64 7 หลายเดือนก่อน +10

      This is the most fitting sponsor i have ever seen. I literal unskipped on SponsorBlock to watch it. Swag.

    • @Csbees
      @Csbees 7 หลายเดือนก่อน +3

      I love gameMaker 💖

  • @ACoffiend
    @ACoffiend 7 หลายเดือนก่อน +23850

    if i remember correctly Toby actually got the genocide game delete to work. but he removed it since windows detected it as a virus 💀

    • @JuniperDev
      @JuniperDev  7 หลายเดือนก่อน +4457

      @@ACoffiend LOL even better

    • @jarielwilliams9856
      @jarielwilliams9856 7 หลายเดือนก่อน +2172

      ​Well, that sucks. That would've been better. But noooo. Windows has to be a crybaby and complain about everything. "Oh my god! A game is uninstalling itself? I gotta fucking remove this virus!" ​@JuniperDev

    • @Tenandrobilgi
      @Tenandrobilgi 7 หลายเดือนก่อน +3657

      @@jarielwilliams9856 That's intended behavior, and should never ever change. A program uninstalling itself without the control of a user is malware behavior, regardless of the source and intention. If Microsoft ever allowed this, it would create a ton of security vulnerabilities. I agree, it would've been funny and scary, but there's a limit you have to not pass if you want your game to still be considered a game in front of the OS's eyes.

    • @jarielwilliams9856
      @jarielwilliams9856 7 หลายเดือนก่อน +440

      @@Tenandrobilgi Yeah. Fair. That is true.

    • @Boomrainbownuke9608
      @Boomrainbownuke9608 7 หลายเดือนก่อน +169

      @@Tenandrobilgi why can an uninstaller be allowed to uninstall a part of the pc itself then?
      thats a double standard there.

  • @Wince_Media
    @Wince_Media 7 หลายเดือนก่อน +11401

    Honestly, the fact that Undertale is a poorly coded game makes Undertale even more of an inspiration. If even a rookie developer can make such a fantastic game, then you can too!

    • @AnimatingBeats
      @AnimatingBeats 7 หลายเดือนก่อน +330

      That’s kinda why I use it as inspiration too. Kinda what made me ever consider if I want to learn to make video games. I probably won’t ever be able to make a full project, but I can dream!

    • @ssg-eggunner
      @ssg-eggunner 7 หลายเดือนก่อน +58

      not in my case, because i know i can do worse than toby fox in 2013 with 50k

    • @Wince_Media
      @Wince_Media 7 หลายเดือนก่อน +125

      @@ssg-eggunner if you feel you can't do what Toby did, just try a smaller scope! Find something that you feel you can do by yourself and just do it! Even if it never sees the light of day, you'll have a blast!

    • @Wince_Media
      @Wince_Media 7 หลายเดือนก่อน +55

      @@AnimatingBeats you don't have to start with a full proejct!! Toby started with ROM hacks, UniqueGeese started with a Garten of Banban remake, you can start with a small scope, like a 10-minute to 1 hour-long game. Once you feel comfortable doing stuff like that, you can dream bigger! It's better to have a complete small project than an incomplete big one!

    • @ssg-eggunner
      @ssg-eggunner 7 หลายเดือนก่อน +12

      @@Wince_Media i could do a ripoff of pong and i still can imagine it crashing

  • @psiseven
    @psiseven 6 หลายเดือนก่อน +9940

    "Undertale is poorly programmed" Canonically it was made by a dog barking into a speech to text converter, so that checks out

    • @GoofyAhhPerson-y6s
      @GoofyAhhPerson-y6s 6 หลายเดือนก่อน +170

      yeah it really does

    • @TheeKittyPie
      @TheeKittyPie 6 หลายเดือนก่อน +48

      Beautiful

    • @narrativeless404
      @narrativeless404 6 หลายเดือนก่อน +23

      Not canonically
      It's just a joke Easter egg

    • @libsh5684
      @libsh5684 6 หลายเดือนก่อน +221

      @@narrativeless404 it’s literally canon. The annoying dog is canonically God.

    • @narrativeless404
      @narrativeless404 6 หลายเดือนก่อน +12

      @@libsh5684 No it's not
      It's never stated
      An easter egg telling a Dog made a game by barking into a typewriter doesn't mean that's how Undertale uniberse came to be
      Quit simping!

  • @ClodsireBcuzYes
    @ClodsireBcuzYes 7 หลายเดือนก่อน +11125

    the WRITING is genius
    the code on the other hand is held together by sticks, duct tape and a prayer.

    • @MarcosAlexandre-no3qx
      @MarcosAlexandre-no3qx 7 หลายเดือนก่อน +743

      so basically a normal computer program.

    • @Thatmoosecaishen
      @Thatmoosecaishen 7 หลายเดือนก่อน +401

      well we gotta remembner this guy was basically one man with $50k

    • @gjk-arts5855
      @gjk-arts5855 7 หลายเดือนก่อน +354

      correction: and hopes and dreams :)

    • @LucasMiddleNameandLastname22
      @LucasMiddleNameandLastname22 7 หลายเดือนก่อน +78

      that was one EPIC prayer.

    • @ssg-eggunner
      @ssg-eggunner 7 หลายเดือนก่อน +268

      @@Thatmoosecaishen he spend 50k more wisely than a certain other guy recently

  • @Francisco112DND
    @Francisco112DND 7 หลายเดือนก่อน +7547

    Toby Fox made his game in a cave WITH A BOX OF SCRAPS

    • @HaganeNoGijutsushi
      @HaganeNoGijutsushi 7 หลายเดือนก่อน +118

      GameMaker Studio: am I a joke to you?

    • @MineCraft-wt7iz
      @MineCraft-wt7iz 7 หลายเดือนก่อน +273

      I'm sorry...I'm not Toby Fox

    • @yosefyonin6824
      @yosefyonin6824 7 หลายเดือนก่อน +190

      he only had 2 sticks and a rock, and he HAD TO SHARE THE ROCK (with temmie)

    • @chapalapachala-oe1oo
      @chapalapachala-oe1oo 7 หลายเดือนก่อน +66

      And on hussie basement, the creator from homestuck, no wonder the game is called UNDERtale

    • @GenKoe6917
      @GenKoe6917 6 หลายเดือนก่อน +40

      Tony Fox?

  • @pressfinchat
    @pressfinchat 3 หลายเดือนก่อน +917

    Toby Fox is what Yandere Dev wish he could be, but isn't.

    • @shady8045
      @shady8045 หลายเดือนก่อน +18

      basically lol

    • @komikherif5427
      @komikherif5427 หลายเดือนก่อน +21

      he 's what most game devs would wish they were

    • @GameurBlais
      @GameurBlais หลายเดือนก่อน +12

      Yankee dev is basically evil Fox

    • @KingHunter911
      @KingHunter911 หลายเดือนก่อน +8

      ​@@GameurBlaisIsn't Sebastian Wolf already the "Evil" Toby Fox?

    • @Dannto__
      @Dannto__ หลายเดือนก่อน +8

      If we put into a balance, Toby Fox is the *person* (not talking about talent) Yandere Dev could have been, but we know the rest of the history... If the creator is an ass of a guy, it doesn't matter if he's good or bad at creating a game, he won't be able to grow

  • @stridin_raye
    @stridin_raye 7 หลายเดือนก่อน +10034

    "If you like quirky characters and inconsistent pixel lengths, Undertale is for you." - Toby Fox, 2015

    • @KILLEVERYONEKILLEVERYONE
      @KILLEVERYONEKILLEVERYONE 7 หลายเดือนก่อน +45

      @mrwilsonisofflinegape577 true insanity IRL 🦕🦕🦕

    • @84warhead
      @84warhead 7 หลายเดือนก่อน +73

      @mrwilsonisofflinegape577 Buddy, Metal Gear Rising is almost 11 years old and it still gets talked about today. If we go even older than that we have Ocarina of Time or Doom, or Minecraft.

    • @altmycelium1
      @altmycelium1 7 หลายเดือนก่อน +16

      Hello pfp twin

    • @ShyGuyXXL
      @ShyGuyXXL 7 หลายเดือนก่อน +121

      I HATE inconsistent pixel lengths with a burning passion... but I still somehow managed to get through Undertale without rupturing a hernia. Who knows how.

    • @stridin_raye
      @stridin_raye 7 หลายเดือนก่อน +11

      @@altmycelium1 No way......

  • @standardhuman8675
    @standardhuman8675 6 หลายเดือนก่อน +6182

    this is just how people code. if its not held together with spaghetti and tape, are you really even a developer?

    • @fragileglass9622
      @fragileglass9622 6 หลายเดือนก่อน +277

      Hahah! I laughed too hard at this. I diligently start every project with absolute star level folder and consistency. A week into the code base. I realize star level means you can pick a star in the sky and I’ve probably put a bit of glue, duct tape and code in it. 😂😂

    • @NotAGoodUsername360
      @NotAGoodUsername360 6 หลายเดือนก่อน +165

      It's called "modular design"
      By which I mean I grabbed a bunch of hastily-coded, self-contained functions and stitched them together as needed.
      And plagiarized as much open source as I could get away with.

    • @fragileglass9622
      @fragileglass9622 6 หลายเดือนก่อน +55

      @@NotAGoodUsername360 Haha! The three of us are on our way to becoming a AAA Studio! Heh heh heh!

    • @ElMisterDeLosGuantes
      @ElMisterDeLosGuantes 6 หลายเดือนก่อน +42

      literally running on Hopes and Dreams

    • @Nanook128
      @Nanook128 6 หลายเดือนก่อน +30

      1:57 I think the genocide route we ended up getting is actually more meaningful than if the game was deleted. To me the true "canon" ending of undertale is the post-genocide pacifist run were you trying to redeem yourself for the horrible things you've done only to see that your soul has been irreversibly tainted and you can never have your happy ending again.

  • @justaperson9504
    @justaperson9504 3 หลายเดือนก่อน +495

    To be fair, undertale was made ONLY BY HIM (when we talk about code), and even so the game came out working good, no lag, no bugs (except if you want to make one), etc.
    That's the reason why deltarune is making more faster than undertale and looking better in code because toby get better, game maker upgrade his system and there's more people working on it.
    Fun fact: one of the few reasons why the game don't deleated himself in the final version is because in some places a game where you have to pay but gets deleted by his own is ilegal.

    • @Real_BdeBruno
      @Real_BdeBruno 3 หลายเดือนก่อน +8

      7:45

    • @last__breath-78
      @last__breath-78 29 วันที่ผ่านมา

      ​@@Real_BdeBruno make undertale re-make then xd

    • @WeirdWimp
      @WeirdWimp 4 วันที่ผ่านมา

      i had a stroke reading this

    • @justaperson9504
      @justaperson9504 4 วันที่ผ่านมา +1

      @ Not my problem,

    • @justaperson9504
      @justaperson9504 4 วันที่ผ่านมา +1

      @ Then do you own game if you are so smart.

  • @mrtruman4339
    @mrtruman4339 7 หลายเดือนก่อน +7467

    _Reads title._
    _Gets pitchfork._
    _Watches video._
    _Lowers pitchfork._ "Good point."

    • @Somebody_else_is_out_there
      @Somebody_else_is_out_there 7 หลายเดือนก่อน +149

      REAL

    • @Scypek
      @Scypek 7 หลายเดือนก่อน +351

      _Reads title._
      _Reads the first two sentences of the description._
      _Lowers pitchfork._

    • @bathgod
      @bathgod 7 หลายเดือนก่อน +24

      So relatable.

    • @AnimatingBeats
      @AnimatingBeats 7 หลายเดือนก่อน +103

      Accurate. Except I wasn’t gonna bring a pitchfork. I was gonna bring a machine gun. Get Ralsei to wield it. Stuff like that

    • @baileygobrr
      @baileygobrr 7 หลายเดือนก่อน +26

      im lowering my pitchfork but im not happy about it

  • @MysticSlime
    @MysticSlime 7 หลายเดือนก่อน +5222

    Yeahhhhh Undertale is held together by a bunch of sticks and glue 😅it's honestly kind of miraculous that it not only works, but also that most playthroughs really don't see many glaring bugs at all

    • @JuniperDev
      @JuniperDev  7 หลายเดือนก่อน +582

      MYSTIC! You have been all over my feed while I've been making this video haha. Seriously, creators like you are a big reason the community behind this game is still thriving and videos like mine are still interesting to people. Kudos!!

    • @youkofoxy
      @youkofoxy 7 หลายเดือนก่อน +91

      You forgot determination, loot and loots of determination.

    • @maulaz612
      @maulaz612 7 หลายเดือนก่อน +55

      Not as bad as tf2
      That spaghetti code is barely tied together there

    • @DogsRNice
      @DogsRNice 7 หลายเดือนก่อน +17

      It's like old Pokémon games

    • @coledoe1030
      @coledoe1030 7 หลายเดือนก่อน +4

      This is how most coding projects work, or at least mine.

  • @TheRealSuperRabbid
    @TheRealSuperRabbid 3 หลายเดือนก่อน +152

    In Toby's defense, it probably was hard to code using while having paws for hands and hitting teenagers with a jacks-pacific car.

  • @ShayyTV
    @ShayyTV 7 หลายเดือนก่อน +965

    oh hey, i'm in this!! thanks for the shoutout

    • @JuniperDev
      @JuniperDev  7 หลายเดือนก่อน +119

      @@ShayyTV Yooo!! Neat seeing you here! That makes a lot of sense bahahah, I was debating between showing a couple areas that seemed to have the gag surrounding conveyer belts. I appreciate the clarification!

    • @degenerateinthecloset
      @degenerateinthecloset 7 หลายเดือนก่อน

      i literally called it that shayy was going to be in the comments lmao

    • @Hyperboid
      @Hyperboid 7 หลายเดือนก่อน +13

      ah yes the room with the really quiet easter egg

    • @Over0w0MeAmTheHotel
      @Over0w0MeAmTheHotel 7 หลายเดือนก่อน +8

      Riiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiing

    • @hntsanimated
      @hntsanimated 7 หลายเดือนก่อน +1

      Hi Shay I love your content

  • @mark009vn
    @mark009vn 7 หลายเดือนก่อน +792

    4:00 to be fair, Toby used to be an Earthbound rom hacker, and Earthbound is pretty much infamous for how overtly complicated it's text system was

    • @Glitchmouse2
      @Glitchmouse2 5 หลายเดือนก่อน +38

      Earthbound, that came in the SNES. So that explains a lot

    • @aortaplatinum
      @aortaplatinum 2 หลายเดือนก่อน +14

      ​@@Glitchmouse2 Just because it's old doesn't mean it's poorly made. But yeah MOTHER 2 IS a bit janky and likely wouldn't have been finished if Satoru Iwata didn't come in at the eleventh hour and save the game

  • @Ehh.....
    @Ehh..... 6 หลายเดือนก่อน +370

    Undertale is a roomba with a razor taped to it.
    Good enough.

    • @aurorialgaming1935
      @aurorialgaming1935 6 หลายเดือนก่อน +2

      Why does this sound like a genuine Hazzard

    • @lunarskys2645
      @lunarskys2645 6 หลายเดือนก่อน

      Stabby's cousin

    • @foxpatternedferret476
      @foxpatternedferret476 4 หลายเดือนก่อน

      CLEAN RUSSEL!

    • @Lego_Trunks460
      @Lego_Trunks460 3 หลายเดือนก่อน

      wtf why was “razor” blue with a little magnifying glass but now its not?

    • @iceclimbers9333
      @iceclimbers9333 3 หลายเดือนก่อน

      @@Lego_Trunks460it’s some stupid feature that youtube implemented

  • @8083music
    @8083music 7 หลายเดือนก่อน +661

    The "Fun Value" thing should be in more games. It adds variety to different playthroughs with minimal effort from the developer

    • @8083music
      @8083music 7 หลายเดือนก่อน +6

      Awesome video btw

    • @rakesiar
      @rakesiar 7 หลายเดือนก่อน +3

      Can any coders tell us if this would be hard to add to games?

    • @a_username_lol
      @a_username_lol 7 หลายเดือนก่อน +55

      ​@@rakesiar not really just create a random value on new game and check if the value is below or above something and then do the thing u actually want to happen which is the hardest part

    • @catcactus1234
      @catcactus1234 7 หลายเดือนก่อน

      @@rakesiarSoftware engineer / game dev here: It’s actually pretty easy, the only hard part would be coding all the unique events (and that’s more of a content creation task).
      It’s as simple as doing something like:
      int funValue = Math.Rand(1,100)
      if (funValue > 57)
      {
      //add code for an event that will only happen if the fun value is greater than 57
      }
      I think a lot of games tend to avoid this because they don’t like players to have a very randomized experience. It only works for certain types of games where it doesn’t harm the gameplay, otherwise it can be kinda annoying.

    • @henryfleischer404
      @henryfleischer404 7 หลายเดือนก่อน +41

      @@rakesiar Not particularly, just adding the feature would be extremely easy, the hard part would be adding the various possible events, and that would scale linearly with how many there are.

  • @moshimoshiss
    @moshimoshiss 7 หลายเดือนก่อน +871

    One of my favorite things about Undertale is how, with Toby's limited skills and technical crap, it's still one of the best games I've ever played

    • @SMCwasTaken
      @SMCwasTaken 7 หลายเดือนก่อน +69

      I actually like how it's "badly coded"
      Old games had bad code too and Undertale is meant to replicate those games

    • @vibaj16
      @vibaj16 7 หลายเดือนก่อน +40

      similar to Minecraft in a way, at least for redstone. Fun fact: turning off a 3 block long redstone wire causes over 1700 block updates.

    • @radhoodini9802
      @radhoodini9802 7 หลายเดือนก่อน +7

      ​@@vibaj16no wonder why my world is lagging like heck lol

    • @Nikki-nd6jd
      @Nikki-nd6jd 7 หลายเดือนก่อน +7

      ​@@SMCwasTaken at the same time though a lot of those games were sort of ingenious if you think about how much memory and space they took up like literal MBs of info which to me I think is awesome, like we laugh at how janky they are but a lot of those were written with basically assembly which is definitely pretty awesome

    • @jorami4838
      @jorami4838 6 หลายเดือนก่อน +9

      @@SMCwasTaken tbf, none of those games intended to have bad code, including Undertale. 😂

  • @axelotlee_
    @axelotlee_ 3 หลายเดือนก่อน +66

    As a programmer, I believe that what someone's code looks like is dependent on how their brain works. If it was easier for Toby to interpret one massive switch statement then so be it. Sometimes understanding is a lot more important than efficiency.

    • @matthewbarabas3052
      @matthewbarabas3052 2 หลายเดือนก่อน +6

      only if you are the sole developer. if you arent, you need to conform.

  • @Vladimir-V-Kondratyev
    @Vladimir-V-Kondratyev 7 หลายเดือนก่อน +720

    5:00 For your knowledge: Computers are really fast at everything. Going through thousands of statements does not require a lot of computing power, however if that is done every frame (which it isn't here) it could take away crucial computing power from other tasks.
    So, Toby's approach is dubious, but ultimately fine.

    • @briannormant3622
      @briannormant3622 7 หลายเดือนก่อน +31

      Interestingly, the switch statement would theoretically be the best solution if you could design it in a jump table statement, where every single condition gets assigned a number and the code is spread out in a massive array, the number corresponding to the array position of the code. This would make it O(1).
      But yeah, sometimes you want to keep it simple, it is not an area where performance matters at all.

    • @NihongoWakannai
      @NihongoWakannai 7 หลายเดือนก่อน +8

      ​@@briannormant3622 in a compiled language yeah, but I think gamemaker has its own interpreted language or something. It's a mystery to me how it handles switch statements.

    • @Lucas-ty5ph
      @Lucas-ty5ph 7 หลายเดือนก่อน +38

      really, i think the only reason that such an approach is frowned upon is that it makes localization harder, since if the dialogue is stored externally, localizing the text to another language is just a matter of replacing it, whereas baking the dialogue into the executable like that means that translating the game's text to another language requires you to recompile the game entirely

    • @L4Vo5
      @L4Vo5 6 หลายเดือนก่อน +4

      @@briannormant3622 _technically_, the default way to make a jump table - as the name implies - requires an extra layer of indirection from an array. as the array/table that's built gets you "the direction to jump to to run the code there", not "the dialogue data itself". as long as dialogue data is always the same (and there isn't some extra preparation code for some special dialogues) an actual array would be faster. unless the compiler realizes the data is the same and makes a genuine array as a second optimization
      that being said i doubt GML even makes a jump table in the first place

    • @zyaicob
      @zyaicob 6 หลายเดือนก่อน +4

      You must never have used the laptop I did A level computer science on

  • @JoThNoMi
    @JoThNoMi 7 หลายเดือนก่อน +2232

    There are two routes of spaghetti:
    Toby Fox
    YandereDev
    Nuff said

    • @squid_cake
      @squid_cake 7 หลายเดือนก่อน +510

      At least Toby bothered using switch statements

    • @JoThNoMi
      @JoThNoMi 7 หลายเดือนก่อน +46

      @@squid_cake haha yes

    • @Hyperboid
      @Hyperboid 7 หลายเดือนก่อน +77

      chaotic good and chaotic neutral

    • @SillyEveryDay
      @SillyEveryDay 7 หลายเดือนก่อน +21

      And Papyrus

    • @smallxplosion9546
      @smallxplosion9546 7 หลายเดือนก่อน +160

      @@Hyperboidneutral???

  • @CaptainBeebi
    @CaptainBeebi 6 หลายเดือนก่อน +124

    4:47 Minor correction: Unlike a list of if statements, where you run the dialogue ID through X amount of statements one after the other. Switch statements, on the other hand, use a hashlist that tells the game what part of the program to jump to in order to execute the right code.
    Like it's a messy blob function that could be written in a more coherent way, but coming from a background of backend development, I've sort of just accepted that there are some situations where you will just have blobby code, and game design is one of those cases.
    So it's less "slow", and more "a visual affront to god"

    • @zyansheep
      @zyansheep 6 หลายเดือนก่อน +3

      Depends on the interpreter, but most languages implement these kinds of switch statements w/ subroutine lookup tables...

    • @lordofthe6string
      @lordofthe6string 6 หลายเดือนก่อน

      If you can't follow a switch statement you are a bad programmer, fight me.

    • @PineappleLiar
      @PineappleLiar 3 หลายเดือนก่อน +1

      I mean kudos to Undertale that as far as I can recall there aren’t really instances of id mismatch between triggers and dialogue output, but being the one to take a fine tooth comb to that hell blob probably took as much time as making a readable version of the tool would have.
      Like I’d straight up be mad if someone asked for a code review and showed me a 10k line switch case.

  • @Teacup44
    @Teacup44 6 หลายเดือนก่อน +437

    1:35 that's og oneshot, modern oneshot allows you to close the game but scolds you for it by saying it scares Niko as they're alone and dark when the window closes

    • @nikkiofthevalley
      @nikkiofthevalley 2 หลายเดือนก่อน +17

      Yep, but it still can kill Niko if you close the game in just the right spot. I forget where, because I never did it myself (I like Niko too much haha)

    • @hyper_lynx
      @hyper_lynx หลายเดือนก่อน

      ​@@nikkiofthevalley That just isn't true

    • @nikkiofthevalley
      @nikkiofthevalley หลายเดือนก่อน

      @@hyper_lynx Oh, apparently the wiki I read that from at one point said that, but was updated with the correct information. (the wiki was Fandom, because of course. I read that years ago when I had no idea just how bad Fandom is haha)

  • @bea-i-guess
    @bea-i-guess 7 หลายเดือนก่อน +719

    THE UNDERTALE DIALOGUE "IF" STATEMENT

    • @-bees-5704
      @-bees-5704 7 หลายเดือนก่อน +24

      Oh god no

    • @GrimMcGrimmer
      @GrimMcGrimmer 7 หลายเดือนก่อน +24

      Lord o me may code Jesus (so basically brackeys before he quit) save me

    • @viaaaaaaaaaaaaa
      @viaaaaaaaaaaaaa 7 หลายเดือนก่อน +7

      terrifying

    • @sandwiches1069
      @sandwiches1069 7 หลายเดือนก่อน +34

      still better yandere sim game spaghetti code

    • @ثعلبالماء
      @ثعلبالماء 7 หลายเดือนก่อน

      Switch is not an if statement

  • @raikkoning
    @raikkoning 2 หลายเดือนก่อน +18

    the fact that this game is so good despite most of it being held together by hopes, prayers, and a 1000 case switch statement

  • @ToastieKelly
    @ToastieKelly 7 หลายเดือนก่อน +3048

    You should change the "Written" in the title to "Programmed", "Coded", "Developed" or "Designed", it'd still be plenty eyecatching for the youtube algorithm and wouldn't send people to just dislike and then click off which would tank the video and stop TH-cam from recommending it. But yeah I agree it's interesting how a game as great as undertale looks like it was just programmed on a napkin by a drunkard with a crayon behind the scenes.

    • @SamBateman
      @SamBateman 7 หลายเดือนก่อน +495

      Perhaps something more creative and eye-catching than even that, like "Undertale's code is spaghetti" with Papyrus' shocked face as the thumbnail.

    • @sumas7
      @sumas7 7 หลายเดือนก่อน +71

      The point is that she may have done it on purpose to get more views

    • @Kelekona
      @Kelekona 7 หลายเดือนก่อน +100

      @@SamBateman Leave the title but have foreshadowing with just Papyrus pogging at a plate of speghetti with no words.

    • @ToastieKelly
      @ToastieKelly 7 หลายเดือนก่อน +71

      @@SamBateman Honestly could work, messy code is often called "spaghetti code" so there'd be plenty of space for some Papyrus jokes.

    • @ToastieKelly
      @ToastieKelly 7 หลายเดือนก่อน +39

      @@sumas7 Yeah but it's short sighted, a title like the ones I suggested would still grab attention and get views without attracting angry mobs. Besides that is just a safer bet, if too many viewers dislike the video at its release window it gets butchered in the algorithm and TH-cam simply won't recommend it.

  • @ZReChannel
    @ZReChannel 6 หลายเดือนก่อน +722

    a switch statement isn't inefficient memory-wise, it may be even faster than a file you read whenever you need data.

    • @BlueBoyTech
      @BlueBoyTech 6 หลายเดือนก่อน +24

      that's what i was thinking, the I/O solution sounds like it would take way longer

    • @ZReChannel
      @ZReChannel 6 หลายเดือนก่อน +32

      ​@@BlueBoyTech yeah, for it to be faster one needs to load the file into memory and then map every entry to an array, which would be the same as a switch statement (maybe a little more organized). However, when it comes to Undertale.. it doesn't really matter

    • @PhageArc
      @PhageArc 6 หลายเดือนก่อน +50

      no it is. but also.. that's not the problem. the problem was that everytime he wanted to add more dialogue, he'd have to string together multiple codes to get it working.
      in a proper npc system you would just write the dialogue and the game would read it.

    • @mallardman9776
      @mallardman9776 5 หลายเดือนก่อน +42

      It's still a bad solution. If you wanted to actually get the speed advantage of using memory instead of reading from a file, you would use the file, but load its content into a lookup table/map in memory.
      Then you could just access each dialogue section with a key like "sans-intro" or "toriel-boss-start"

    • @AZaqZaqProduction
      @AZaqZaqProduction 4 หลายเดือนก่อน +9

      @@BlueBoyTech A separate config file for dialog is really useful for localization specifically, as you can switch out the file for different translations.

  • @droycon
    @droycon 6 หลายเดือนก่อน +51

    1:22 just want to add that this for those who haven’t played the game: this is only true in the original version, not the modern one on steam and world machine edition

  • @bananaman9869
    @bananaman9869 7 หลายเดือนก่อน +802

    Games nowadays don't have enough dogs you can pet.

    • @JuniperDev
      @JuniperDev  7 หลายเดือนก่อน +91

      @@bananaman9869 So true

    • @minestar2247
      @minestar2247 7 หลายเดือนก่อน +4

      Minecraft legend does

    • @pixelcat29
      @pixelcat29 7 หลายเดือนก่อน +8

      Or just animals to pet in general

    • @TheSultan1470
      @TheSultan1470 7 หลายเดือนก่อน

      ugh

    • @glorbojibbins2485
      @glorbojibbins2485 7 หลายเดือนก่อน +5

      That is a huge pet peve of mine

  • @ashgrun
    @ashgrun 7 หลายเดือนก่อน +563

    read the title. grabbed my pitchfork. then watched for a few seconds and realized: "yeah the code is just papyrus' spaghetti" and then put my pitchfork away

    • @animainmilol
      @animainmilol 7 หลายเดือนก่อน +3

      Papyrus'S

    • @stuckatthevalley
      @stuckatthevalley 7 หลายเดือนก่อน +9

      ​@@animainmilol *Papyrus'

    • @vibaj16
      @vibaj16 7 หลายเดือนก่อน +3

      @@stuckatthevalley both are valid

    • @NoobySwooby
      @NoobySwooby 7 หลายเดือนก่อน +8

      @@vibaj16no. if you have a name that ends with S, you don’t put another S when referring to something that belongs to the person with the name ending with S, so it’s just papyrus’

    • @danielthecake8617
      @danielthecake8617 7 หลายเดือนก่อน +5

      Papyru's

  • @danielsurvivor1372
    @danielsurvivor1372 2 หลายเดือนก่อน +10

    4:22 So you telling me Toby Fox was THIS close to recreating YandereDev "If Else" coding string? 💀

  • @illegalmemedealer3549
    @illegalmemedealer3549 7 หลายเดือนก่อน +729

    So THAT’S why Deltarune Ch.3 is taking so long

    • @minestar2247
      @minestar2247 7 หลายเดือนก่อน +267

      Well, actually the opposite, cause toby now has other people working on the game so he has to make it more readable

    • @Cubeytheawesome
      @Cubeytheawesome 7 หลายเดือนก่อน +39

      I can’t wait for the Woody fight

    • @soapgaming4903
      @soapgaming4903 7 หลายเดือนก่อน +189

      Deltarune is a pretty large step up from Undertale, so that means that the code has to be written cleaner so the game can actually work. Also he has a team now so the code has to be readable if they want to work on the game.

    • @illegalmemedealer3549
      @illegalmemedealer3549 7 หลายเดือนก่อน +7

      @@soapgaming4903 yes I know this is sarcasm

    • @soapgaming4903
      @soapgaming4903 7 หลายเดือนก่อน +11

      @@illegalmemedealer3549 whoops. Looks like I need to work on my literary skills lol.

  • @extremempsilvamps5851
    @extremempsilvamps5851 7 หลายเดือนก่อน +166

    Yeah, I remember the heartbound dev saying that you "don't need to be a good game dev to make a great game" in a shorts and using Undertale as example, so I actually didn't get clickbaited (Also, there is a code behind sans so...)

    • @takatamiyagawa5688
      @takatamiyagawa5688 4 หลายเดือนก่อน +1

      Sounds like it conflates game dev with just the technical side of game dev, neglecting the artistic side which is all about designing an experience for the player.

    • @nameless......................
      @nameless...................... 27 วันที่ผ่านมา

      THOR MENTIONED

  • @Solesteam
    @Solesteam 6 หลายเดือนก่อน +20

    8:18 Calling game maker free nowadays is like calling mushrooms a fruit.
    You can make web based games but that's it. They removed free Windows game development. That's paywall content unless you have the old version unlocked and installed before the switch.

    • @Solesteam
      @Solesteam 6 หลายเดือนก่อน +2

      @Doruk_adi_alinmis When you test or wanna export a game, unless you get the full version it will only be openable in your browser.

  • @hoTube.
    @hoTube. 7 หลายเดือนก่อน +1570

    I know you are going for a rage bait title but I strongly recommend you to change it. You don't want to meet a certain side of the fandom

    • @THGMR-ox7sd
      @THGMR-ox7sd 7 หลายเดือนก่อน +171

      Exactly. Why rage bait? Doesn’t end well usually.

    • @krys7643
      @krys7643 7 หลายเดือนก่อน +120

      @@THGMR-ox7sdit gets views, let’s be honest we all clicked because of the title

    • @Kosta991
      @Kosta991 7 หลายเดือนก่อน +19

      The game is like 10 years old I don't think those kinda people are around anymore

    • @theoriginal____starwalker
      @theoriginal____starwalker 7 หลายเดือนก่อน +35

      @@Kosta991 i love how that age's a year away from not being a hyperbole

    • @flameofthephoenix8395
      @flameofthephoenix8395 7 หลายเดือนก่อน +6

      @@theoriginal____starwalker Not exactly sure I'd consider that hyperbole, five years give or take is not very big a difference.

  • @CrownedComet
    @CrownedComet 7 หลายเดือนก่อน +117

    the thing holding it all together is some tape and DETERMINATION

    • @BolleDaAxolotl
      @BolleDaAxolotl 6 หลายเดือนก่อน +5

      And Papyrus‘ spaghetti of course

  • @xtruejudgementx5017
    @xtruejudgementx5017 4 หลายเดือนก่อน +29

    So basically the entirety of undertale’s dialogue is controlled by a scratch if _ then _ block

    • @WindowsDrawer
      @WindowsDrawer 3 หลายเดือนก่อน +2

      well that's just an if else loop.

    • @CoolScratcher
      @CoolScratcher 17 วันที่ผ่านมา +1

      if _ then _ else _ technically

  • @agent5981
    @agent5981 7 หลายเดือนก่อน +186

    1:17 Thankfully this only happens in an old version, the steam version just has niko confused when you relog into the game

    • @PikachuYoshie
      @PikachuYoshie 5 หลายเดือนก่อน +25

      I would’ve been traumatized if this happened when I played it 😭😭😭😭😭😭

  • @ZipplyZane
    @ZipplyZane 7 หลายเดือนก่อน +241

    I disagree about the illusion of choice. When done correctly, it's a very useful tool that gives the player some sense of agency without spiraling off exponentially with every decision made. Plus having multiple paths to the same outcome is just realistic.
    Plus all you need to do is throw in some real choices, and then now the player doesn't know if the choice will matter or not.
    You do want a common experience between players. Not exactly the same experience, but they need to feel like they're playing the same game. And, for completionists, it needs to achievable to see all the content.

    • @ShrekPNG
      @ShrekPNG 7 หลายเดือนก่อน +24

      I think that's what Toby wants to do with Deltarune, since, you know, your choices don't matter. The last chapter will probably happen during the roaring, since I can't imagine any possible outcome of snowgrave

    • @LilacMonarch
      @LilacMonarch 7 หลายเดือนก่อน +20

      I actually really like when this is done in a way where the choices lead to very different dialog/scenes that eventually lead to the same outcome. Even if the overall story is the same, it feels unique enough to have a new experience

    • @NihongoWakannai
      @NihongoWakannai 7 หลายเดือนก่อน +10

      The main problem with illusion of choice is when there's literally zero depth to it. Instead of adding flavor it just brings extra attention to the fact that you have no agency.
      At least give *some* detour before joining back to the main route instead of "yes/no" ">no" "haha you don't mean that" "yes/no"

  • @goofygrass
    @goofygrass 3 หลายเดือนก่อน +10

    Her point is quite clear that despite the code being inefficient and not optimized, the game is still popular because it's not that big of a deal. Yet it's funny to see so many people still losing their minds over it.

  • @leo5907
    @leo5907 7 หลายเดือนก่อน +381

    -It works?
    -yes...
    -so?

    • @MarcosAlexandre-no3qx
      @MarcosAlexandre-no3qx 7 หลายเดือนก่อน +44

      programmer philosophy 101.

    • @tiqosc1809
      @tiqosc1809 7 หลายเดือนก่อน +9

      Watch it bite your ass one year later​@@MarcosAlexandre-no3qx

    • @minxxxyagami
      @minxxxyagami 7 หลายเดือนก่อน +12

      Look at Yandere Dev and say that again

    • @nihility_enjoyer
      @nihility_enjoyer 7 หลายเดือนก่อน +35

      ​​@@minxxxyagami unlike the 5k polygon toothbrush game, Undertale works just fine

    • @leo5907
      @leo5907 7 หลายเดือนก่อน +9

      @@minxxxyagami 2 words
      "it works?"

  • @howard_blast
    @howard_blast 7 หลายเดือนก่อน +1160

    Two very important things:
    - Undertale is graphically good. The vast majority of visual assets seen in the game were cleaned up considerably by Temmie, produced from scratch by her, or done by another artist Toby hired. The entirety of Home, Snowdin, and many other areas were not only drawn and sprited entirely by Temmie, but even conceived in concept art by her first via fairly vague instructions from Toby. It is not an exaggeration to say Temmie is more important to Undertale's identity at many points in the game than Toby is.
    There was a strong effort to keep the look simple and reminiscent enough of what Toby himself would doodle, but most of the final product is by no means not a professional quality finish, nor something he could produce anything that feels remotely similar to.
    This confuses a lot of aspiring gamedevs into thinking they can still achieve what Undertale did with lower standards/ability. They cannot.
    -Toby's lack of ability to code his way out of a "Hello world" assignment is one of the many factors delaying Deltarune to year infinity. It is very much an issue and, much like the point above, should not be something that encourages aspiring game devs to skip over learning their fundies.
    Toby has been notably trying to use Temmie less on Deltarune also, and development and the product itself is suffering for that as well.

    • @SugarbirdyOvO
      @SugarbirdyOvO 7 หลายเดือนก่อน +45

      I didn't know these facts, and I'm glad I now do. Thank you for making this comment ^^

    • @arian41148
      @arian41148 7 หลายเดือนก่อน +10

      really nice points.

    • @annagolikova5167
      @annagolikova5167 6 หลายเดือนก่อน +34

      Wait, why isn't he working with her as much anymore?

    • @howard_blast
      @howard_blast 6 หลายเดือนก่อน +159

      @@annagolikova5167 I'm honestly not sure. He mentioned in the 2022 commentary stream that he wants to be able to do as much of the visuals himself as he possibly can, but then he started simply giving more work to Gigi that would have gone to Temmie in Undertale.
      It's hard to figure out how he is thinking.
      Had he given Temmie the same role and freedom she had on Undertale, getting everything done for the game on the visual asset and design side would be done practically overnight with how good Temmie is these days. Maybe she simply charges too much now.

    • @drakegrandx5914
      @drakegrandx5914 6 หลายเดือนก่อน +31

      Question: I can see how the development would be suffering due to the lack of involvement of Tem. But why the product, too? Is there something from the already-released Deltarune chapters that bothered you and that you think clearly shows a downgrade from Undertale? Just to be clear, I'm not trying to criticize you, I am legitimately curious.

  • @Nerd-O-Matic
    @Nerd-O-Matic 6 หลายเดือนก่อน +22

    This very much reminds me of Thee Sims 2. It’s in my (and many other people’s) opinion the best Sims game to date, yet the code is so awful, that you have to jump through hoops _not_ to completely break the game beyond repair. Like, certain buttons in the game that you’re supposed to use will just break. Say you try to export a lot that Sims have lived in, the whole game has a chance of breaking because now there’s missing data and it’s just a beautiful mess of a game.

    • @lunarskys2645
      @lunarskys2645 6 หลายเดือนก่อน

      Sounds like Sonic 06 and Fnaf: Security Breach...
      IneedSims2brokengamesareMyfavoritegames!!!!

    • @Nerd-O-Matic
      @Nerd-O-Matic 6 หลายเดือนก่อน +1

      @@lunarskys2645 Be careful, if you want to mess around with breaking the game, go ahead, but you may not be able to open it if it gets too messed up. The broken faces could be fun to play with, though.

  • @michaelurmo7984
    @michaelurmo7984 7 หลายเดือนก่อน +212

    "Undertale is a horribly coded game" could have gotten the point across better, but what do I know? I still clicked on the video 💀

    • @Ray-op7xc
      @Ray-op7xc 6 หลายเดือนก่อน +44

      Yeahh but honestly that title made me avoid this video for a while bc it was so glaringly obvious that it was a clickbait. Im only here because TH-cam kept shoving this video into my recommended and I got tired of it

    • @chrissysonicutdrloz
      @chrissysonicutdrloz 6 หลายเดือนก่อน +4

      Title's meant to be clickbait for angry UT fans looking for a fight.

    • @Enuocale
      @Enuocale 6 หลายเดือนก่อน +1

      Hence the issue. It's a clickbait title mostly just saying stuff we already knew.

    • @hallow3dabyss
      @hallow3dabyss 6 หลายเดือนก่อน +9

      @@Enuocale Opinion moment, most people think the games is amazing, you dont lol. But to be fair there is no game that is for everyone.

    • @Ciopekwah
      @Ciopekwah 6 หลายเดือนก่อน

      @@hallow3dabyss i don't think they meant to diss the game, they (maybe) thought that undertale having funi coding practices is common knowledge :P (especially thanks to the piratesoftware short that got quite popular recently)

  • @legendgames128
    @legendgames128 7 หลายเดือนก่อน +66

    More accurate, and less clickbaity to say "Undertale is a horribly coded game" because everyone either knows that's true or would be interested to learn more about. (As a modder, it _is_ questionably programmed... Well, at least I was able to make plenty of progress on my Bug Fables mod of Undertale!)

    • @Swuh
      @Swuh 7 หลายเดือนก่อน +3

      Bug fables mentioned 🗣️🗣️🔥🔥🔥🔥

  • @3xalin
    @3xalin 6 หลายเดือนก่อน +95

    okay. you can NOT start a video with the title with "undertale is a horribly made game". you know that most people will just dislike your video and then leave.

    • @jamesmeek3442
      @jamesmeek3442 6 หลายเดือนก่อน +1

      Yea, it's sad but true.

    • @ShadowOfThePit
      @ShadowOfThePit 6 หลายเดือนก่อน +18

      @@jamesmeek3442no, it's not sad. Screw her and anyone who uses click-, no, RAGEbait, I'm going to click on the video, go instantly to the comments, check wether it's bait or not. If it is, then I will dislike the video and leave. I dont care if it's an amazing video with an incredible explanation, because something like that wouldnt need such a ragebait title.

    • @sawgiie
      @sawgiie 6 หลายเดือนก่อน +5

      @@ShadowOfThePit this is such a spiteful comment over an 11 minute video lol

    • @supertweakerbob
      @supertweakerbob 6 หลายเดือนก่อน +10

      @@ShadowOfThePitlil bro is so pressed over an 11 minute code breakdown

    • @the-guy-beyond-the-socket
      @the-guy-beyond-the-socket 6 หลายเดือนก่อน +2

      Its not a clickbait, its a point she has. And its valid, the game is spaghetti

  • @genericu2
    @genericu2 7 หลายเดือนก่อน +53

    I saw "Dev" in your name and immediately knew it was going to be about the code lol

  • @slab37
    @slab37 7 หลายเดือนก่อน +62

    I want to point out a few things:
    1. Game optimization does matter. However, it's importance depends on what kind of a game you are making.
    2. Switch statement are not inefficient. Inefficient is what's called an if ladder, because it will check conditions one by one. Switch statement are designed to determine what code should be executed in almost constant time. That's why it only accepts constant values as cases. So it's not that bad.

    • @RedOphiuchus
      @RedOphiuchus 6 หลายเดือนก่อน +4

      You're right that this is likely more efficient than a collection of equivalent If-Else Blocks but that's also not the alternative anyone should be shooting for.
      Switch statements are also not necessarily better than If-Else Blocks all the time. Switch statements frontload the condition checking, requiring a condition that accounts for all cases at once. If-Else blocks allow you to Shortcircuit the comparisons by putting the most common cases first, allowing you to skip the check for other cases in those situations. In short, you want to use Switch statements if all of the options share an easy to create and calculate condition, and If-Else blocks if there's not a whole lot of conditions or you could benefit from the shortcircuiting in most cases.
      Once you're looking at 50 or more cases, I personally think it's time to start considering another solution. I can't actually imagine everything that Switch statement has to consider in its condition to determine what case to go to every time. It would sound like time to use a data structure that organizes your data appropriately. Even just using an array and a collection of flags set as relevant events are triggered, and that can be easily combined via simple arithmetic to create the index, could be a cleaner solution. You would even be able to make multiple arrays like an NPC dialogue array, a story event array, a phone call array, and you could potentially further divide them by the areas they take place in If desired so that you don't have to load the array that contains the very first line of dialogue in the game into memory when you're in the Hotlands.

    • @slab37
      @slab37 6 หลายเดือนก่อน +3

      @RedOphiuchus I agree. this is definitely a bad design both for maintenance and performance. At least he was not making a raytraced sandbox game from scratch...

    • @RAFMnBgaming
      @RAFMnBgaming 6 หลายเดือนก่อน

      We could definitely set the compiler to unroll it into an if/else nightmare though.

  • @Nexo.Playzz
    @Nexo.Playzz 13 วันที่ผ่านมา +1

    Just a note on oneshot. It doesn't kill Niko when you close the game anymore, that's only in the freeware version.

  • @broohmygod
    @broohmygod 7 หลายเดือนก่อน +32

    extraordinarily rare oneshot mention in a random video
    the 2016 remake of oneshot doesn't do anything as extreme as deleting the entire game though, but it does do something similar by restricting your access to the rest of the game until your delete your save file or solving the puzzle related to it
    though OneShot becomes literal in the 2014 version as mentioned. however, there are versions where you get more than one attempt at the game

  • @e4gywanking
    @e4gywanking 7 หลายเดือนก่อน +233

    "Undertale is a horribly coded game" wouldn't hit as hard as written

    • @JuniperDev
      @JuniperDev  7 หลายเดือนก่อน +114

      YEAH that's what I'm sayiiiin man but hey, I do feel bad for possibly clickbaiting people D:

    • @AcrylicThePartygoer
      @AcrylicThePartygoer 7 หลายเดือนก่อน +43

      @@JuniperDev you clickbaited me
      i legit thought you were gonna hate on Undertale as a whole

    • @sociallyineptsnapper
      @sociallyineptsnapper 7 หลายเดือนก่อน +34

      @@JuniperDevyou should change the title if you feel bad :/.

    • @1th_to_comment.
      @1th_to_comment. 7 หลายเดือนก่อน +12

      ​@@JuniperDev I was already loading my dislike shotgun

    • @LucasMiddleNameandLastname22
      @LucasMiddleNameandLastname22 7 หลายเดือนก่อน +3

      @@1th_to_comment. NOT THE DISLIKE SHOTGUN-

  • @Neodx2
    @Neodx2 4 หลายเดือนก่อน +3

    Papyrus must have programmed undertale, it's the only spaghetti he can make

  • @T0B3573R
    @T0B3573R 7 หลายเดือนก่อน +39

    Yeah, Undertale is a cheap game. But it’s not cheap in its heart, literally. So much will and emotion is put into every corner of it. Honestly, it being so simple in its controls helps it’s worth blossom MORE, because the game is about subversive storytelling. It’s saying that beauty can be found in anything, and in anyone. And it’s up to you to give it that chance, and you do that so many times in the game that it eventually feels instinctual to the player. It gives someone good values without them even knowing it.

    • @a-s-greig
      @a-s-greig 6 หลายเดือนก่อน +3

      "Undertale" (and by extension, what it says about Fox) is the _Ratatouille_ of indie games.
      "A great artist can come from anywhere."

  • @SoftBought
    @SoftBought 7 หลายเดือนก่อน +106

    If you think Undertale's dialogue being one giant switch statement is bad, look at VVVVVV. %90 of THE GAME (yes, the ENTIRE game) is one giant switch case statement

    • @minestar2247
      @minestar2247 7 หลายเดือนก่อน +9

      WHAT

    • @AldinRamic
      @AldinRamic 7 หลายเดือนก่อน +5

      ​@@minestar2247I've been seeing you a lot recently.
      You're now one of the commenters. I see frequently.
      It's interesting how you keep reading you to comment sections and you keep finding familiar faces.

    • @drimp4551
      @drimp4551 7 หลายเดือนก่อน +3

      ong

    • @KwikBR
      @KwikBR 7 หลายเดือนก่อน +7

      why are the best games so horribly coded

    • @cashmerrre
      @cashmerrre 7 หลายเดือนก่อน +3

      im crying what

  • @DoctorAlright
    @DoctorAlright 27 วันที่ผ่านมา +3

    Really don’t see why anyone gives a shit about pixel inconsistency

  • @thebAAttery
    @thebAAttery 7 หลายเดือนก่อน +38

    Robtop is hiding under his desk begging not to be found after this video came out...

    • @TrulyAtrocious
      @TrulyAtrocious 6 หลายเดือนก่อน +1

      The twd video essay:

    • @Dusty_TheProtoFloof
      @Dusty_TheProtoFloof 6 หลายเดือนก่อน +1

      He broke the ramp jump system ever since 2.2 came out... Which made some lvls impossible such as windy landscape

  • @dracobot1223
    @dracobot1223 7 หลายเดือนก่อน +84

    I feel the need to clarify that larger switch statements do NOT impact performance. No matter how large the switch statement is, it will always take the same amount of time for the game to figure out which set of instructions need to be referred to -- effectively, they are the O(1) alternative to having a bunch of separate if statements.
    I will agree, Toby's method of handling dialogue events may seem kind of odd, but ultimately it looks more like a preferential thing to me. It seems like he was more fond of keeping everything in one place so that he could refer to different in-game events easier, instead of having to look in multiple different places around the game. That's just what I personally believe, though.

    • @JuniperDev
      @JuniperDev  7 หลายเดือนก่อน +27

      @@dracobot1223 My understanding is that the operating time depends on the compiler; you are correct that many languages do port those statements into a jump table automatically, making it o(1), but not all do. So without optimization generally o(n). And if it's thousands of cases, that optimization may be a binary search, so logn.
      I could definitely do some more thinking about that one and you definitely got me double checking. I appreciate your comment! 🍃

    • @santania4719
      @santania4719 7 หลายเดือนก่อน +5

      @@JuniperDev I think the main problem is even worse case scenario the switch statement is still faster than loading and processing a csv file.

    • @rz2374
      @rz2374 7 หลายเดือนก่อน +8

      On a good compiler, you would be correct, but gamemaker studio uses an interpreted language. It's proprietary, so you can't know for certain but it probably does not do many optimisations, so it will still be O(n). In the end, it doesn't matter since computers are fast enough that you can do thousands of comparisons per second. I just checked in python, known for being slow, and it does 1,000,000 comparisons in 43 ms.

    • @flameofthephoenix8395
      @flameofthephoenix8395 7 หลายเดือนก่อน

      @@santania4719 Worst case scenario you need to write your own jump table and an interpreter so you can read the instructions that you're jumping to.
      Whoops! I meant to reply to someone else, still should show for everybody I think, but sorry that it looks like I'm replying to your entirely different comment.

    • @dracobot1223
      @dracobot1223 7 หลายเดือนก่อน +1

      @@JuniperDev Interestingly, I've just learned that switch statements in GameMaker may have not always compiled the same way. I remember getting an error when attempting to supply a non-constant in the case argument field, which led me to believe that switch statements were compiled as jump tables. It seems that this is no longer the case..?
      I'm not fully certain what this means in the context of the version of GameMaker that Toby used, either.
      For now I will say that I may have been the one spreading misinformation here, LOL.

  • @jorgepenalver6554
    @jorgepenalver6554 6 หลายเดือนก่อน +72

    ):< how dare you 0:02

  • @AnhDNH-us9bx
    @AnhDNH-us9bx 7 หลายเดือนก่อน +30

    My experience messing around Undertale's code is when me and another guy working on technical stuff for an Undertale localization project, the other dude noticed me about a problem that when a player walk through Alphys's lab, they sometime got lag and even game crash. The reason for that is because of the screen displayer (that display Frisk's face) works by deleting and generating a sprite from the main surface (that draw everything inside the room) every single step, using function sprite_create_from_screen_x, which is sprite_create_from_surface but with application_surface. We have to modified the code to use surface_copy_part and the result is like day and night. There are more funny stuff we found inside the code but this one is the one I remembered the most.

  • @SkaiaMechanic
    @SkaiaMechanic 7 หลายเดือนก่อน +27

    I remember that instead of figuring out any type of real pathing system or fixing several boundary issues, there's several Out of Bounds areas in Undertale that have "magic glass" (his words) that appears when you or Undyne walk on it. It's like instead of being able to get rid of a bug, he put a clown nose on it instead and said, "See, now it's a funny joke and not irritating at all!" and went to do something else.
    I sometimes wonder how the game would look if he knew beforehand just how popular Undertale would become.

  • @Fraud_Kuna-d6o
    @Fraud_Kuna-d6o 3 หลายเดือนก่อน +4

    3:01 "Squidward, I'm finally *normal.* "

  • @RodDev
    @RodDev 7 หลายเดือนก่อน +30

    Wow your channel is awesome! How did youtube not recommend this to me earlier? Keep it up!

    • @JuniperDev
      @JuniperDev  7 หลายเดือนก่อน +2

      Dude thank you so much!! (:

    • @justcameoverhere
      @justcameoverhere 6 หลายเดือนก่อน

      @@JuniperDev Your channel is truly awesome! But I wish the title of this video didn't make a bad first impression of it. :P

  • @mintx1720
    @mintx1720 7 หลายเดือนก่อน +80

    Why on earth do people think switch for dialogue is slow?
    It's literally supposed to be faster than loading text from a disk and using a hashmap for dispatch.

    • @Veylon
      @Veylon 7 หลายเดือนก่อน +23

      Because most coders don't think about what the processor does to do to make their program happen. It's ugly so it's bad, and because it's bad it must be slow.

    • @domojestic4155
      @domojestic4155 5 หลายเดือนก่อน +3

      It may certainly be faster, but it sure seems way less maintainable. Like, if I had to add some extra dialogue for a new event into that statement, it feels like it'd be pretty difficult.
      I could be wrong, though. As I type this, I can imagine organizing the switch using some sort of standardized variable, making a new state for that variable, and then adding the line. Hm.

    • @Veylon
      @Veylon 5 หลายเดือนก่อน +2

      @@domojestic4155 You'd keep your dialogue and event IDs in a database and have a tool that automatically converts it to the switch statements or hashmap just before compilation. Ideally, you'd make proper scenario tools that handle all the optimization automatically.

    • @vaidenkelsier7757
      @vaidenkelsier7757 4 หลายเดือนก่อน +1

      It's not that it's slow (it can be slow), but it's the kind of system that if something breaks, it'll take you a few hours to fix. Or it's a lot harder to keep working as you expand the complexity of the script. It's slow in the way you develop, not necessarily how it executes at runtime.

    • @MerweenTheWitch
      @MerweenTheWitch 4 หลายเดือนก่อน

      @@domojestic4155 For sure, but also, he's the only one in there. In a larger production it would be a problem, but if he's the only one being a gremlin in his own code, then it is better and more "efficient" for it to make sense to him first and foremost. I feel like cleanliness is sometimes a bit of an arbitrary gold standard, especially in games (and especially especially with indie games) where building super robust systems is sometimes more work than it's worth in the end, or it would require a lot of backtracking to fix everything, re-break everything to re-build everything better... If you decide the experience matters more than the quality of the skeleton underneath (which imo should always be the way to go as a gamedev), then vOv

  • @Pokim
    @Pokim หลายเดือนก่อน +2

    I’m pretty sure the reason why the game doesn’t delete itself is actually because of steam, not because he couldn’t do it

  • @TheNotSoGreat1
    @TheNotSoGreat1 7 หลายเดือนก่อน +17

    When I read the title, I knew exactly what you were talking about
    Toby even added a reference to this in Deltarune with the Spaghetti Code item

    • @heheheiamasuperstarwarrior9281
      @heheheiamasuperstarwarrior9281 7 หลายเดือนก่อน +1

      I think the spaghetti code item is a more broad reference to jank programming, spaghetti code is a common term.

    • @ProfligateEater21753
      @ProfligateEater21753 6 หลายเดือนก่อน

      I think I remember Toby hinting multiple times that coding is a slog for him.

  • @cptnqusr
    @cptnqusr 7 หลายเดือนก่อน +27

    i gasped at the dialogue being one if statement, oh my god

    • @crypt5129
      @crypt5129 7 หลายเดือนก่อน +1

      Thing is, it's not even true

    • @trolololtrololol-v2w
      @trolololtrololol-v2w 4 หลายเดือนก่อน +2

      ​@@crypt5129for real this python fiends never touched C in their life.

  • @ItsTheOfficialDH
    @ItsTheOfficialDH 2 หลายเดือนก่อน +5

    the amount of comments from people that didn't even watch the video for more than 10 seconds is crazy

  • @bobbiejoringulet5040
    @bobbiejoringulet5040 7 หลายเดือนก่อน +16

    Remember kids, you dont have to be good, just good enough

    • @Cryonator_932
      @Cryonator_932 7 หลายเดือนก่อน +1

      This doesn't make any sense

    • @Cryonator_932
      @Cryonator_932 7 หลายเดือนก่อน +1

      This doesn't make any sense

    • @SethVivianBarker
      @SethVivianBarker 6 หลายเดือนก่อน +3

      True that

  • @insertnamehere1398
    @insertnamehere1398 7 หลายเดือนก่อน +41

    Undertale has spaghetti code... boom. the title doesn't trigger my fight or flight response

  • @ApocalypticJay
    @ApocalypticJay 4 หลายเดือนก่อน +6

    3:57 I've seen enough Scratch projects (Scratch doesn't even HAVE switch statements. I've seen nested ifelses that go on for MILES) to know that it could be worse

    • @ImJust_aDev
      @ImJust_aDev 27 วันที่ผ่านมา

      As a scratcher U are so right

  • @soapgaming4903
    @soapgaming4903 7 หลายเดือนก่อน +64

    The title almost gave me an heart attack lol

  • @P-O-L-T-E-R-G-E-I-S-T
    @P-O-L-T-E-R-G-E-I-S-T 7 หลายเดือนก่อน +18

    Oh thank god
    I saw the title and I was getting worried I would have to summon Franklin again

    • @Grayson-tk5hn
      @Grayson-tk5hn 7 หลายเดือนก่อน +3

      whos franklin😨

  • @gdolphy
    @gdolphy หลายเดือนก่อน +1

    Engineer: I know what my code looks like, and it's complete.
    Developer: I have no idea if I wrote this, but when it breaks, I'll be able to tell.

  • @ZipplyZane
    @ZipplyZane 7 หลายเดือนก่อน +27

    Was he trying to delete the game from the game's own code or something? That's not a great way to do it. Spawn and use a separate process. Write an EXE to temp that kills the game and then deletes it. Or, if you want no traces of the game left, launch the game uninstaller in silent mode, and close out the game before it starts.
    Sure, you can possibly figure out a way to delete the actual files out from under you, if you know how to keep the game in memory while the files are removed. (Or if you're using Linux, which automatically handle this). But it's so easy for things to go wrong. Far better to separate things out.
    Of course, maybe the tool he used can't spawn new processes?

    • @AldinRamic
      @AldinRamic 7 หลายเดือนก่อน +4

      Nice, I was disappointed that there was no explanation for how to be could have done it in the video
      Thank you for this

    • @Mizu2023
      @Mizu2023 7 หลายเดือนก่อน +3

      GameMaker by default won't let you spawn any process you wish to. You can make extensions that let you do that, though

    • @AldinRamic
      @AldinRamic 7 หลายเดือนก่อน

      @@Mizu2023 I didn't know that

    • @vibaj16
      @vibaj16 7 หลายเดือนก่อน +2

      For the code to be running, wouldn't it already be in RAM? So it wouldn't need to worry about that?
      Also, another comment said that he did actually get it to work, but Windows detected it as a virus.

    • @ZipplyZane
      @ZipplyZane 7 หลายเดือนก่อน +4

      @@vibaj16 Like I said, it's not impossible to delete something while it's running. But it can be tricky. Running programs are often locked, to prevent other programs from messing with them while running.
      That idea that it was detected as a virus makes sense. It was trying to delete itself while it was still running. That's something viruses often do, to try and hide themselves.
      I'm not at all saying it can't be done. Just that it's attempting to do it in hard mode.

  • @invalid_user_handle
    @invalid_user_handle 7 หลายเดือนก่อน +5

    5:30
    Ah, the classic "I could program this object to be able to move with another object and spend hours debugging that, or I can fake the same thing through weaponized code jank because this is literally the only time I need it to move like this".

  • @YaGirlZero
    @YaGirlZero 5 หลายเดือนก่อน +74

    It's like if yandere dev was a good person and had creative talent

    • @darkvulpes4826
      @darkvulpes4826 5 หลายเดือนก่อน +11

      Considering how many references he had in yandere sim, maybe he got this whole idea a bit wrong, lol. Doesn't matter how bad you are as a dev as long as your game works as intended and you keep developing it instead of making hour long video essays how your fans are wasting your time by sending you emails.

    • @YaGirlZero
      @YaGirlZero 5 หลายเดือนก่อน +4

      @@darkvulpes4826 yeah lmao, yandere dev would never compare, even as a perfect coder, because making a game, a good game requires more than programming skill

    • @kikiretzorg1467
      @kikiretzorg1467 4 หลายเดือนก่อน +8

      Toby (at the time of Undertale's development, at least) is a poor programmer but good game designer
      Yandev is a poor programmer, a bad game designer, and a contemptible human being

  • @nite637
    @nite637 7 หลายเดือนก่อน +40

    i feel liek a better title would be "undertale is a horrible coded game" before people start jumping you??

    • @the_seer_0421
      @the_seer_0421 7 หลายเดือนก่อน +11

      Gotta get people to click somehow

    • @lavenskii
      @lavenskii 6 หลายเดือนก่อน +2

      @@the_seer_0421 fr lmao i personally think it's genius

    • @yassified_toenail_clippings
      @yassified_toenail_clippings 4 หลายเดือนก่อน +1

      ​@@lavenskiicoded would equally get as much attention tho

    • @matthewbarabas3052
      @matthewbarabas3052 2 หลายเดือนก่อน

      pffffffffffffft people are gonna jump on her anyway.

  • @adriabama06
    @adriabama06 7 หลายเดือนก่อน +21

    4:51 As far as I know, using switch is faster than using if, yes, the code reads worse, but internally the compiler makes optimizations that make it much faster, using a CSV you first have to read the file and I suppose you will load it in a map, which I think is a little slower than a defined switch, although they are small things that practically do not affect the performance of the game.

  • @Spady_Jorts
    @Spady_Jorts 2 หลายเดือนก่อน +2

    Undertale was a huge deal in my life
    Its a masterpiece
    That being said
    The game is being held by tape a piece of gum and a tiny string

  • @stellarx20
    @stellarx20 7 หลายเดือนก่อน +11

    I was honestly hoping this was actually about the story because I wanted to see what unique standpoints would be given for a criticism of the game.

    • @Fatal_Error_san5
      @Fatal_Error_san5 หลายเดือนก่อน

      Sorry I'm late, but... uhh... I don't think ANYONE who actually played the game dislikes it. Or at least, anyone I've ever seen.

  • @panic488
    @panic488 7 หลายเดือนก่อน +5

    this is honestly extremely encouraging. i want to get into game design but have found it challenging to approach and this video honestly made it seem better. just jump into it, doesnt matter if youre perfect. an unprofessional random guy did it pretty inefficiently and now its one of the most beloved games ever

  • @deathwing0105
    @deathwing0105 6 หลายเดือนก่อน +4

    toby literally did all this in his room all by him self, not surprise it is

  • @Peepimus
    @Peepimus 7 หลายเดือนก่อน +5

    This is the equivalent to some stickman carrying a Statue of Liberty.

  • @MKG-2033
    @MKG-2033 7 หลายเดือนก่อน +15

    Everything from its programming to the music to the dialogue was unorthodox, that’s what makes undertale so great. Toby went and did everything you aren’t supposed to do with a game, especially something like RPGs and made it into a game and IT WORKED.

  • @1-Mirror-1
    @1-Mirror-1 6 หลายเดือนก่อน +2

    I love how nobody is talking about the third line of code: "Give me your newborn"

  • @ram-1919
    @ram-1919 7 หลายเดือนก่อน +17

    4:30 Excuse me, but isn't switch statement very efficient so it will jump into a certain place in a constant time no matter how many cases there are?
    From what I have seen in this video, I guess dialogs in the game work in a way that when an event that causes a dialog happens, the event asks a global switch statement to handle a number the event was given in advance. For example, the player hits an object, so the object requests the global switch statement to handle the object's pre-made number.
    In such a way the dialog shouldn't be inefficient, am I wrong?

  • @kataking8661
    @kataking8661 7 หลายเดือนก่อน +10

    I agree with Mr. Fox on the last bit. Hades is only good because you can pet Cerberus.

  • @thykota
    @thykota 3 หลายเดือนก่อน +2

    Ngl some of the hate comments here felt like a snapshot from 2016, like ig I distanced myself from the fandom years ago but it's just been a while since I seen folks this tilted over underale

  • @iamasquiddle
    @iamasquiddle 7 หลายเดือนก่อน +6

    2:46 toby wanted every piece of art to be consistent, just as crappy as all of them.

  • @KalameetTheCalameety
    @KalameetTheCalameety 7 หลายเดือนก่อน +117

    She actually has a point, PUT DOWN THE PITCHFORKS

    • @Mr.innocence666
      @Mr.innocence666 7 หลายเดือนก่อน +4

      No

    • @radhoodini9802
      @radhoodini9802 7 หลายเดือนก่อน

      ​@@Mr.innocence666why?

    • @DefeatedPwolf55
      @DefeatedPwolf55 7 หลายเดือนก่อน +1

      Nope! That woman will suffer the CONSEQUENCES.

    • @bobbaseball
      @bobbaseball 7 หลายเดือนก่อน

      wait why

    • @BolleDaAxolotl
      @BolleDaAxolotl 6 หลายเดือนก่อน

      I won‘t put down my pitchfork, but I‘ll put down my Meowmere

  • @programmerpromax
    @programmerpromax หลายเดือนก่อน +1

    I guess he understood in this era of powerful computers, this kind of game doesn’t need much optimization so he just made the game in the most intuitive way possible.

  • @the_real_sans
    @the_real_sans 7 หลายเดือนก่อน +20

    i almost strangled you when i heard the title

  • @jason256-8
    @jason256-8 6 หลายเดือนก่อน +7

    1:01 Regarding that, maybe he should use a list of file names and a loop that goes through all of these file names to shorten the code.

  • @AuriofTheHooligans
    @AuriofTheHooligans 6 หลายเดือนก่อน +2

    The look of horror on my face when I heard that all the dialogue in the game was in a single if statement...

    • @a-s-greig
      @a-s-greig 6 หลายเดือนก่อน

      In other words, OP has a _point._

    • @gattodev_real
      @gattodev_real 6 หลายเดือนก่อน

      NOT TRUE. HOLY FUCK.

  • @Water-Wheelz
    @Water-Wheelz 6 หลายเดือนก่อน +4

    About the OneShot closing thing, that’s kind of for the Freeware version on itch, the newer Steam version (and now Switch version) made it so it just saves your game to stop giving people figurative (and hopefully not literal) heart attacks.
    Just a casual OneShot fan here, thought I’d simply say something. But this video is honestly surprisingly neat, and Undertale sounds like a NIGHTMARE for Toby to have made- Yet he did it anywhere because why not.

  • @Peepimus
    @Peepimus 6 หลายเดือนก่อน +6

    10:22 - Toby Fox’s 2 favorite words…
    *P E T D O G S*

  • @kaloyanterziev3792
    @kaloyanterziev3792 3 หลายเดือนก่อน +1

    Toby Fox is the type of guy to write 1000 else ifs instead of making a for cycle

  • @noba04
    @noba04 7 หลายเดือนก่อน +30

    So clickbait-y title aside, this video really isn't great because I think you can totally improve and do better. The whole topic of "toby fox = bad programmer" is very disingenuous when you're supposed to be talking about the source code and why its bad / how to do better yet you've only brought up one proper example about its dialogue system. Everything else is just cut content, secrets and features that did not make it in (and some random talk about its art for a minute? why is this relevant?) You've only covered one valid example that goes on for 2 minutes in a 10 minute video, is that not a problem?
    5:45 as far as I know, Toby isn't responsible for most of the website's content as in he most likely never had a hand in its development and couldn't have added that comment there. The website is all done by Fangamer who are also in on Toby's den of secrets, so its a little something they added themselves

    • @limesandlemons1367
      @limesandlemons1367 4 หลายเดือนก่อน +2

      By that logic, Fangamer was responsible for the entire Deltarune site, too, and I really highly doubt Fangamer was responsible for the 2016 (two years before Deltarune's initial release) version of the website reading THREE HEROES APPEARED TO BANISH THE ANGEL'S HEAVEN in wingdings.

    • @ihaveakirbyobessesion2617
      @ihaveakirbyobessesion2617 3 หลายเดือนก่อน

      damn 😂

    • @staringcorgi6475
      @staringcorgi6475 3 หลายเดือนก่อน

      If a building is supported by duck tape, and superglue than yes It’d be horribly made

    • @noba04
      @noba04 หลายเดือนก่อน

      @@staringcorgi6475 month late, but you'd be surprised to see how many games contain solutions like that lol

    • @staringcorgi6475
      @staringcorgi6475 หลายเดือนก่อน

      @@noba04 I know since games that people consider the best like super smash bros melee is horribly buggy

  • @speedyasian330
    @speedyasian330 6 หลายเดือนก่อน +4

    This video is awesome at explaining it, ive heard thor talk about this in particular during a stream and you just summed it up keep making these videos!

    • @speedyasian330
      @speedyasian330 6 หลายเดือนก่อน

      Thor = pirate software

  • @melaniewilson1742
    @melaniewilson1742 6 หลายเดือนก่อน +1

    At this point I’d be shocked if I encountered a game that WASN’T held together with spit and bubblegum.