I Rebuilt Monument Valley, Here’s How

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

ความคิดเห็น • 94

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

    One topic that didn’t make it into the final video is just how much work goes into the aesthetic side of Monument Valley’s perspective puzzles. Beyond the clever mechanics, the visual design plays a huge role in selling the illusions. For example, shadows and lighting must be carefully controlled to avoid breaking the effect. In my recreation, I built a custom shader to color each face of a platform (top, left, and right) independently, mimicking the lighting and shading techniques from the original game. The team behind Monument Valley likely crafted countless subtle details like these, resulting in their iconic and seamless style. Monument Valley is a masterclass in blending technical solutions with artistic goals to create something truly unique.
    This video marks the beginning of a new series where I’ll dive into fascinating game mechanics and (attempt to) recreate them. If you have suggestions for future topics, feel free to share them on Discord. Thank you for watching! I hope you enjoyed the video as much as I enjoyed making it.

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

      it would be extremely awesome if you recreated viewfinder's mechanics :0

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

      @AdventureMase Such a good mechanic. I have it on my list, I'd love to give it a try! Thanks for the suggestion!

  • @ghb323
    @ghb323 หลายเดือนก่อน +44

    Really like how you explained this. I knew the game NEEDED orthographic projection and figuring out how paths connects based on object rotation and camera rotation

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

      Thank you very much! Glad you liked it.

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

      Monument valley mentioned 🔥🔥🔥🔥🔥 this game is so relaxing

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

    A great first video of what I’m sure will be an awesome series! I can’t thank you enough for making stuff like this 💚

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

      Wow, thank you so so much! Both for the donation and the kind words, it truly means a lot.

  • @aungthuhein007
    @aungthuhein007 หลายเดือนก่อน +15

    One of the few channels where I turn on the notifications and actually watch every video! Fantastic work!

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

      Wow that's so nice, thanks a lot! 🥹

  • @FC-BS
    @FC-BS 26 วันที่ผ่านมา +3

    Monument valley is one of my favourite series. I've only finished the second one and I found the game to be so beautiful

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

    That's an interesting and pretty straight forward way to solve the problem! It seems a bit finicky, puzzle games usually have a pretty well defined core and generate the geometry from that. But as development progresses it usually ends up in a healthy blend of state machines and theatre illusions anyways.
    Hadn't thought about the rendering side of things, making it seamless is an impressive feat, especially when you consider shadows, gradients etc. The choice of a minimalist style helps a lot, makes a lot of sense now.
    Great job and thank you!
    Best regards!

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

    never expected to see a video on this masterpiece of a game

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

    That's fantastic!
    It's also an excellent idea to try to copy something you admire so that you learn more about it.

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

    oh monument valley, i always could recognize the game from screenshot alone, even though, i didn't know its name yet, thats powerful!
    also, i remember following your steps to creating this video in the discord, and i have to ask, is creating a devlog series on youtube even worth it? or should i just share my game around in discord servers, like i did with your server (yes i was that one to first post on the feedback channel!)

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

      Thanks for the comment :) Honestly, I have no idea, hehe. I guess it depends on what you're hoping to achieve... If you ever figure out the perfect approach, let me know :P

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

      I would watch Jonas Tyroller's interview-video on game marketing! It is very pragmatic and I think it answers your question way better than I could with a comment.

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

    Absolutely fantastic video! Thanks for making it!

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

    Another great video! I like your work! Thank you for sharing!

  • @BayuPranaa
    @BayuPranaa 29 วันที่ผ่านมา +1

    I like your the editing style 🔥🔥

    • @NewbieIndieGameDev
      @NewbieIndieGameDev  28 วันที่ผ่านมา

      Thanks! I work with talented people 🙇

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

    love monument valley, very cool vid!

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

    Nice video! I loved this game when I was younger

  • @HDL_CinC_Dragon
    @HDL_CinC_Dragon 21 วันที่ผ่านมา +1

    Looking forward to watching you reach and surpass 100k subs!

    • @NewbieIndieGameDev
      @NewbieIndieGameDev  21 วันที่ผ่านมา +1

      Thanks for the words of encouragement! :)

  • @YasserSedrati
    @YasserSedrati 28 วันที่ผ่านมา +1

    Great explanation!

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

    Perfect video. Thank you

  • @baronde8551
    @baronde8551 29 วันที่ผ่านมา +1

    Excellent story telling

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

    Underrated

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

    Quick note: you can also use sorting groups and not layers to determine the render order. *Should* work in 3d.

  • @danielcarroll8889
    @danielcarroll8889 18 วันที่ผ่านมา +1

    Great video!

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

    Very interesting video - great job.

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

    great video, just subbed 😊

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

    Awesome video!
    Liked and subscribed.

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

      Thank you so much!!! Glad you liked it.

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

    Wait, the level designer decides when things are connected and has to manually edit that in? Isn’t that quite error-prone? Could perspective calculations be used to make that determination automatically?

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

      It's only my assumption, I can't speak for the actual game, but I'm pretty sure it's just easier to do it manually... any ideas on how to make it automatic? It's an interesting challenge for sure!

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

      With the projection to 2d you could at least detect all overlaps and then choose the connections. I think the easiest way to do this would be to assign special colors that are not rendered to each surface and let those that abut be connected in the graph. You’d have to set those colors but it’d be a step up from if (lever in position A and walkway in position B) {connect()}.
      Beautiful video btw

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

      @@NewbieIndieGameDevMaybe it would be possible to have a few grids of possible faces, where each square face of a body that isn’t at an in-between angle, and is visible to the camera, corresponds to a face on one of these 3 (or more?) grids. When there is a body which has a face corresponding to a face in one of these grids, that face of the grid is active. Then, say the player character can move between two adjacent faces in the same grid when the two faces are both active.
      Ah, but this doesn’t yet handle when a player has to walk behind things…
      Well, if the player is walking behind something, the faces of the thing that is in front of them belong to a different grid, right? Otherwise it would look like something they should be able to walk on instead of able to walk behind it, right?
      So maybe if you just counted a face of a body/object as being “visible” when it is facing the camera rather than away from the camera?
      Of course, for this to make sense there needs to be a way for which grid the player is on to change. This could either be by having the player’s actual location be tied to the bodies/objects rather than the grids, and having them rotate, or by having special objects with curves or something that connect the different grids.

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

      🤯😂

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

      It depends on how you store your level data. Here we have two representations. The visual and the navigation. The navigation graph actually represents the level's geometry. So a next step would be to edit at the graph level for level data, and generate the visuals from that. But then you would basically need to DIY your own level format along with tooling/level editor. Which, depending on your scope, might not be worth it.

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

    If you consider the patches to all be "the same space" then the add/remove paths becomes simpler no? If at the 4:08 mark the last node on the blue path and the patch node prior to the rotating red are considered the same when the red is in that orientation there's a continuation of the path. When the red is at 90 degrees (5:13) then the path will be automatically broken.

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

    Very interesting behind the scenes :D

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

    I‘m really intrigued by the whole „render layers“ solution. You said it like it’s not a big deal, but some object need to be in front of and behind the same object at the same time!
    Did you just split the geometry into more parts where needed? Are the layers of the objects fixed or do they change on runtime?

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

      Haha all great points! And the answer to all these questions is yes! 😂 Indeed, in the video I don't really get into it, but in some cases even more layers are required, and sometimes they have to be dynamic in some way, for example making objects change layers as the architecture evolves. That said, I only needed to introduce this complexity for very specific interactions, for most cases there was no need. Let me know if this helps, and great catch! 😋

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

    so THAT'S why the game is so expensive wow i get it now

  • @TN-ec6ec
    @TN-ec6ec หลายเดือนก่อน +1

    What did you use for all the animations? Everything is so smooth and cool

  • @baronde8551
    @baronde8551 29 วันที่ผ่านมา

    Wow is amazing it makes it feel much harder to get into programming is it ?
    What knowledge do I need

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

    You could make a platformer or snake with impossible architecture.

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

    In the original game there are some moments where the camera changes angles, if I remember correctly (maybe it's the level that rotates?). I was curious to see how you would implement that using your method.

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

      Hey! Do you have an example for me to check out?

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

      @@NewbieIndieGameDev It wasn’t as I remembered as it’s been a very long time since I last played the game. But I think I was referencing to the whole map that rotates at certain parts in the game. As it can be seen at 14:18 in this video: th-cam.com/video/u06z3FItlhU/w-d-xo.html
      But maybe as you said at 6:17, it’s just that the blocks have been done really well in a way that doesn’t break the whole illusion when the whole map starts to rotate.

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

    Maybe sketch ideas first...
    ...and do rotators function when a character is standing on it??? I do want more levels!

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

      With this approach, it is perfectly fine to rotate or move a platform while the character is standing on it. That said, the original game limits this behavior in most cases, I'm not sure why... maybe to make the experience a little less complex for the player?

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

    I can't remember the name of the game or the creator but there was a similar game with a character that wore a Fez hat

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

      Are you thinking of FEZ? 😝

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

      @NewbieIndieGameDev lmao was it actually named after the hat? 😅
      I could have sworn it started with "ortho-" haha

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

    Didn't somebody make a video just like this a few years ago?
    * 5 years ago:
    th-cam.com/video/hetaWVfaLQc/w-d-xo.htmlsi=6erzVVeeYzi9dTjK

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

      Yes, that's a great video! You can find more related videos that I enjoyed linked in the description in case you are interested.

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

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

    asfsdjifsdfii you have my undivided attention

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

    Your mic needs a pop filter or put a high shelf filter on your voice audio because the ess is highly distracting

  • @lupusnupus4887
    @lupusnupus4887 28 วันที่ผ่านมา +1

    The Editing is hat's off

  • @dman-tm
    @dman-tm หลายเดือนก่อน +3

    This is such a beginners way of trying to implement this and it's just not correct at all. half way through your video, I've noticed practically everything you said is incorrect about how this game should be designed. although, you are correct about perception tricks within the game world and this is a valid way to achieve this effect, it is simply not the correct way to do it, and you are educating people poorly becasue of it.

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

      Can you give any _specific_ examples instead of just grilling the OP? Without those it sounds just like "I'm clever, you're stupid" - even if your point is actually valid.

    • @kpunkt.klaviermusik
      @kpunkt.klaviermusik หลายเดือนก่อน +8

      @dman-tm What a strange comment... Please watch "The art of monument valley" by GDC 2025. The original game designer explains how they created the game - and it's exactly how it is explained in this video by Newbie Indie Game Dev. Btw. it's by far my favorite Android game and after watching this explanation I can't wait to replay this game after quite a lot of years.

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

      Puzzle games that are grid based are usually represented using integers, then used to generate the world coordinates for rendering. In that first integer representation it should be pretty straight forward to calculate the possible paths automatically at build time, instead of manually like OP is showing. However! I think the most important factor is getting projects finished, so whatever technique that builds momentum and gets you there is the correct answer :-)

    • @kpunkt.klaviermusik
      @kpunkt.klaviermusik หลายเดือนก่อน +1

      @@ivanmoren3643 You guys obviously do not understand how impossible these buildings (like Escher's optical illusions) in this genius game are. There's no way to linear move in such a world. Of course you can move partially in a straight line... but then you would NEVER reach the WRONG sides of the buildings :-)

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

      @@kpunkt.klaviermusik I hear you, all I'm saying is that you don't need to manually calculate which moves are possible from a given state. The combinatorics of that would be a nightmare when developing the game further, especially with the dynamic parts of the game (totems etcetera). You just need a more mathematical model as your base. It is a similar problem domain to a game like Fez.