How we fit an NES game into 40 Kilobytes

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ธ.ค. 2024

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

  • @WipZedKay
    @WipZedKay 5 ปีที่แล้ว +8862

    This probably the best marketing for a game I have ever seen.

    • @ethaisa1239
      @ethaisa1239 5 ปีที่แล้ว +75

      They should make a 3D game for the gba

    • @Hide_and_Tweak
      @Hide_and_Tweak 5 ปีที่แล้ว +93

      I thought your comment was a joke, and then I realized I was checking how it costs on steam and on a real cartridge to see if I can evaluate the price. So I guess, yeah for these types of games I guess that's a good marketing strategy.

    • @TheDogn
      @TheDogn 5 ปีที่แล้ว +38

      RIGHT! I saw the links in the comments for the digital version which I assumed was a rom that I could have for free, and the nes cartridge which I immediately realized would cost money and found myself thinking, "I have to have it". Then I saw the steam link and I was like, "how many people can I afford to buy this for". This was a great marketing strategy.

    • @dariusmatthews2521
      @dariusmatthews2521 5 ปีที่แล้ว +31

      It’s the only...humble way to get games out there without falsely advertising how great it is above other games

    • @orzen_the_orzo933
      @orzen_the_orzo933 5 ปีที่แล้ว

      Engrish and ye

  • @rpavlik1
    @rpavlik1 4 ปีที่แล้ว +2418

    The "shift the axis of symmetry" trick is really clever!

    • @bobesponja8151
      @bobesponja8151 2 ปีที่แล้ว +32

      It truly is.

    • @blob5907
      @blob5907 2 ปีที่แล้ว +5

      @@bobesponja8151 no it's not!

    • @VentA_7
      @VentA_7 2 ปีที่แล้ว +116

      @@blob5907 the idea of “what if we just moved tiles in a row to not make it look symmetrical” by itself is smart; the fact they did it by using bytes that had left over bits to from a new byte, which then allowed them to do it, is a very cleaver optimization

    • @techmanwalker8496
      @techmanwalker8496 2 ปีที่แล้ว +11

      @@VentA_7 Actually it isn't a byte but a nibble, because a byte are 8 bits and the nibble are only 4

    • @PL9050
      @PL9050 2 ปีที่แล้ว +21

      @@techmanwalker8496 A 7 was correct. They were saying the used the leftover bits they collected from unfilled bytes. The bits collected formed a nibble, but that’s not what A 7 was referencing.

  • @U.Inferno
    @U.Inferno 5 ปีที่แล้ว +4197

    A screenshot I took of the title screen just now takes up 10x the storage of the entire game.

    • @kulitmed
      @kulitmed 5 ปีที่แล้ว +12

      It doesn't haha

    • @Keanine
      @Keanine 5 ปีที่แล้ว +468

      @@kulitmed 400kb sounds roughly correct for a screenshot... How is it not the case?

    • @J_man-de5sw
      @J_man-de5sw 5 ปีที่แล้ว +78

      @@kulitmed The screenshot I took was 145kb

    • @Kasteilmanusko
      @Kasteilmanusko 5 ปีที่แล้ว +241

      1920x1080 screenshot i just took is 374kb in jpg. Or 542kb in png. Or 5,93mb in bmp.
      Talking about image optimization from this video :)))

    • @Ruhrpottpatriot
      @Ruhrpottpatriot 5 ปีที่แล้ว +198

      @@paulmedina8808 No, they are not. Quite the contrary. Just because an image takes roughly ten times (in case of jpg) the storage of the game presented here, doesn't mean its inefficient. Remember Sprectre and Meltdown? Those are security vulnerabilities originating from clever (or not, depending how you look at it) microcode optimization to make the CPU that one bit (pun not intended) faster.
      Just visit the relevant computer science lectures before writing nonsense.

  • @calliope_x3
    @calliope_x3 4 ปีที่แล้ว +1290

    when time travel is invented, someone take this to back when the NES was released, instant video gaming legend.

    • @bartz0rt928
      @bartz0rt928 4 ปีที่แล้ว +199

      No joke if this had come out in '83 these guys would've sold millions upon millions of copies.

    • @deleteduser7870
      @deleteduser7870 3 ปีที่แล้ว +26

      actually if someone brings it back in time, the game shouldn't exist

    • @deleteduser7870
      @deleteduser7870 3 ปีที่แล้ว +11

      @@soloners well yes, but actually no, since we don't really know is a huge travels in time possible or not.

    • @deleteduser7870
      @deleteduser7870 3 ปีที่แล้ว +5

      @@soloners that's right, but it does not cancel the paradox I told upper

    • @deleteduser7870
      @deleteduser7870 3 ปีที่แล้ว +5

      @@soloners n't

  • @LowSpecGamer
    @LowSpecGamer 6 ปีที่แล้ว +7689

    This was absolutely fascinating.

    • @matthewvasta9425
      @matthewvasta9425 6 ปีที่แล้ว +97

      coming from low spec gamer. hes probs hoping to play this on his potato

    • @matthewvasta9425
      @matthewvasta9425 6 ปีที่แล้ว +32

      just remove every 2nd tile. half the disk space, half the vram usage, half the ram usage, half the cpu usage, and half the time till i cum

    • @ballfondler-k1o
      @ballfondler-k1o 6 ปีที่แล้ว +6

      i could do that np

    • @dgill3090
      @dgill3090 6 ปีที่แล้ว +3

      Yeah

    • @Male_Parent
      @Male_Parent 6 ปีที่แล้ว +2

      O hai

  • @alessandrodilecce8742
    @alessandrodilecce8742 6 ปีที่แล้ว +3811

    Have you ever thought about a whole documentary about these techniques? The video was really interesting, now I wanna know more!

    • @edgardelgado3377
      @edgardelgado3377 6 ปีที่แล้ว +86

      better for a series sponsored by patron, true

    • @funnyman2097
      @funnyman2097 6 ปีที่แล้ว +88

      The 8bitguy made similar videos called "How oldschool graphics worked"

    • @StriderVM
      @StriderVM 6 ปีที่แล้ว +43

      Gamehut does this kind of videos as well. =)

    • @MegaGameCore
      @MegaGameCore 6 ปีที่แล้ว +13

      GameHut

    • @seymourkrelborn4780
      @seymourkrelborn4780 6 ปีที่แล้ว +21

      256 likes on this comment is perfect, no one change it

  • @electroflame6188
    @electroflame6188 6 ปีที่แล้ว +5819

    I wonder how well this game would sell if it released during the NES era.

    • @FraserSouris
      @FraserSouris 6 ปีที่แล้ว +625

      @GunsIndustry Would it really?
      Many NES games that did sell a lot tended to be from bigger companies and had lots of advertising.

    • @SwitchZetto
      @SwitchZetto 6 ปีที่แล้ว +389

      @@FraserSouris Nothing that a publisher couldn't handle

    • @FraserSouris
      @FraserSouris 6 ปีที่แล้ว +313

      @@SwitchZetto
      Again, it's not guaranteed. Many publishers like Konami, Atari and more released many titles that became forgotton.

    • @acosta-animations5606
      @acosta-animations5606 6 ปีที่แล้ว +51

      Like Conker 64

    • @Deskyparaid
      @Deskyparaid 6 ปีที่แล้ว +417

      It would be a cult classic.

  • @Dan-mw4zu
    @Dan-mw4zu 3 ปีที่แล้ว +645

    The thing that amazes me the most is that Micro Mages would have been entirely possible to create in the 80s on stock NES hardware, but video games themselves were only really a decade old and the craft was simply too young for developers of such incredible ingenuity to even exist. Had this released in 1983, it would be looked back on as one of the most groundbreaking games ever.

    • @mkontent
      @mkontent ปีที่แล้ว +24

      Ummm would it have been? Are you going to completely disregard how they used modern tools to make the game?
      Sure, the assembly language and compression tricks are the same, but the creative tools are much more advanced today

    • @koolaidmansam8yearsago273
      @koolaidmansam8yearsago273 ปีที่แล้ว +93

      @@mkontentI mean that’s essentially what the original comment stated.

    • @AlexCreeper
      @AlexCreeper ปีที่แล้ว +40

      ​@@mkontentPlease read the comment before you reply. that's what he said.

    • @mkontent
      @mkontent ปีที่แล้ว +8

      @@AlexCreeper You mentioned ingenuity, not tools.

    • @Bug_Bait
      @Bug_Bait ปีที่แล้ว +24

      @@mkontent even if you're right, your comment made me frown :(

  • @fsxaircanada01
    @fsxaircanada01 5 ปีที่แล้ว +1510

    The animation for when you're doing the optimization is the most satisfying thing ever

    • @Metrocysh
      @Metrocysh 5 ปีที่แล้ว +3

      And confusing af

    • @anhnhvn
      @anhnhvn 5 ปีที่แล้ว +19

      @@Metrocysh Try listening without the animations then. It's much less confusing.

    • @Metrocysh
      @Metrocysh 5 ปีที่แล้ว +2

      @@anhnhvn I know i mean, i understand the vid but still, the part where for example he reduces the sprites flipping them i was like "oh boi so many same sprites that i didn't saw"

    • @DanielMatotek
      @DanielMatotek 5 ปีที่แล้ว +18

      This is a huge reason so many games are a fucking buggy messy even if they are triple "AAA" level development, limitations made designer and coders extremely creative in their problem solving.
      Now games can be as big as they want with no optimization needed so laziness and corner cutting comes with that and then it's too far gone to fix and they ship out a disaster riddled with bugs and patches to band-aid the problem.

    • @KingMoronProductions
      @KingMoronProductions 5 ปีที่แล้ว

      What video editing software was used to achieve this? Thanks :)

  • @Andreas_Mann
    @Andreas_Mann 5 ปีที่แล้ว +606

    Using the spare bit to shift the tiles was an amazing idea.
    Great watch!

    • @superyu1337
      @superyu1337 5 ปีที่แล้ว +16

      Agreed, totally blew my mind.

    • @dacypher22
      @dacypher22 4 ปีที่แล้ว +6

      Per row, the data used is not even enough to represent one letter of text. But that data was able to make the maps much more varied and alive. Very impressive technique indeed.

    • @radialorbits
      @radialorbits 4 ปีที่แล้ว +19

      its a 1% idea. The kind of thing you think up in the middle of the night and jump out of bed at 1am to start work! Love those moments

    • @IStMl
      @IStMl 4 ปีที่แล้ว +1

      @@radialorbits hmm not to that point

    • @dacypher22
      @dacypher22 4 ปีที่แล้ว +4

      @@radialorbits Oh yeah. Those are the best, and one of the reasons why I love the software development field.

  • @Versaucey
    @Versaucey 6 ปีที่แล้ว +2078

    We need more people like you in the video game industry.

    • @gentlevandal7589
      @gentlevandal7589 6 ปีที่แล้ว +38

      They can aspire a lot of people regardless of an industry! This is how people should approach and solve problems.

    • @ackkipfer
      @ackkipfer 6 ปีที่แล้ว +4

      Could u do that with ARK: Evolution Evolved? if u halved, would be amazingly!

    • @MemeScreen
      @MemeScreen 6 ปีที่แล้ว

      yo bro

    • @willbaden2671
      @willbaden2671 6 ปีที่แล้ว

      Ay versaucey here you are again in random videos

    • @Thalario
      @Thalario 6 ปีที่แล้ว +9

      @@gentlevandal7589 Most problems need reusable and composable solutions. This is not it. Extreme optimization incurs extreme costs.

  • @KrazeeKrab
    @KrazeeKrab 3 ปีที่แล้ว +2311

    It's insane to think games back then were written in Assembly.
    It's a miracle so many got released at all.

    • @aoeu256
      @aoeu256 3 ปีที่แล้ว +26

      Macro assembler maybe?

    • @mkzhero
      @mkzhero 3 ปีที่แล้ว +406

      If by 'miracle' you just mean 'people who knew what they where doing' lol

    • @KrazeeKrab
      @KrazeeKrab 3 ปีที่แล้ว +100

      @@mkzhero basically, yes xD

    • @john295
      @john295 3 ปีที่แล้ว +67

      ngl, I actually enjoy programming in assembly

    • @hpsmash77
      @hpsmash77 3 ปีที่แล้ว +156

      programming in assembly is much more fun for me
      and those dude knew what they were doing and didn't pretend that writing a 91GB game and the showing off makes you cool
      and compression is still alive BOTW was just 13GB even after so much content

  • @kopmis
    @kopmis 5 ปีที่แล้ว +6661

    If this game would have been released 35 years ago it would have been a genre-defining classic and one of the best looking NES games ever

    • @horusreloaded6387
      @horusreloaded6387 5 ปีที่แล้ว +432

      "Genre defining classic"
      But they released it in this decade where the genre was already well-defined and copied by this game.

    • @ace-smith
      @ace-smith 5 ปีที่แล้ว +843

      @@horusreloaded6387 did you read any of the rest of the comment

    • @horusreloaded6387
      @horusreloaded6387 5 ปีที่แล้ว +60

      @@ace-smith yeah. So?

    • @ace-smith
      @ace-smith 5 ปีที่แล้ว +550

      @@horusreloaded6387 it says *if* it was released 35 years ago it *would have* been

    • @horusreloaded6387
      @horusreloaded6387 5 ปีที่แล้ว +287

      @@ace-smith yeah and i hate that kind of compliment.
      It is like saying "if you would publish this 9th grade math textbook in 1000 BC, you would be the smartest man alive". It is pointless and fuck all those people contributed to math/games i guess.

  • @NOTNOTJON
    @NOTNOTJON 5 ปีที่แล้ว +2843

    Next project: a cartridge that plays a 2 second MP3.

    • @RyumaXtheXKing
      @RyumaXtheXKing 5 ปีที่แล้ว +39

      You can do more.
      th-cam.com/video/M-1xLnXvCDg/w-d-xo.html

    • @ciel1486
      @ciel1486 5 ปีที่แล้ว +165

      and all it says is the n word

    • @AlyphRat
      @AlyphRat 5 ปีที่แล้ว +18

      So, a NES ROM that plays a DPCM file?

    • @chrissxMedia
      @chrissxMedia 5 ปีที่แล้ว +13

      dont think thats possible with such a slow cpu

    • @chrisakaschulbus4903
      @chrisakaschulbus4903 5 ปีที่แล้ว +1

      @@chrissxMedia i told you, android is much better than this crap

  • @jamdiaz9346
    @jamdiaz9346 5 ปีที่แล้ว +1328

    The graphics are almost near SNES quality but managed to fit it to run for the NES great job man! The soundtrack is well made as well

    • @no_nameyouknow
      @no_nameyouknow 5 ปีที่แล้ว +113

      It looks great but the graphics are strictly NES quality. Plenty of NES games have the same level of detail, few have the same artistic quality but they exist. Castlevania for example has comparable graphics, especially Dracula's Curse. Snes is capable of way more. These are just simple facts, I am not bashing on the game.

    • @jamdiaz9346
      @jamdiaz9346 5 ปีที่แล้ว +19

      @@no_nameyouknow i guess you have a point there SNES games have so much more, but yeah as you said, it looks great!

    • @En.GergerRacc
      @En.GergerRacc 5 ปีที่แล้ว +3

      Battle Toads is an NES game.

    • @Sithedd
      @Sithedd 5 ปีที่แล้ว +34

      It's ok OP, we get what you meant. Don't let the nerd get you down. Even though he's right

    • @jamdiaz9346
      @jamdiaz9346 5 ปีที่แล้ว +5

      @@Sithedd awww thanks man, it's okay though I'm always up for information :D

  • @janLilin
    @janLilin 4 ปีที่แล้ว +264

    That is just insane. I can imagine if I was a kid back then, I'd have played this so much. The level of optimization at play is incredible, and I'm amazed it's just 40 kilobytes. Buying right away.

  • @FloatingSunfish
    @FloatingSunfish 5 ปีที่แล้ว +507

    Truly a prime example of doing it for the art.
    You gotta admire these game developers who not only think around limitations in ingenious ways but also have the passion to code in _friggin' _*_Assembly._*

    • @handsomebrick
      @handsomebrick 5 ปีที่แล้ว +19

      Assembly seems interesting to me. It would require far more extreme documentation than any other form of programming, I think, but it would be liberating.

    • @BlakeSandenMedia
      @BlakeSandenMedia 5 ปีที่แล้ว +19

      First: you should know there is no single “assembly language”. In theory, there could be a different language per processor type .. Make sense ?

    • @handsomebrick
      @handsomebrick 5 ปีที่แล้ว +8

      @@BlakeSandenMedia But all assembly languages directly translate to machine code, which is what makes them amazing.

    • @BlakeSandenMedia
      @BlakeSandenMedia 5 ปีที่แล้ว +14

      @@handsomebrick machine code is essentially a set of instructions for a particular processor. More values of 1's and 0's at it's core (70's)(early 80's) do you believe machine code applies or would assemly code apply better here ?

    • @X606
      @X606 5 ปีที่แล้ว

      I think if you are gonna write code like that on a modern computer at least do it in CIL or something so you don't have to make a separate version for every processor.

  • @delet3999
    @delet3999 5 ปีที่แล้ว +3308

    Imagine if we gave him 40 mb

    • @lucianothewindowsfan
      @lucianothewindowsfan 4 ปีที่แล้ว +149

      It wouldn't fit on an NES cartridge at all.

    • @_loxymore_
      @_loxymore_ 4 ปีที่แล้ว +556

      @@lucianothewindowsfan it's not what he's trying to say, he wants to say : imagine how much content they could fit into 40 mb compared to 2020 games.

    • @bastbo3225
      @bastbo3225 4 ปีที่แล้ว +156

      Key word: *Imagine*

    • @GTS300Coupe
      @GTS300Coupe 4 ปีที่แล้ว +214

      Super Mario 64 was done with 8MB

    • @Nikku4211
      @Nikku4211 4 ปีที่แล้ว +51

      Imagine if we gave him 700 MB... 🤔

  • @kristijanoros7208
    @kristijanoros7208 4 ปีที่แล้ว +4928

    Developers then: I have succesfully made a 40kb game
    Developers now: omg my health bar takes 1Gb of space halp

    • @revimfadli4666
      @revimfadli4666 4 ปีที่แล้ว +731

      And runs through 40 layers of inefficiently-coded 'easy & convenient' libraries

    • @marcusexperimental
      @marcusexperimental 4 ปีที่แล้ว +48

      Me who was the 100 like

    • @xirabolt
      @xirabolt 4 ปีที่แล้ว +183

      Tried installing GTAV only to learn it takes up nearly 120GB and I either needed to install to my slow slave drive, or purchase a bigger main SSD.
      Though I'm more annoyed by ATI and their ridiculously bloated graphics drivers. I just need it to scale the HDMI output, that shouldn't take gigabytes. 0% underscan never works for anyone, why doesn't it default to 5%?

    • @2kBofFun
      @2kBofFun 4 ปีที่แล้ว +14

      I like VFD handheld games, these are only 2kB

    • @thenextwindow
      @thenextwindow 4 ปีที่แล้ว +73

      Considering the video you just watched, those should BOTH say "Developers now"

  • @SpringDavid
    @SpringDavid 3 ปีที่แล้ว +2031

    "Our game takes only 12 gb."
    "Our game takes only 1 gb!"
    "Our game takes about 500 mb!"
    "Ours takes only 40 kb."
    "You meant mb?"
    "No, 40 KB"
    *_*fear fills the room_**

    • @renzmarualegre5990
      @renzmarualegre5990 3 ปีที่แล้ว +68

      I hear gasps

    • @patrickp.1998
      @patrickp.1998 3 ปีที่แล้ว +35

      "My Kung Fu is better than yours" whooshpow ,slapinyourface 😂

    • @WhiteMagicRaven
      @WhiteMagicRaven 3 ปีที่แล้ว +34

      .kkrieger look a Doom III clone in 64 kb

    • @dadeusz3083
      @dadeusz3083 3 ปีที่แล้ว +24

      i cant hear? 40B?

    • @markusTegelane
      @markusTegelane 3 ปีที่แล้ว +8

      @@WhiteMagicRaven that game is still bigger and takes ages to load

  • @kulitmed
    @kulitmed 5 ปีที่แล้ว +430

    "Limitations breed creativity"
    With that said, please make a SNES project!

    • @ChezzyKnytt
      @ChezzyKnytt 4 ปีที่แล้ว +29

      Pushing SNES to the limit would be amazing.

    • @omnomgamer8633
      @omnomgamer8633 4 ปีที่แล้ว +7

      Sequel

    • @ciaragarrity6425
      @ciaragarrity6425 4 ปีที่แล้ว +7

      Yes, please, also theres a channel in vietnamese about that topic. Yugisokubodai has a big playlist of videos of SNES programming, so underrated. She does english subtitles. Theyre very long videos.

    • @notsosunshiny4557
      @notsosunshiny4557 4 ปีที่แล้ว +3

      I think it would be cool to see a 16 bit sequel to this game

    • @Nikku4211
      @Nikku4211 4 ปีที่แล้ว +2

      @@SoicBR The SNES' CPU is literally the same architecture as in NES', many parts of the hardware work very similarly, even the way the SNES reads controller buttons is the same, just with more buttons to read.

  • @kinsondigital
    @kinsondigital 6 ปีที่แล้ว +437

    As a software engineer and game developer, I find this so fascinating. I grew up during the 80's so this speaks to me. So awesome and I love what you did. Great job guys!!

    • @CyclesMcHurtz
      @CyclesMcHurtz 6 ปีที่แล้ว +12

      As a game developer who worked on some of these platforms, it is really neat to see people rediscovering and using them again. 6502 coding is a bit of a lost art!

    • @ovrsurge4689
      @ovrsurge4689 6 ปีที่แล้ว +3

      You should check out gamehut's channel, he has content on lots of games he was involved in the dev process of and presents them in a very similar fashion to this video.

    • @JoZerpPL
      @JoZerpPL 6 ปีที่แล้ว

      As gamer those things sound weird to me but i really enjoy what game devs do.
      But my future job will be a game dev and... that sounds fascinating, hard and scary.

    • @eddypsnation
      @eddypsnation 6 ปีที่แล้ว

      Kinson Digital Oh snap could you give me any tips I plan on becoming a game developer or a software engineer.

    • @kinsondigital
      @kinsondigital 6 ปีที่แล้ว

      Well the first thing you have to get under your belt is learning a programming language. If you are not dedicated enough to get some coding skills and concepts under your belt first, you could just dive straight into game development using a tool like Unity, Construct 3, GameMaker or Stencyl. Those are great but you do not get the power and understanding of how all these everything works. I recommend not using those tools and using code. It sounds like you want to do more than just make a game, but also learn to code in general. I HIGHLY recommend C#.

  • @BdR76
    @BdR76 4 ปีที่แล้ว +419

    7:04 Also notice how the alphabet is optimized, the J, O and Q are missing ;)

    • @philbateman1989
      @philbateman1989 4 ปีที่แล้ว +170

      That same kind of optimization is visible if you look at early betas of Sonic 1. The final stage was originally called "Clockwork Zone", however, it displays as "Clock ork Zone". Why? Because there's no W in the font. Why? Because no other level title has a W in it.
      Essentially, they chose names that had no unique letters in them for the titles:
      A:
      Marble
      Spring Yard
      Labyrinth
      Starlight
      Scrap Brain
      Final Zone
      B:
      Marble
      Labyrinth
      Scrap Brain
      C:
      Scrap Brain
      (Whoops, right? Nope, there's a C in "Sonic Got A Chaos Emerald" which uses the same font)
      D:
      Spring Yard
      (Same situation as above)
      E:
      Appears in every zone name
      F:
      Final Zone
      (This is the only letter that only appears once, so why didn't they change the title? Because you can make an F using the top half of an E and the bottom of a P!)
      G:
      Green Hill
      Spring Yard
      Starlight
      H:
      Green Hill
      Labyrinth
      Starlight
      I:
      Green Hill
      Spring Yard
      Labyrinth
      Starlight
      Final Zone
      J:
      Never used
      K:
      Never used (Was also unique in Clockwork)
      L:
      Green Hill
      Marble
      Labyrinth
      Starlight
      Final Zone
      M:
      Marble
      (also appears in Sonic Got A Chaos Emerald)
      N:
      Appears in every zone name
      O:
      Appears in every zone name
      P:
      Spring Yard
      Scrap Brain
      Q:
      Never used
      R:
      Green Hill
      Marble
      Spring Yard
      Labyrinth
      Starlight
      Scrap Brain
      S:
      Spring Yard
      Starlight
      Scrap Brain
      T:
      Starlight
      (Also appears in "Sonic Got Them All")
      U:
      Never used
      V:
      Never used
      W:
      Never used
      X:
      Never used
      Y:
      Spring Yard
      Labyrinth
      Z:
      Used in every zone name
      So, the alphabet they made didn't need to include J, K, Q, U, V, W or X
      By having the title Clockwork Zone, they would need to include a W and a K, as you can't construct those from other letters, and they'd only appear once anyway, so they simply changed the name.

    • @CutieFakeKirby
      @CutieFakeKirby 3 ปีที่แล้ว +4

      These letters are not used, so what's the point of adding them?

    • @cheddartaco
      @cheddartaco 3 ปีที่แล้ว +25

      you could say there is an O, since it uses the same sprite as 0 which definitely can't be cut out of the game

    • @patrickp.1998
      @patrickp.1998 3 ปีที่แล้ว

      A is missing too

    • @icarotagima3099
      @icarotagima3099 3 ปีที่แล้ว +14

      In some typewriters there is also optimization:
      -The lower case L and the 1 were the same button
      -The ! Was made pressing . And '
      - upper case O and 0 were the same button too

  • @torqtorqtorq
    @torqtorqtorq 3 ปีที่แล้ว +285

    This is by far the greatest video I've ever seen to explain why game dev on the NES was so hard and why Nintendo, Capcom, and Konami were such masters of their craft.
    It reminds me of writing music in the .MOD format in the early 90s, where we had to get deeply creative with the use of our 4 tracks and would pitch shift, arpeggiate, and slide samples to turn them into different instruments. Very often the bass line and all percussion would be sharing a track, and only one or the other could play at any given moment in the song. This led to the introduction of things like a "C note bass + snare" sample to use at the exact moment the bass needed to play a C and the snare needed to hit. It was a trade-off; to get those sounds at the same moment, we had to give up a few KB of memory. All in the name of adhering to the 8-bit limitation and keeping the file size as low as possible because, on a 2400 baud modem in 1992, 300KB of song would take a minimum of 21 minutes to download, and you'd only have 60 minutes in your BBS login per day. Adding a 12KB sample meant adding a full minute to the eventual download, so we aimed to keep those file sizes as low as possible.
    Even writing music for the NES was like this; 5 tracks, and each track dedicated to a different waveform with a digitized sample track. Putting in a short voice sample (like "no way, dude!" in Skate or Die) could eat up 10% or more of your total allotted game memory.
    The connected world today is so much better in so many ways, but I still love the nostalgia behind cracking those limitations and finding all the creative ways to make it happen. It was natural puzzle-solving at its finest.

    • @Prima10ne
      @Prima10ne ปีที่แล้ว +4

      some might say it was the final frontier!

  • @dikinebaks
    @dikinebaks 5 ปีที่แล้ว +2061

    Rockstar: Red Dead Redemption 2 requires 150 GB of free memory.
    Morphcat: Hold my cartridge...

    • @euradelcyan1944
      @euradelcyan1944 5 ปีที่แล้ว +68

      It really is incredible what they were able to cram into 40kilobytes and still make a fun and engaging game

    • @dacypher22
      @dacypher22 4 ปีที่แล้ว +75

      The vast majority of these disgusting installation sizes are 4K textures (generally at least 95%). You can compress them a little bit (and they do) but for the most part there isn't a whole lot you can do about it. What they could do is create non-4K versions for players not taking advantage of that resolution. That would shrink games back down to maybe 10 GB, but then 1080p textures are no joke either so you can't go much below that and still have a decent-looking texture-mapped game.

    • @dacypher22
      @dacypher22 4 ปีที่แล้ว +37

      @@miso-ge1gz I'm in the same boat. I can only tell a difference between 4K and 1080p for maybe 2 weeks after I get a new pair of glasses. That is why I think it would be awesome for publishers to offer a second download option to offer 1080p textures since it would cut down the game sizes substantially. If I recall correctly, it could be down to about 10 GB rather than 40 - 60 GB for a typical game.

    • @KuraIthys
      @KuraIthys 4 ปีที่แล้ว +17

      Many games do the opposite.
      The base download is 'low quality' textures then there's an optional download for higher quality once.
      This makes more sense than doing it the other way around, though it does mean people that don't pay attention get a lower quality version by default...

    • @TheThursty100
      @TheThursty100 4 ปีที่แล้ว +13

      @@KuraIthys it's really not that hard to download the assets only when the users turns the resolution up high. Like literally, ask the user at the start at what resolution he wants to play, if he goes all out with those 4k graphics, tell them.they need to be downloaded first. If he doesn't pick 4k, don't download them. Shit, just downloaded the 4k assets in the background while the user plays at 1080p if you, as a game company, are so desperate to have the user experience these graphics his graphics card and monitor can't even properly handle. But don't stuff unnecessary large files into a god damn game download, please!
      And if the user doesn't pay attention to the god damn resolution he picks himself, it's his own damn fault. Besides the fact that he shouldn't be surprised if his game doesn't looks as crisp on his 1 grand 4k Ultra HD curved rgb backlit gaming monitor, when he doesn't even choose the 4k Option.

  • @aymanhassan8178
    @aymanhassan8178 5 ปีที่แล้ว +425

    2yrs ago when i've watched this video I said omg i want to be like you guys and now i've enrolled at my computer science college i really love this video keep going

    • @MorphcatGames
      @MorphcatGames  5 ปีที่แล้ว +131

      Good luck! Cheers!

    • @Taima
      @Taima 5 ปีที่แล้ว +11

      That's so awesome. What sort of things did you learn before getting to that point? Or are you going to acquire all of your knowledge through schooling?

    • @imcarter
      @imcarter 4 ปีที่แล้ว +3

      Awesome

    • @aymanhassan8178
      @aymanhassan8178 4 ปีที่แล้ว +4

      @@Taima
      really nothing related to the cs Field but after finishing my first year i started to dig into many cs Fields on my own as your first year will make you ready to learn anything related to cs easily
      And sorry for the late reply

    • @pellaria8012
      @pellaria8012 3 ปีที่แล้ว

      Cringe

  • @Krawurxus
    @Krawurxus 4 ปีที่แล้ว +428

    It's actually super interesting to see the lessons learned from over 30 years of game design and development applied to and developers cleverly play around the limitations of the technology of the NES. The wall jumping and slick controls would've been a major revelation to players back then. This is running on a console where many games just wouldn't allow you to adjust your trajectory mid-jump at all. The closest comparison I can think of is to Kid Icarus. The difference in quality and polish is incredible.

    • @Lowlightt
      @Lowlightt 3 ปีที่แล้ว +12

      Actually there were Nes games with wall jumping too.

    • @Erlisch1337
      @Erlisch1337 3 ปีที่แล้ว +17

      Ninja Gaiden?

    • @Krawurxus
      @Krawurxus 3 ปีที่แล้ว +30

      @@Erlisch1337 Yes but compared to how it's executed here wall jumping and movement in general was much more janky in Ninja Gaiden.

    • @phoenixdk
      @phoenixdk 2 ปีที่แล้ว +5

      Kabuki Quantum Fighter (for example) had even more control, and handles great, including wall jumping of course. But a 4-player platformer would have blown minds in the NES days.

    • @DoomKid
      @DoomKid 2 ปีที่แล้ว +2

      Dude, the NES has Batman. I think everyone is forgetting how good the good games looked and played. It’s like people think the NES was the 2600 or something!

  • @Vanska0
    @Vanska0 2 ปีที่แล้ว +53

    We just finished playing this game on real hardware with a friend and i want to thank the entire team behind this little modern gem of a project~ The polish is off the charts and the game is a ton of fun to play! We felt like kids cheering eachothers when only one of us made it to the bossfights and when beating the boss both of us screaming our heads off from joy!
    This lil making of video is also incredibly inspiring stuff! I hope you guys get to make more nes games in the future :3 !

  • @KanjoosLahookvinhaakvinhookvin
    @KanjoosLahookvinhaakvinhookvin 5 ปีที่แล้ว +2169

    You HAVE to give them props for making a four player game for a system with two controller ports

    • @Windo0ows
      @Windo0ows 5 ปีที่แล้ว +179

      There is a multi tap

    • @KanjoosLahookvinhaakvinhookvin
      @KanjoosLahookvinhaakvinhookvin 5 ปีที่แล้ว +175

      @@Windo0ows Yeah, I know, but who tf programs for it, especially in TWENNYNINETEEN
      (Let's be real, this game seems destined to get pirated via emulation or at least ported to Steam. So props for thinking ahead to design *for* the pirates, which is almost all of us.)

    • @Windo0ows
      @Windo0ows 5 ปีที่แล้ว +9

      Kanjoos Lahookvinhaakvinhookvin ikr

    • @Windo0ows
      @Windo0ows 5 ปีที่แล้ว +9

      Kanjoos Lahookvinhaakvinhookvin I don’t even have a nes

    • @desertcat6719
      @desertcat6719 5 ปีที่แล้ว +128

      @@KanjoosLahookvinhaakvinhookvin you know emulation isn't pirating right?
      they even said that they're going to sell a rom version of the game

  • @Horos_de_Vega
    @Horos_de_Vega 5 ปีที่แล้ว +855

    “Art is born of constraint, lives on struggle, dies on freedom.” (André Gide)
    This game is Art.

    • @daskampffredchen
      @daskampffredchen 5 ปีที่แล้ว +11

      @That guy We call these type of person morons

    • @47Mortuus
      @47Mortuus 5 ปีที่แล้ว +5

      that's one of the most retared quotes I've read in my life. For sure. What an idiot. "dies on freedom". How stupid do you have to be?

    • @user-og6hl6lv7p
      @user-og6hl6lv7p 5 ปีที่แล้ว +3

      ^ Best example of irony I've seen yet

    • @FraserSouris
      @FraserSouris 5 ปีที่แล้ว +1

      Eh, it's a fun novelty but as a game, it's tech is way too limited. Shovel Knight shows how to be nostalgic without limiting yourself too much

    • @sibane288
      @sibane288 5 ปีที่แล้ว +1

      @@47Mortuus Nobel Prize in Literature stupid.

  • @b4ttlemast0r
    @b4ttlemast0r 4 ปีที่แล้ว +243

    This game was available at the retro section of Gamescom. Me and my friends had a lot of fun playing it!

    • @Dylan_thebrand_slayer_Mulveiny
      @Dylan_thebrand_slayer_Mulveiny 4 ปีที่แล้ว +1

      Liar

    • @bobyford8051
      @bobyford8051 4 ปีที่แล้ว +41

      @@Dylan_thebrand_slayer_Mulveiny ikr. Friends? Lmao

    • @musichez8358
      @musichez8358 4 ปีที่แล้ว +8

      @@bobyford8051 Don't need to be jealous that this guy have friends but you don't.

    • @mateuszodrzywoek8658
      @mateuszodrzywoek8658 4 ปีที่แล้ว

      @@musichez8358 he meant that op lied about having friends you bottomless sink

    • @funkyfresh1013
      @funkyfresh1013 4 ปีที่แล้ว +3

      @@mateuszodrzywoek8658 its called a joke u dyslexic donut

  • @DocBrewskie
    @DocBrewskie ปีที่แล้ว +78

    I just started playing micro mages. My 11 yr old daughter sat down watching me. After 2 levels I hear “I want to try”. Very few “retro” games get her attention. You did very well!

    • @graaau4582
      @graaau4582 ปีที่แล้ว

      That’s because that’s not a retro game
      It just looks like one

    • @idkidkman101
      @idkidkman101 ปีที่แล้ว +5

      @@graaau4582I mean, it fits the definition of "retro". Also, it is an attractive NES game.

  • @Alien426
    @Alien426 6 ปีที่แล้ว +368

    This page on TH-cam is 302.097 Byte large. Over 7 times as large as the game.
    Without images, but also with style (CSS) and script (JS) files it is around 2.530.000 Byte. Over 60 times the size of the game!

    • @DogeisCut
      @DogeisCut 6 ปีที่แล้ว +5

      Wow

    • @longlostwraith5106
      @longlostwraith5106 6 ปีที่แล้ว +38

      My goodness... The internet has become really bloated, hasn't it?...

    • @Alien426
      @Alien426 6 ปีที่แล้ว +28

      Yeah, it's really bad. Kickstarter, Patreon, Facebook and Wix powered websites are even worse.

    • @bigthot1077
      @bigthot1077 6 ปีที่แล้ว +14

      AlienFourTwoSix Its not bad?? Modern computer have faster connection, more storage, faster processing, Better in every way and naturally we can now use more complex web pages which are bigger. And why are you mentioning sizes in bytes rather than KB? And 2000KB (2530000B/2MB/.0002GB) is teeny by todays standard

    • @Alien426
      @Alien426 6 ปีที่แล้ว +32

      > Modern computer have faster connection, more storage, faster processing, Better in every way and naturally we can now use more complex web pages which are bigger.
      What do we gain from that?
      For example, there is a list of 104 translation languages (7554 Byte) on every page, regardless of which languages are even supported. By removing empty lines from the HTML code, we can save 1390 Byte.
      You (and I) are probably on a fast connection with unlimited download, but there are people in the world who don't have that luxury.
      Wasting computing power and storage space just "because we can" is not a good reason. Watching this video, I thought you'd have an appreciation for keeping things small and efficient.
      > why are you mentioning sizes in bytes rather than KB?
      Byte is the base unit. I wanted to keep it simple, since a lot of people nowadays don't know or care about the size of files. And because of "a KB is not 1000 B, but 1024 B". I also wanted to avoid a decimal sign (because I use a comma and think it's sensible, but there are people who use a dot and would be irritated).
      But you are right; since the video title was in Kilobytes, I should have used that unit.

  • @Alzter0
    @Alzter0 4 ปีที่แล้ว +717

    Meanwhile: Unreal Engine 5's demo shows artists can import models straight from Zbrush with millions of polygons

    • @poweroffriendship2.0
      @poweroffriendship2.0 4 ปีที่แล้ว +13

      That explains about the PS1 graphics. It has a lot of polygons and pixel texture.

    • @1ups_15
      @1ups_15 4 ปีที่แล้ว +75

      lmao yeah those games will require more than 500GB of space

    • @LuniFoxo
      @LuniFoxo 4 ปีที่แล้ว +2

      Oh hello there Alzter.

    • @notsosunshiny4557
      @notsosunshiny4557 4 ปีที่แล้ว +23

      Haha storage space go bye bye

    • @pottuvoi2
      @pottuvoi2 4 ปีที่แล้ว +8

      I really cannot wait to see the source and how they do the assets, should be lovely to be able to do assets for Nanite just in time using fractals..

  • @DylanGoubin
    @DylanGoubin 6 ปีที่แล้ว +269

    I usually don't comment TH-cam videos but when I do it's because I feel the need to state that these guys are geniuses.

    • @thehammurabichode7994
      @thehammurabichode7994 5 ปีที่แล้ว +3

      Your comment history must be like a little snapshot of impressive stuff on this site

    • @thehammurabichode7994
      @thehammurabichode7994 5 ปีที่แล้ว

      @@15-Peter-20 Yeah, precisely

    • @15-Peter-20
      @15-Peter-20 5 ปีที่แล้ว

      @@thehammurabichode7994 hahahahahahha

    • @grackleking6413
      @grackleking6413 5 ปีที่แล้ว

      Good to see you commenting, then! A rare sight indeed! I hope you have a nice day.

  • @TonyStarkCLC
    @TonyStarkCLC 6 ปีที่แล้ว +507

    He's basically applying Satoru Iwata's method of compressing and optimizing data, the same he used with Pokemon Gold & Silver versions.

    • @EnglishLaw
      @EnglishLaw 5 ปีที่แล้ว +28

      I bet you are fun at parties lol

    • @DaJodad
      @DaJodad 5 ปีที่แล้ว +184

      @@EnglishLaw This is the worst use of this comment I've ever seen

    • @Lolerburger
      @Lolerburger 5 ปีที่แล้ว +51

      I doubt Satoru was the inventor of this method. It was likely independently developed by multiple studios given the common constraints everyone faced and the fact that building something from reusable parts isn't exactly arcane knowledge.

    • @mrmcspiff4014
      @mrmcspiff4014 5 ปีที่แล้ว +24

      @@EnglishLaw God forbid anyone try to educate and teach others anything. Or try to learn something rather than party all the time.

    • @bruceU
      @bruceU 5 ปีที่แล้ว

      @Politically correct speech isn't my thing, fk off except iwata didnt invent any of those methods. seriously, do you think iwata invented... optimization???

  • @SagoFanHD
    @SagoFanHD 6 ปีที่แล้ว +3410

    Most of the Today's AAA games has more than 40gb and nothing inside. But oh boy, this game has a spirit.

    • @Walamo
      @Walamo 6 ปีที่แล้ว +103

      Actually most games is from 300MB to 10GB, What you might think of is AAA games which are very often over 40GB.

    • @SagoFanHD
      @SagoFanHD 6 ปีที่แล้ว +161

      And I'm talking about those "glorious AAA games" that literally has nothing inside except 4k textures. Almost All Ubisoft games fits to the profile for example :D

    • @kabochaVA
      @kabochaVA 6 ปีที่แล้ว +130

      Not only does it have spirit, but it has a ghost!

    • @SagoFanHD
      @SagoFanHD 6 ปีที่แล้ว +19

      Oh, Right!

    • @Omega17TheTrue
      @Omega17TheTrue 6 ปีที่แล้ว +69

      YUGE random generated open maps with 95% empty space and 999 super boring collecting quests.

  • @kirishima638
    @kirishima638 5 ปีที่แล้ว +238

    So basically being a game designer in the 80s also required a background in cryptology.

    • @TB-jl9fr
      @TB-jl9fr 5 ปีที่แล้ว +12

      No, but it requires some real programming skills where you realy have to know what you are doing. It´s not like the modern "copy and paste and hope that it run however".

    • @kirishima638
      @kirishima638 5 ปีที่แล้ว +4

      @@TB-jl9fr That's pretty much most of the programming industry now.

    • @anonUK
      @anonUK 5 ปีที่แล้ว +2

      Computing started with cryptology nearly 80 years ago.

    • @supercellonova
      @supercellonova 5 ปีที่แล้ว +1

      Development software has evolved a great deal. We now have programs that do it for us.

    • @ShallRemainUnknown
      @ShallRemainUnknown 4 ปีที่แล้ว +2

      @@supercellonova And don't forget, even these guys had the benefit of relying on the NES' specialized gaming hardware, such as hardware sprites, tiles, palettes, tile/sprite flipping hardware scrolling, memory mappers, sound chip, ability to read joy pad inputs, etc. Earlier systems didn't have any of those things built in.

  • @dannywaving
    @dannywaving 2 ปีที่แล้ว +33

    This is an optimization MASTERPIECE!

  • @FourFourSeven
    @FourFourSeven 5 ปีที่แล้ว +57

    This is like trying to construct a building with only a palm-sized pile of sand and a toothpick.

  • @fqidz
    @fqidz 6 ปีที่แล้ว +1077

    today: kb is nothing
    next century: tb is nothing

    • @mariannmariann2052
      @mariannmariann2052 6 ปีที่แล้ว +105

      Next century: Zottabyte is nothing

    • @yakumo885
      @yakumo885 6 ปีที่แล้ว +34

      It depends, there are still applications which works with just a few Kbites

    • @cappie2000
      @cappie2000 6 ปีที่แล้ว +43

      @@mariannmariann2052 Just imagine the wasted space...

    • @solidsnake7023
      @solidsnake7023 6 ปีที่แล้ว +51

      If only it were true with Internet speed :(

    • @I_am_a_human_not_a_commodity
      @I_am_a_human_not_a_commodity 6 ปีที่แล้ว +28

      Tuberculosis is nothing? I'll have you know... *trails off into pointless comment section argument XD

  • @augustuswade9781
    @augustuswade9781 4 ปีที่แล้ว +251

    This is a call from a earlier era when coders have to optimize their programs to fit into the few kilobytes of memory a computer has.
    Brings up so many memories.

    • @napptus
      @napptus 4 ปีที่แล้ว +14

      Developers today: Ah, just let these unuseful 2GB in the game, doesn't make a difference

    • @nuclearsummer7796
      @nuclearsummer7796 4 ปีที่แล้ว +9

      @@napptus I mean... its not really their fault, it's all the layers of abstraction that exists... depending on the language

    • @napptus
      @napptus 4 ปีที่แล้ว +5

      @@nuclearsummer7796 Lol you stole my Profilepic.

    • @thefoolishgmodcube2644
      @thefoolishgmodcube2644 4 ปีที่แล้ว +1

      @@nuclearsummer7796 I hate abstraction. I get that it's supposed to keep the code simple to use, but the need to know basis mentality of abstraction can be a slap to the face if you're experienced enough to know how to optimize whatever the abstraction is hiding.

    • @SerBallister
      @SerBallister 3 ปีที่แล้ว +5

      @@napptus Memory is cheap today, unlike developer time. Cartridge ROMs cost a fortune back then.

  • @pukalo
    @pukalo 2 ปีที่แล้ว +211

    This game with its graphics and extremely efficient coding would've been paradigm-shifting if it was released in the 1980s.

    • @ZesPak
      @ZesPak ปีที่แล้ว +7

      That's exactly what Super Mario was.

    • @rtmclean484
      @rtmclean484 ปีที่แล้ว +9

      Look into some of the games on the NES library, Kirby and Battletoads pushed the systems limits and look amazing.

    • @AzraelNewtype0079
      @AzraelNewtype0079 ปีที่แล้ว +11

      @@rtmclean484 Neither of which were NROM games. They both had expanded capabilities over the original cartridge spec.

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

      @@rtmclean484 Most games after 1988~ had special hardware included inside the game cartridge that allowed for more than 40KB of program data, and multiple 8KB pages for graphics storage. It could also contain hardware that enhanced other aspects of the system too, like a Clock for precisely timing events/controlling changes to graphics data (made it vastly easier to pull off a variety of complex graphical effects).
      it's why NES games became radically more complex in their visual presentation and gameplay in a incredibly short amount of time after the NES was globally launched.

  • @KhazWolf
    @KhazWolf 6 ปีที่แล้ว +4

    9:09 I've done some similar work on the SNES, and I just wanna say this step of your process for symettry-offset is ingenious and I would never have thought of it.

  • @gomotion
    @gomotion 5 ปีที่แล้ว +29

    Randomly recommended to me, now I've pledged that €42 tier... incredible work guys

  • @bujin5455
    @bujin5455 4 ปีที่แล้ว +116

    Seriously cool explanation of the techniques used to achieve those sort of results. Also, that is one of the best NES games I think I've seen. Usually characters in NES are no where nearly that expressive. Amazing work!

  • @biancamarsh1044
    @biancamarsh1044 4 ปีที่แล้ว +27

    this video pops up in my recommended every ~3 months and i watch it everytime

  • @SJNaka101
    @SJNaka101 6 ปีที่แล้ว +31

    Okay, this is a very well done video. I have a MINIMAL amount of programming knowledge but it was really easy to follow and I could see how gosh dang clever a lot of these solutions were. Man, this makes the story behind pokemon gold and silver even MORE legendary. Thanks!

  • @grackleking6413
    @grackleking6413 5 ปีที่แล้ว +132

    Videos like this really make me appreciate games like Super Mario Bros. Like a bottle with a miniature garden inside, or a really well-made sandwich, it fits so much in so little space. Once you can see the scale in which the game exists, it’s value increases exponentially. I hope I never lose this feeling.
    And then you see Super Mario Bros. 3! How did they do it? There’s something like 3 times the amount of levels, OVER 3 times the amount of enemies, world maps, AND it scrolls up and down as well as left and right!? So cool! I’m really looking forward to playing these with my sister.

    • @ArmadilloAl
      @ArmadilloAl 5 ปีที่แล้ว +35

      SMB3 had additional chips in the cartridge itself that increased the available memory.
      That was one of the advantages of cartridge-based systems - as the price of memory dropped over the years (and remember that SMB3 was over three years later), you could add more memory chips to the cartridge for the same price. This, combined with the fact that NES programmers' now had three more years of experience with the NES, meant you had a lot more to work with.

    • @grackleking6413
      @grackleking6413 5 ปีที่แล้ว +2

      ArmadilloAl so cool, man

    • @maow-tty-archive
      @maow-tty-archive 5 ปีที่แล้ว

      This game looks better than the original Super Mario Bros, I'd say it looks better than New Super Marios Bros on the Wii U.

  • @OliverTwins
    @OliverTwins 6 ปีที่แล้ว +94

    Excellent video - we used ALL these techniques for our NES Games - the Dizzy Games, DreamWorld Pogie, Super Robin Hood etc.

    • @MorphcatGames
      @MorphcatGames  6 ปีที่แล้ว +25

      Cheers! You're an inspiration. Long live ASM :-)

    • @OliverTwins
      @OliverTwins 6 ปีที่แล้ว +8

      @@MorphcatGames Well when I said all. I think you Map Optimisations (8.00 mins in) was very bespoke to your game and I'm not so sure that it's as useful as the rest of the principals.

    • @ziomalisty
      @ziomalisty 6 ปีที่แล้ว +1

      Have you guys seen Bandersnatch? If so- what do you think about Stefan's game? :D

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

    I started watching this video and basked in the nostalgia of the tile trickery that I knew existed (copying and flipping tiles to create bigger tiles and conserving space that way). But the part where you essentially halved the map cost by mirroring and shifting entire rows of tiles absolutely blew my mind. Amazing!

  • @creativebeetle
    @creativebeetle 6 ปีที่แล้ว +95

    I couldn't help but grinning the whole way through the video, seeing the optimisation and improvement of such limited games with new techniques and clever workarounds was a truly fantastic experience. The things you guys came up with were genius! I really hope you go a long way in the future!
    I'd watch an hour long documentary like this in a heartbeat! (even if its about the 'boring' parts)

    • @PuffyRainbowCloud
      @PuffyRainbowCloud 6 ปีที่แล้ว +4

      I think you'd like the channel Gamehut. He's one of the people who worked on major games for the Mega Drive and he goes over several interesting techniques in his videos, such as the FMV in Sonic 3D. It's all really interesting.

  • @androidaleccc
    @androidaleccc 6 ปีที่แล้ว +62

    The limitations of early computer hardware really made you have to think about how to manage your resources and optimize. Resource management was the name of the game for a computer engineer.

    • @greenaum
      @greenaum 6 ปีที่แล้ว +1

      Especially Sid Meier.

  • @CasualGamers
    @CasualGamers 5 ปีที่แล้ว +53

    Truly amazing job at the development, explanation and editing. Ich muss mein alt und kaputt Deutsch benutzen zu sagt: Danke fur das video!! I'm pretty sure that's wrong, but the German I learned is almost as old as the NES itself. LoL

  • @druidofpies
    @druidofpies 4 ปีที่แล้ว +126

    I don't care that I've watched this video at least 10 times, I'll watch it another 100 times again because it's just that good. Satisfying, fascinating, and lovely in every way

    • @thecarrieshot6411
      @thecarrieshot6411 ปีที่แล้ว +1

      Still watch it a lot too. Just loving to rewatch how they made this

    • @JackDaloots
      @JackDaloots ปีที่แล้ว +2

      same, this is my 8th watch in 2 years :D

  • @itsdoug7814
    @itsdoug7814 5 ปีที่แล้ว +1230

    Imagine a world where modern day AAA devs put this much effort into game optimization...

    • @fennadikketetten1990
      @fennadikketetten1990 5 ปีที่แล้ว +148

      Imagine the amount (and quality) of content shrinking at least 10 fold due to the insane amounts of time spent on optimization

    • @konan8353
      @konan8353 5 ปีที่แล้ว +165

      @@fennadikketetten1990 Imagine using nail clippers on your front teeth

    • @martiddy
      @martiddy 5 ปีที่แล้ว +122

      Developing a AAA game can take several years. If you try to optimize even the most minimum detail in order to save some bytes in your computer, then it would take them a whole decade or even more to finish it.

    • @konan8353
      @konan8353 5 ปีที่แล้ว +93

      @@martiddy yeah it's easier to optimise when your game is 40kb and not 120gb

    • @TubeHeader
      @TubeHeader 5 ปีที่แล้ว +40

      imagine if they already do

  • @Michirin9801
    @Michirin9801 6 ปีที่แล้ว +247

    I love videos like this! Ones which explain how retro games/hardware work in a concise and easy-to-understand manner, while still managing to go relatively in-depth with the info! Reminds me of Retro Game Mechanics Explained...

    • @vaguesoft8445
      @vaguesoft8445 6 ปีที่แล้ว +2

      Hey! I watch your vids. Cool seeing you here!

    • @DukeDudeston
      @DukeDudeston 6 ปีที่แล้ว +1

      I would thumb up this comment but seeing it at 100 pleases my OCD.

    • @imaginerus
      @imaginerus 6 ปีที่แล้ว

      Check out the Channel "GameHut", they have a lot of videos explaining retro coding secrets!

    • @Michirin9801
      @Michirin9801 6 ปีที่แล้ว +1

      I already watch it ;3

    • @hydrochloricacid2146
      @hydrochloricacid2146 6 ปีที่แล้ว

      Know of other channels like gamehut and RGME ? This is my crack cocaine

  • @PlastiGomi
    @PlastiGomi 6 ปีที่แล้ว +123

    I feel like buying a nes just for this game to support your work

    • @MsJavaWolf
      @MsJavaWolf 6 ปีที่แล้ว +29

      You can also buy a ROM version and play it on an emulator. They are selling the ROMs so you still support them,

    • @Purparmalm
      @Purparmalm 5 ปีที่แล้ว +3

      or you just buy it on steam

    • @itaishemer
      @itaishemer 5 ปีที่แล้ว +1

      Same. I know I can just buy the ROM/Steam version, but having a NES purely for the novelty of it sounds much more satisfying since the game was design to be played on that console, not the PC

  • @michaelthem3
    @michaelthem3 2 ปีที่แล้ว +49

    I love how you managed to animate the meta-sprites used in the title screen to fit em in one single sprite down in the screen hahahaha it's funnny but amazing at the same time! I love it! Shows that you know what you were doing in a creative way! 🙌🏼

  • @TelespielTobi
    @TelespielTobi 6 ปีที่แล้ว +65

    Very well summarized, explained and also visualized - this makes it so much better to understand. Great look behind the curtain, amazing how you worked around the limitations of 40kB, esp. the map optimization with shifted mirroring :D. Would love to see more of these behind the scenes!
    3:00 To be precise, it is 4 colors per sprite, just that only three of them are visible to the user, the fourth color indicating the transparent area. I know that you know it, I just wanted to mention it to the viewers who might not be aware ;)

  • @AdrianDX
    @AdrianDX 4 ปีที่แล้ว +27

    This video convinced me to buy the physical copy of this game and I played it with my let's play group (Twin-Stick Gamers) [two times actually, because we had some technical recording issues with our first playthrough]. And I have to give you guys mad props because this game instantly secured it's place at the top 5 TOP of my favorite NES games of all time. And that's saying a lot because NES is amongst my favorite consoles and has some of my favorite games of all time. Absolutely amazing work. Playing this 4-players is an absolute THRILL. Extremely good work, Morphcat Games! ^^

  • @akirabaes4644
    @akirabaes4644 5 ปีที่แล้ว +137

    Makes me wonder if you could make a deal to appear on Nintendo Switch's NES repertoire.

    • @TheThursty100
      @TheThursty100 4 ปีที่แล้ว +3

      That would be so incredibly sick!

  • @MintyRoot
    @MintyRoot 2 ปีที่แล้ว +4

    Just realized there's no letter Q in the tile map of the game.
    That means to save space they couldn't use certain words within the game. That's pretty interesting.

    • @jackgibson511
      @jackgibson511 2 ปีที่แล้ว +2

      Yeah but like when are you gonna commonly use the letter q

    • @MintyRoot
      @MintyRoot 2 ปีที่แล้ว +2

      @@jackgibson511 There's not a lot of occasions, but you can't mention an evil queen, or describe the game as a quest within the game.

    • @jackgibson511
      @jackgibson511 2 ปีที่แล้ว +2

      @@MintyRoot ah makes sense

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

      @@MintyRoot queen=monarch.

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

      @@MintyRoot quest = mission.

  • @DeepCDiva
    @DeepCDiva 6 ปีที่แล้ว +189

    No joke, I would love a series like this going through the motions of old consoles. The game looks amazing BTW, keep up the good work!

    • @outsidercain3038
      @outsidercain3038 6 ปีที่แล้ว +3

      I can only back you up on this.
      It fascinate me because it's well explained.

    • @TracksWithDax
      @TracksWithDax 6 ปีที่แล้ว +1

      Have you guys seen the channel GameHut? He's a guy from Traveler's Tale games, goes through a LOT of these really cool techniques too.

    • @theSato
      @theSato 6 ปีที่แล้ว

      look up the channel "Retro Game Mechanics Explained"

    • @Marcotonio
      @Marcotonio 6 ปีที่แล้ว

      I understand how you feel, but in order to progress through generations they'd have to learn a new programming language for every new title they release; by staying on NES they can get better at every iteration.

    • @metalheadmaniac8686
      @metalheadmaniac8686 2 ปีที่แล้ว

      yeah they keep making games for newer and newer consoles and eventually they try to fit a 3d open world rpg into a ridiculously small size

  • @redalchemy7322
    @redalchemy7322 6 ปีที่แล้ว +83

    There is some beautiful irony in that this video has costs more in data than the game it features. Really well done, and exceptionally informative!

    • @RAFMnBgaming
      @RAFMnBgaming 6 ปีที่แล้ว +3

      About a thousand times as much, going by the file size i got downloading the video.

  • @keissetje
    @keissetje 5 ปีที่แล้ว +36

    9:00 holy crap that was so elegant, it blew my mind! xD These unused bits, man. Treasure troves.

  • @Fritzafella
    @Fritzafella 3 ปีที่แล้ว +18

    9:30 Dude my jaw hit the floor when I saw you start scrolling the lines. Impressive as hell thought!

  • @pockrocks3524
    @pockrocks3524 6 ปีที่แล้ว +101

    Man this video is a godsend! Thank you Morphcat, this is the best breakdown I've seen of NES graphics. Your game looks incredible

    • @SECONDQUEST
      @SECONDQUEST 6 ปีที่แล้ว +2

      You might like RetroGameMechanics Explained.
      He does very detailed breakdowns of how the SNES works.

    • @pockrocks3524
      @pockrocks3524 6 ปีที่แล้ว

      Cool thank you friend

  • @SergioEduP
    @SergioEduP 6 ปีที่แล้ว +115

    It is so good to hear someone talk about memory usage and optimization, nowadays game devs create games (pretty much) without a hardware limit in mind, games use huge amounts of disk space and sometimes are horribly optimized for some hardware configurations. I just love to see the kinds of things people like you can do with so many limitations imposed, and I also think that having multiple limitations would help making better games.

    • @tropicalfruit4571
      @tropicalfruit4571 6 ปีที่แล้ว +10

      This stuff grinds my gears honestly. I don't mind some simple games having virtually no optimisation, everyone can still play them, but when I see bigger games that are 50GBs and i7 combined with GTX 970 can't run them really well I question everything. One thing I like about consoles is that the guts of them are a serious limitation(obviously they are years behind PC market for some strange reason) so the devs do a lot of optimizations and having 1 system for every user makes that easy of course. I think PC games devs think that EVERYONE has two GTX 2080 Ti's with an i9, and the best of the best RAM memories out there... Yeah a NASA computer can run everything at countless FPS but people have "just good" or "average" PCs most of the time... I fear for what I will see when I get a GTX 1080... If my FPS is still not satisfactory on highest settings (at least in some games) then I'm going to cry

    • @q4zr366
      @q4zr366 6 ปีที่แล้ว

      there is no reason to have limitations. most gaming consoles can handle the "non-optimized" games easily. it will just slow the developers down and it will give the games less content if there were limitations. imagine how much more this dude could do if he had unlimited computer power.

    • @tropicalfruit4571
      @tropicalfruit4571 6 ปีที่แล้ว

      @@q4zr366 most(a.k.a all) consoles won't run non-optimized games. All the games are actually fairly well optimised for consoles. And if they run it it's gonna be 20-30fps which even for consoles today is low.

    • @q4zr366
      @q4zr366 6 ปีที่แล้ว

      @@tropicalfruit4571 i know. that's why I put it in quotations.

    • @demoniack81
      @demoniack81 6 ปีที่แล้ว +3

      The point is that in the real world you DO NOT HAVE unlimited computing power, nor disk space.It's seriously questionable for a game like Firewatch to take up the same disk space as GTA San Andreas, for example, with a map that is probably 1/50th the size, no interior locations, 1/1000th of the scripted events and audio clips, no kind of vehicle mechanics, etc.

  • @leosefcik
    @leosefcik 4 ปีที่แล้ว +258

    I lost track the moment he started talking about “Meta-Meta Tiles”

    • @notquitehadouken
      @notquitehadouken 4 ปีที่แล้ว +25

      I lost track the moment he started talking

    • @umadbro4493
      @umadbro4493 4 ปีที่แล้ว +5

      @@notquitehadouken xDDD

    • @LeapyLad
      @LeapyLad 4 ปีที่แล้ว +3

      noob, i didn't lose track 'til META META META META META META META META META META META META META META META META META META META META META META META META META META META META tiles

    • @bartz0rt928
      @bartz0rt928 4 ปีที่แล้ว +17

      If I understand correctly, the meta-tiles consist of index references to the tiles, and the meta-meta tiles consist of index references to the meta tiles. So imagine if the tile indices are lower case letters, the M tiles upper case letters, and the MM tiles numbers. You might then build a screen by saying "top left corner is MM tile 1", which is made up of M tiles AB-CC (2 by 2). M tile A (for example) is made up of tiles aa-fc. Since every MM tile is 4 tiles wide and high, you only need 1/16 the amount of index references to fill the screen (actually 1/32 because as they mention they only fill half of every line, then mirror that and slide it over).

    • @nysariusrexx3798
      @nysariusrexx3798 4 ปีที่แล้ว +3

      @@bartz0rt928 thanks for the explanation

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

    Found this game in 2021 and been playing it over and over again ever since, amazing game the love and passion that went into it can be felt

  • @vinyredx9220
    @vinyredx9220 5 ปีที่แล้ว +63

    I fell like I just watched a class of how to program games, and it was awesome!

  • @nikitacojam
    @nikitacojam 6 ปีที่แล้ว +139

    Wow, man, this game looks almost like a 16-bit one with these great artworks, super great job! Would love to have a physical copy, sadly, I am loose on cash rn. I am working on my GBA homebrew btw, project like yours help me keep getting hyped. Good luck with releasing the physicals!

    • @thebravegallade731
      @thebravegallade731 6 ปีที่แล้ว +5

      I'd say it's on par at least with Metroid or Mario 3

    • @valentinayalalopez1682
      @valentinayalalopez1682 6 ปีที่แล้ว

      @op if you finish it let me know!

    • @astraldrifter
      @astraldrifter 6 ปีที่แล้ว

      Yea? What are you working? I love the GBA

    • @nikitacojam
      @nikitacojam 6 ปีที่แล้ว

      Hopefully it won't be considered as spam, but I just made a playlist, so you can go ahead and check it out.

    • @jjbpenguin
      @jjbpenguin 6 ปีที่แล้ว +1

      it does look really good, but keep in mind that he has not only access to the entire library of NES games where he could analyze and use any tricks that any game designers came up with throughout the entire console's history, but computers today are also far more user friendly for stuff like artwork. a quick google search can provide endless examples of pixel art for things like magic fireballs or explosions or jump animations, and concepts like wall jumps were not even though of back in the NES days but have become common place and seem obvious now.

  • @Tubes78
    @Tubes78 6 ปีที่แล้ว +2003

    "Optimisation? What's that?
    - The modern game developer-

    • @errorlooo8124
      @errorlooo8124 6 ปีที่แล้ว +272

      Well not really, it's more like:
      "Manually crafting and specifically caring for every single bit? What's that?"
      We still do optimization like generating textures on the fly loading and unloading shaders to make room for more space in the vram and loading and unloading textures on the fly to make more space for other things etc.. But these days we never really bother with the really specific things.

    • @AUATUWVSH
      @AUATUWVSH 6 ปีที่แล้ว +79

      a lost art is what it is

    • @christianjamesguevarra6257
      @christianjamesguevarra6257 6 ปีที่แล้ว +109

      *modern developers in general esp. web devs with their gazillion hipster.js dependencies

    • @IDontDoDrumCovers
      @IDontDoDrumCovers 6 ปีที่แล้ว +49

      @@errorlooo8124 imagine if modern developers did care for every single bit, like how much are we wasting without even realizing it because we havent even looked?

    • @SerpongeDash
      @SerpongeDash 6 ปีที่แล้ว +82

      @Social Experiment as amazing as caring about every single bit in AAA titles would be, it just doesn't seem viable, a game like breath of the wild would require so much time to finish and way more people than it already had

  • @perezaraujo2890
    @perezaraujo2890 3 ปีที่แล้ว +8

    I am absolutely stunned.
    I only studied programming for 2 years but that's enough to really appreciate the labor gone behind all of this.
    Great job with both the video game and this rundown. It is much appreciated.

  • @chrism7067
    @chrism7067 6 ปีที่แล้ว +31

    Imagine having this game when the Nintendo was at its prime. That would be awesome.
    Game looks fantastic!

  • @asonael3205
    @asonael3205 6 ปีที่แล้ว +12

    The techniques utilized in making this game are amazing and shows the ingenuity that current and former game creators had in squeezing every last byte out of the limited space they had. I very much enjoyed this video and would like to see more on what you did with this game.

  • @hollaholla7375
    @hollaholla7375 5 ปีที่แล้ว +30

    I know literally nothing about programming but it the way this dude explains it makes it seem so simple, this guy is a genius

  • @Nixitur
    @Nixitur ปีที่แล้ว +7

    That animation at 9:29 is such a good visualization, and a really clever solution!

  • @ElZamo92
    @ElZamo92 5 ปีที่แล้ว +17

    I keep finding this in my recommendations, and I watch it every time.

  • @isofbell
    @isofbell 3 ปีที่แล้ว +53

    I’ve watched this so many times… It’s presented in such an amazing way

  • @Adomas_B
    @Adomas_B 3 ปีที่แล้ว +389

    Me, who wrote a snake game in 2kB: I, too, am extremely efficient

    • @DustTheProto
      @DustTheProto 3 ปีที่แล้ว +4

      th-cam.com/video/ExwqNreocpg/w-d-xo.html

    • @DustTheProto
      @DustTheProto 3 ปีที่แล้ว +8

      @@VexYTGX All operating systems are written in bytes, just a lot of them

    • @steinkoloss7320
      @steinkoloss7320 3 ปีที่แล้ว +4

      @@DustTheProto Did he delete his stuff? I wanna know what he said

    • @DustTheProto
      @DustTheProto 3 ปีที่แล้ว +8

      @@steinkoloss7320 he said "me who can write operating systems in bytes"

    • @tuckertechnolord6126
      @tuckertechnolord6126 3 ปีที่แล้ว +24

      If you want to take away this achievement:
      There is a guy who fit snake into a qr code.

  • @suruzuddin
    @suruzuddin 4 ปีที่แล้ว +13

    As a former NDS developer, most constraints described here resonate with my experiences.They were used to be challenging once. But in current space time, its fun to play around those pet constraints.

  • @CalebWillden
    @CalebWillden 6 ปีที่แล้ว +17

    This is incredible! It gives me a much greater appreciation for the NES game developers like Miyamoto, Sakurai, and Iwata

  • @_pku55
    @_pku55 5 ปีที่แล้ว +230

    Wouldn't it be cool if you travel in time to show this game to an 80's kid?

    • @grabisoft
      @grabisoft 5 ปีที่แล้ว +35

      probably they wouldnt buy it or think its not interesting enough. you have to take in account not only "graphic optimizations and technical advancements" but fashion and trending. Back in that day, people were not interested on playing multiplayer games rather singleplayer and huge sprites, the bigger the better, thats why multitap for NES was a huge fail and 4 player split screen started to be a thing in mid to late 90's with the N64, psx and dreamcast. this game would have performed simialrly to milons secret castle. i personally experienced that period, and i project myself and friends watching this game if we were still kids, and frankly i dont find this game very interesting. back then it was all about getting themed games after, batman, robocop, TMNT, etc. 80% of games back then were made after some tv show or movie. and the few that werent, were just nintendo/sega trademark creations such as sonic, mario, zelda, etc. in general, 3rd party sagas were mediocre and were not really looked after. specially with these type of games.

    • @Hyperdelica-Xander
      @Hyperdelica-Xander 5 ปีที่แล้ว +7

      Show your dad. lol

    • @weirdboo
      @weirdboo 5 ปีที่แล้ว +5

      Or multitap failed because this game wasn’t out to save it... lmao

    • @kulitmed
      @kulitmed 5 ปีที่แล้ว +2

      Sadly, it wouldn't have sold well because nobody would know the effort put into it because back then there was no TH-cam.

    • @andersonrobotics5608
      @andersonrobotics5608 5 ปีที่แล้ว

      nah just give him a copy
      it runs

  • @creepyslime28
    @creepyslime28 5 ปีที่แล้ว +66

    TH-cam has JUST decided to recommend me this.
    epic

  • @AWSMcube
    @AWSMcube 2 ปีที่แล้ว +19

    I always find these videos really cool. There's a theory I read - as computing power and storage increase, there's less of a need for optimization and innovation. Because developers have access to so much power, they often forget and don't come up with optimizations, which limits the amount of content, gameplay, and graphical capabilities in their games. This is why so many people still like older games - _Doom_ (1993) for example, was an ambitious idea limited to weak hardware. Because of this, id Software was required to take advantage of many optimizations to make their game run.

  • @rami1207
    @rami1207 5 ปีที่แล้ว +42

    I'm now more convinced that hardware limitations is the main factor for gameplay quality and honesty in their creation by developers.

    • @misterturkturkle
      @misterturkturkle 5 ปีที่แล้ว +4

      Then is the reason lots of AAA games suck because the hardware isnt as limited? Like a filter that isnt small enough to catch garbage in the air or water its trying to scrub?

    • @rami1207
      @rami1207 5 ปีที่แล้ว +8

      @@misterturkturkle It all depends on the amount of memory space you have, and its up to you how you handle it. Considering the rise of game production nowadays, there might be flaws on a game memory handling..

    • @SerBallister
      @SerBallister 3 ปีที่แล้ว

      I think the technical barrier for entry was much higher back then, the assembly writing programmers back then were really very skilled compared to your average programmer of today.

  • @XeLeTaToR
    @XeLeTaToR 6 ปีที่แล้ว +9

    wow i am so impressed. for me micro mages already is goty 2019. i am a backer and i can't wait to get my hands on the game. thank you so much

  • @flatfingertuning727
    @flatfingertuning727 6 ปีที่แล้ว +162

    The approach of aggregating 4-byte groups and identifying them with a single byte can be a useful trick to save space. In my Atari 2600 game Toyshop Trouble, which took about 7K or an 8K cartridge (the cart uses about 1K for an Easter egg) I wanted to squeeze the music into 256 bytes, including code. Once I added in code to adjust the music for the different contexts where it plays, the code+data total went a little over 256 bytes, but given the complexity of the piece the memory budget would seem crazy.
    As it is, though, the music is divided into eight phrases, each four pairs of 4/4 measures long. The first measure-pair of each phrase always used the same four melody notes (c' g e' d') and two bass notes (C and c), likewise for the second pair (d' a f' e'; F and f), third pair (d' b e' f'; G and g), and fourth pair (c' g a b; C and c). Thus, storing the actual notes only took 16 bytes for the melody and four bytes for the bass parts.
    To keep things interesting despite every phrase using the same 16 notes, used more sophisticated rhythms than most music game music. Each measure pair had a total of 32 rhytmic subdivisions (a mixture of triplet eighths and triplet sixteenths, in a long-short-short-long pattern), each of which controlled five functions: whether or not to play the melody note, whether to advance the melody note (with or without playing it), whether play a bass note, which bass note to use (upper or lower), and whether to play the drum. The patterns were selected out of a master table of 32-bit patterns, using 8-bit indices. Each of these attributes was controlled using four bytes, read out of a table of four-byte patterns indexed using a single byte for each measure pair.
    Just as your levels had to be designed around the quad-cell clusters, so too my tune had to be composed around the hard-coded musical structure. On the other hand, I think the tune ended up pretty good despite the rigid constraints, save only for the horribly out of tune G's in the bass (one of the perils of trying to play music on the Atari 2600 without using 46 cycles per scan line on wave table synthesis).

    • @purpleice2343
      @purpleice2343 6 ปีที่แล้ว

      What do you mean "aggregating 4 byte groups and identifying them with 8 byte to save space"?
      I don't really see how you can save space unless there's only 256 combinations of 4 bytes being joined together, in which case, the entire thing is very compact on it's own

    • @flatfingertuning727
      @flatfingertuning727 6 ปีที่แล้ว +4

      Each 8-bit index is a single byte. The entire piece was 32 pairs of measures, which meant 160 four-byte chunks in total, but storing the 160 32-bit chunks would take 640 bytes--2.5 times my memory budget. In many cases, the first three pairs in each phrase were identical, and measures in some phrases were identical to those in others. I think the overall pattern for the melody part was AAAB/CCCD/EEEF/EEED/FFFD/GGGH/AAAB/CCCH [remember that e.g. the second "A" was using a different group of four notes from the first, so this isn't as repetitious as it looks], so instead of spending 2x32x4 (i.e. 256) bytes for 32 measures, I spent 2x8x4+32, or 96. I could perhaps have shrunk the 32-byte index table to 8 at the expense of adding code, but I used the same code to handle the bass and drum parts, and those don't always follow the 3+1 pattern. In any case, 112 bytes of table data to handle a melody with hundreds of notes is doing pretty well.

    • @purpleice2343
      @purpleice2343 6 ปีที่แล้ว +3

      I think actual thing could explain it better because I don't really see your idea behind it, something like my take below would be appreciated:
      "AAAB/CCCD/EEEF/EEED/FFFD/GGGH/AAAB/CCCH"
      A, B, C, D, E, F, G, H - 8 letters in this "alphabet"
      A - 000
      B - 001
      C - 010
      D - 011
      E - 100
      F - 101
      G - 110
      H - 111
      Code used to test it: hastebin.com/hihaxonore.py
      Results: 37.5% of original size if you know how to take out 3 bits from a byte, would probably result in worse case since this might need additional code.
      Yours is
      >>> str(112 / 640 * 100) + "%"
      '17.5%'
      So a lot better.

    • @flatfingertuning727
      @flatfingertuning727 6 ปีที่แล้ว +1

      Each of the letters represents a 32-bit pattern (four bytes), so every "A" is one 32-bit pattern, every "B" is a second 32-bit pattern, etc. Packing things with values straddling bytes, as would be necessary when packing three bits per value, is icky on the 6502. Stuffing two four-bit nybbles per byte is much easier. I don't think I packed my pattern list that way, but if I'd been desperate for space it probably would have been low-hanging fruit.

  • @psychotogether5114
    @psychotogether5114 ปีที่แล้ว +4

    I’ve been looking for a video like this for a while. This is way better than I could of imagined. Great job.

  • @goldndrago3491
    @goldndrago3491 5 ปีที่แล้ว +459

    What about Micro Mages 2 for the SNES?

    • @thej-man.6881
      @thej-man.6881 5 ปีที่แล้ว +73

      Or Micro Mages 64...?

    • @groszak1
      @groszak1 5 ปีที่แล้ว +35

      Micro Mages Advance?

    • @sodiboo
      @sodiboo 5 ปีที่แล้ว +4

      2 - Dude for that this one’d need to be called micro mages bros

    • @goldndrago3491
      @goldndrago3491 5 ปีที่แล้ว +2

      @@sodiboo noooooo

    • @tibethatguy
      @tibethatguy 5 ปีที่แล้ว +9

      @@sodiboo Basically all N64 sequels of games originally on NES or SNES are just '[franchise/(S)NES game name] 64'.

  • @MegaAlexiel
    @MegaAlexiel 6 ปีที่แล้ว +20

    Ok, I was sold on this the moment I saw this, I need this game now

  • @FelipeWalker2
    @FelipeWalker2 6 ปีที่แล้ว +7

    One of the best videos about game development that I've seen on youtube HANDS DOWN. This was fucking PHENOMENAL, congrats!

  • @HardBloodNelza
    @HardBloodNelza ปีที่แล้ว +3

    I remember getting this recommended to me 4 years ago. It seems like my history will repeat itself, despite the accounts I make.
    Still a great video. Reminds me of an easier time.

  • @ko0x
    @ko0x 6 ปีที่แล้ว +459

    What about the music? :(

    • @MorphcatGames
      @MorphcatGames  6 ปีที่แล้ว +263

      Let me copypaste the bit I wrote about it in another comment:
      music optimization was pretty fun in its own right. But of course, it is much harder to visualize for a video. :-)
      hope this won't be too complicated:
      Basically, we wrote our own music driver and conversion tools. After the music was composed in famitracker, we had to convert it into our own text-based format accepted by our tools. this allowed us to save space by being able to specify repeating sections of individual audio channels and generally reuse riffs from elsewhere in the soundtrack.
      Normally, most of the NES processor's operations, such as reading from memory, work with one full byte (8 bits) at a time. For our music driver, we worked with a nybble-based data format (half bytes). I.e., one command in the music data stream (e.g changing the current octave) could take as little space as 4 bits.
      for optimal space usage, all addresses describing a position inside the music data had to fit into 12 bits (3 nybbles). this meant that there was a hard limit of 2 KB for the entire game's music and sound effect data.
      ( 2^12 = 4096 nybbles or 2048 bytes that can be addressed )

    • @WKmugen
      @WKmugen 6 ปีที่แล้ว +19

      In short they composed a song using a program that generates a bunch a numbers the NES console itself is then responsible for making the sound

    • @yoyomo123
      @yoyomo123 6 ปีที่แล้ว +2

      Very inspiring stuff! There was another video recently about music composition for the SNES that I feel is relevant to link here: th-cam.com/video/jvIzIAgRWV0/w-d-xo.html

    • @ko0x
      @ko0x 6 ปีที่แล้ว +1

      @WKmugen Thanks, I actually make chiptunes for over 14 years :) I was just hoping the video had some in-depth explanation how they optimized the music. There can't be much space left in those 40KB.

    • @DustinHalstead
      @DustinHalstead 6 ปีที่แล้ว

      Check out some of the early tracker type music (MOD, XM, IT, etc.) which gained noticeable attention during the popularity of the Amiga. They employed similar techniques of creating sequences of music that are looped within channels (often limited between 4 and 16 simultaneous channels).
      This allows specific channels to repeat short sequences (like a bass line, or drum beat), while another channel plays a more varied sequence as a lead instrument.
      "The MOD Archive" serves as an massive archive to these type files (modarchive.org/).
      Here's a good example of one that's only 1.74KB: modarchive.org/index.php?request=view_player&query=181139

  • @187onaPigeon
    @187onaPigeon 6 ปีที่แล้ว +52

    This looks amazing. Thanks for this. What about doing a tutorial series on NES game programming or something else? I'd gladly pay for that also.

    • @nobel11
      @nobel11 6 ปีที่แล้ว

      Have you checked out NesMaker?

  • @ridwankhan4883
    @ridwankhan4883 5 ปีที่แล้ว +440

    What I learned from this video is that programing isn't for me.
    Time to enter business.

    • @Keys879
      @Keys879 5 ปีที่แล้ว +9

      I feel you. But there are others who it is, who are troubled by business.

    • @techieswew
      @techieswew 5 ปีที่แล้ว +59

      asm is very *very* low level
      it has a near 1 to 1 correlation with binary code
      realistically, programmers usually program in languages that are higher in level, meaning that they abstract lower level languages in such a way that it becomes easier to understand for humans
      these guys did amazing work, but i think you have the wrong idea if you believe that programmers usually work with all the nuances that arise when trying to fit a project in under 40 kb and trying to do so in asm

    • @p1antings33ds8
      @p1antings33ds8 5 ปีที่แล้ว +18

      Web Programming is easier than creating games, way easier.

    • @Blattie
      @Blattie 5 ปีที่แล้ว +17

      Programming is way easier than this shows, most of us don't code that way anymore.
      We do more stuff like this : (with more complicated stuff underneath of course)
      if player.CanJump() then player.Jump();

    • @johnblunt6693
      @johnblunt6693 5 ปีที่แล้ว +5

      Dude if your willing to struggle a little it's not to hard. If you just want to make a game there are plenty of user friendly game engines you can use

  • @collinsgichuhi8255
    @collinsgichuhi8255 ปีที่แล้ว +4

    I bought a bundle in itch and this game was included. I have never owned an NES so I decided to copy the ROM on my phone and play it with an emulator. Its really fun

  • @ChalkTeacher
    @ChalkTeacher 6 ปีที่แล้ว +24

    I REALLY LOVE this kind of stuff. It's always fascinating to see how much developers can do with restricted hardware, since it makes them think harder and optimize everything. Quite a harsh contrast to modern gaming where people just don't care much about it since we have hundreds of GBs to spend and GRAM/RAM easily reaching 4 GB and higher.