Committing game dev crimes to finish my game

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

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

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

    Well I will certainly be contacting my lawyers about this grave injustice against me 😂😂😂

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

      can you publish a video explaining please?

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

      @@KindOfWitch This was sarcasm, hes not gonna sue...

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

      @@tylergust8881 no I mean explaining the thing that he was interrupted with. did you even read the comment? edit: ratio lol

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

      I really wanted to see the explanation. Getting enemy AI to work is my current biggest roadblock for my game 😅

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

      @@fonzy675 search "navmesh" and "A-star" and it should give you the info you're looking for

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

    Luke talking about how rare clipping out of bounds is:
    speedrunners: *taking notes furiously*

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

      I would say its more of a
      Speedrunners: *ramming into a wall furiously*

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

      Speedrunners slow the video from 8x to 7x speed.

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

      The best kinds of bugs are ones that require deliberate effort and allow things like sequence breaking.

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

      @@VGamingJunkieVT My favourite one was a glitch in Two Worlds that allowed you to complete the whole game in just 2-3 minutes. All you had to do was run past the guards at the start then the final boss was spawned somewhere in the distance. Reach him, attack him, some NPCs join in, he dies - final cutscene rolls showing a completely different part of the game world.
      It was truly remarkable and I've never seen anything like it.
      I also heard aboue one of the Test Drive games where you could apparently cheat the time trial stages by reversing. Never seen that one in action though.

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

    "In months of testing I've only seen this bug twice"
    You'll end up getting 10 reports of it on launch day lmao

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

      So true haha. I remember we had some bad bug in Fruit Ninja early on and we got like over 3000 complaints or something nutty in like 24 hrs :|

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

    "Is it really a crime if everyone does it?" lol

    • @WiLL-ob3yk
      @WiLL-ob3yk 2 หลายเดือนก่อน +13

      I don't think this holds up in court hahahahah

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

      I always tell this to myself everytime I play in my Dungeon & Basement.

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

      Prohibition moment

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

      I think you'll find that the answer to to that question depends on how much the authorities dislike you.

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

      @@Nevir202 unfortunately true.

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

    I have wish listed this, and will buy it.
    Will I be able to name my character . . .Chum?.

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

      They'll probably be "Player"

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

      Only when you call them “Link” will something special happen…

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

    for the raycasting to find if the player is stuck:
    1. cast upward ray to hit a wall, note the coords of hitting the wall as coord1
    2. move a smidgeon upwards, cast a ray down, if the coords of the hit wall match coord1, count one intersection, and repeat step 1, otherwise, count 2 intersections, and repeat step 1.
    This assumes your walls are infinitely thin.
    also it IS possible to pass by more than 2 intersections while doing this and fail, but at that point just blame the map.

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

      He could have evaded the problem entirely by using physics2d.raycastAll, but oh well

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

      Ohhhh thats a great idea!

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

      ​@@lukemuscat Hey, does RaycastAll not work? I see that you are using it in your code snippet. It should not stop at the first point hit and be exactly what you are looking for?

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

      can't he just check if the players position is within the navmesh enemies use to path around the map rather than doing any raycasts at all? If the position is outside the auto generated navmesh of the cave, then you should be able to know via .NavMesh.SamplePosition. Can have it check after the map is regenerated, then move player to the nearest sampleposition found (this returns closest position on navmesh within radius).

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

      Or just use RaycastAll :)

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

    The "chum" thing is the craziest crime, i'm going to have nightmares about that one

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

      Haha yeah I know it's actually so bad. There are a few like that and I am not proud.

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

      Why's checking by it name bad, and what's the correct solution to identify it?

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

      @@edwardperkins1225 I'm not a programmer/dev, but I thought you could just refer to a specific defined game object for the game to react to

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

      A better way, in Unity, is to have attach an empty script onto the chum object called Chum and when checking it in code if that object is Chum is to call the TryGetComponent function. This way when checking, you check via the component/script attached to the object. The reason it isn't recommended to check by name is that one small typo can lead to headaches in the future when debugging.

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

      @@edwardperkins1225 afaik searching by name is cringe because if you have another thing called a chum bucket then your code will still think its the chum
      and not sure but afaik the proper way to know what type of thing is the right type of thing, is to use "tags", where you can tell any object that it's any tag you want
      so then you'd have your chum object and give it a custom chum tag, and then it should all work fine

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

    I love all the subtle humour in the video, from cutting off Szevvy, to the whole "but it's never that easy is it" bit. It doesn't seem overdone and is just put in very slickly into the video while not diminishing the final quality. Actually brilliant.

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

      Hollow knight pfp w

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

    “Good practices” isn’t in my vocabulary. My projects are one mechanic away from imploding at all times
    Edit: Thanks for the likes🙏! I create video game content creation on my channel. Feel free to check it out if you’re interested! If not all good, keep living your life😁!

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

      I just use nested if statements for everything

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

      A true game dev veteran

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

      Same here.
      I use Scratch, so my projects are always imploding until I FINALLY do what the Scratch gods demand of me.

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

      @@randompandemonium4823 :(

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

      your footbal game looks cool, good luck

  • @Gambit-YT
    @Gambit-YT 2 หลายเดือนก่อน +79

    Skipping the “correct solution” is how I finally finished a game. And finding a balance between the “correct” and “fast” solution is something I’m still trying to learn

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

      While what I am about to say is purely opinion, I hope it can help you in finding the right balance for you:
      "Correct solution" is extremely case by case basis. Just because something was the best solution in some game, doesn't mean it will be the same in yours.
      The fast solution will usually be best, because you get to see how it affects everything you made quicker and can readjust sooner to hone in on the design that feature needs and then you slowly turn it into the "correct solution" over time.
      Also, going with the "correct solution" from the start puts restrictions on future design of other stuff, and will usually result in less flexibility in how you can add new things. Whereas with fast it'll be easier to add new things and then you can just correct everything once you have all needed features added. One, because it's not very sophisticated yet. And two, because there is less attachment and less of sunk cost fallacy creating a barrier in redesigning it.
      Being stuck with the "correct solution" will force you into planning rather than developing... And you won't get the "correct solution" right of the bat anyways, no matter how much you plan, unless it's something you already have a huge amount of experience making.

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

      Reconsider *_"correct_*_ solutions"_
      Consider: *_optimal_*_ solutions;_ the upper intersection of *_best_*_ and _*_fast_*_ solutions._
      Contrast: *_suboptimal_*_ solutions._

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

      Game Jams are fantastic to help figure that out
      Granted, theyre basically a hackathon from beginning to end, but youll get a feeling for when its a good time to hack, and what/how to

    • @Gambit-YT
      @Gambit-YT 2 หลายเดือนก่อน +2

      @@marcsh_dev I completely agree. I had about 8 months of experience but never finished anything. Entering a game jam was the only reason I finished my first game

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

      Trying to find the golden ratio between the correct and fast solution is the dichotomy at the center the working man

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

    I love that you used the summoning salt music for the speedrun joke lmao

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

    "Except it's not quite that easy, is it?" Hahaha, so relatable

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

    So, we name our player "chum" got it

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

    I’m a solo indie dev and this is super refreshing to see. A lot of game dev is concrete, but even more is smoke and mirrors, especially as the project progresses. Dodgy checks, scanning every object in the world and checking if it’s name contains “chum”, and brute-forcing extremely edge-case physics is all part of the process, and I’m really happy I’m not the only one. It only has to work just well enough, it doesn’t have to be perfect, and that’s all part of the fun imo. It does increase the nerves when I think about releasing someday and having everything break for a week or two, but we’ll cross that bridge when we get to it, if we get to it! Staying strong, we’ll finish this project eventually here’s hoping

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

    Can I just say thank you again for sharing your game dev journey with us? I know similar things have been said before, but you had a huge impact on my childhood, and I am now a game developer myself. It is just so flippin' cool to get to watch your creative process, and to know you're out there doing the stuff that I want to do.
    Thank you for sharing your journey! Looking very much forward to playing the game!

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

    0:52 I do everything by the book, it's just that I made my own book...

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

    I mean Szevvy really is just that efficient.
    The brute force raycast wiggle is really clever, even if it makes me cry a little.
    Also congrats! Can't wait to play on the 16th :)

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

    2:41 damn szevvy is quick

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

    12:24
    Bro is NOT summer salt 😭🙏

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

    0:20 so you're telling me that in the code of the game I'm about to play, there's a house made of ascii characters? :o

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

      Probably not, since the code that's in the release version is compiled into a format that's only readable to the computer. I don't actually know for sure that's how compilers work, but I'm guessing they remove comments (comments being stuff in the code that isn't run but is there for humans viewing the code)

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

      I mean comments by definition are not included in compiled executables, unfortunately.

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

      A programmer and a silly-ous humor walks into a bar. The bar burst up in flames.

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

      ​@@cloud_and_prouddepending on the unity build settings, it's possible to build the game with the whole source code available to anyone, but I doubt he would do that

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

      @@yugiohk574even if he does build it that way, the comments are still removed.

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

    For Physics2D.Raycast, one solution I could see is grabbing the bounds or vertex data of the first Collider2D you intersect with.
    Specifically, if your tile map uses the same collider for each generated piece (I'm assuming a PolygonCollider2D or EdgeCollider2D), then it could be a problem of just detecting whether or not you're inside the polygon (youtube isn't allowing me to send links, but I was able to find a C# implementation on StackOverflow quickly).
    Not sure what your setup looks like though, and I'm sure the solution you have is perfectly workable. Congratulations on shipping the game!

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

    Love this video. It’s great to see how you work around, mitigate and hack through difficulties in your game design.

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

      Thanks!

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

    The only crime you committed was to cut poor Szevvy like that 😭2:41

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

      True! And, unfortunately for Szevvy, also hilarious.

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

      Haha yeah I asked him to record something and I told him I was going to cut him off. He had a great little rant about reticulating splines, but the shorter I cut it, the funnier I thought it was :D

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

      ​@lukemuscat ahh man i really wanna hear the rant now it sounds interesting 😔

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

      @@lukemuscat Sims reference? :D

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

      Haha yes!

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

    The summoning salt reference is brilliant!

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

    14:49 Reminds me about undertale's massive if statement for the dialogue!

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

    16:24 Rhythm game inside a diving game made by the developer of fruit ninja and jetpack joyride before gta6 is crazy 💀💀🙏🙏🙏🙏

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

    I really needed this, iv been working on a project and was losing confidence in my work cause I felt like I was jerry rigging somethings to just work. 😅

  • @fille.imgnry
    @fille.imgnry 2 หลายเดือนก่อน +2

    lol, love the ”interview” with the guy that built the nav system.

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

    "could not repro" triggered some trauma 😂

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

    So when it comes to player being outside the map, if you already have a NavMesh for the enemies, you can utilize that one to teleport player to closest NavMesh point. You can also generate a special NavMesh for the player that lets you filter all playable areas. If player is not close to a NavMesh point, you teleport to the closest or last point the player was standing on. This eliminates the issues of dealing with raycasts and edge cases where you teleport outside the map. Worst case scenario is teleporting to other side of a wall, but at this point you would need a wall you can get into for it to be effective.

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

    This is really a helpful video, a lot of devs (me included) always get stuck trying to find the "correct" solution to some particular problem and we waste a lot of time on it, when it could've been done faster in any other "dirty" or "hacky" way, and the end result would've probably been the same for the player. Congrats on finishing the game!

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

    Writing code is like setting up cables behind the TV. As long as it works, nobody has to know about the tangled horrors that are behind.

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

    Just like if your not caught it's not a crime
    *If your game works it's also not a crime*
    - Dani tzu probably

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

    GIVE US THE SZEVVY CUT

  • @kateb1127
    @kateb1127 17 วันที่ผ่านมา

    "Let's talk about my favorite crimes that I commited" is a wild sentance out of context

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

    this is honestly inspiring, it's important to remind ourselves that "done" is infinitely better than "perfect" as an objective to give yourself!

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

    why not just shoot a single ray from the camera at the players location, and have a layer mask for all the meshes that are not water, so if the ray collides then you know the player is out of bounds, then shoot 4 rays in each direction (Up, Down, Left Right) and get the closest change and teleport the player there, that way you're only using 1 ray when the player is not stuck every time you decide to shoot a ray, and not how ever many rays is needed to reach the top, and 5 rays in total, not how ever many rays to reach the top times 3? + it also fixes the possibility where you go into a wall, but the first possible safe space is quite away up from where you currently are, I would imagine this to be quite frustrating if it did happen and fixes the edge case of the gap being so small you could jump over it bc you're never sending out another ray.

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

      Good question, and I hadn't thought of that approach. But I THINK the issue is that the cave mesh is a tilemap composite collider, which is essentially a collection of edge colliders. So I believe a ray from the camera to player will never intersect that line. (assuming you mean firing a ray "in" to the screen). The other option would be for the tilemap collider to be a polygon composite instead, but that hadn't occurred to me until right now!

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

      @@lukemuscat hahah Glad I could help ^-^ Im super excited to play your new game.

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

    Props to the including the "unofficial" speedrun synthwave track.
    For those who know, and appreciate that genre, it was a nice add.

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

    Becoming a developer taught me that it’s a miracle that any game works at all. Game looks great by the way! Can’t wait to play it

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

    14:35 “If it works, Don’t touch it”

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

    3:40 - There's an official Unity NavMesh Component package that solves this exact issue. You can have NavMeshes on walls, ceilings, whatever, you want. It also works like the current NavMesh system, it just localizes on the object you attach the component to, so whenever you edit the map, you can update that in one click.
    11:04 - This is... odd? RaycastAll should, by definition, not stop on it's first target -- at least, that's how it works in 3D. At that point it is behaving like a standard raycast. I suspect this is a bug related to something else other than the RaycastAll behavior. How I would solve this is doing what you did with the RaycastAll, check if it is an odd number of points, then sort the hits by distance and getting the point closest to the player and having that point + offset in the direction of the raycast + tolerance to be the teleport point. Alternatively, if I'm still wrong, you could, for precision, do a second raycast going the opposite direction and get the point closest to the player. And if for some reason that doesn't work at all, assuming all traversable places a player can go are on the NavMesh, you could sample the NavMesh at the player's position and teleport them to the closest point (this is more compute intensive). Also, I don't know how your player object is set up, but if it is a physics object and a collider suddenly spawns on it, the physics object like CharacterController, if a collider is suddenly spawned on the player and they move a bit, Unity will "autocorrect" them by jumping them to a valid point, but it's not reliable as it might teleport the player outside the playable area.
    Sorry, I know you mentioned this is shipped and done, but in case you were still wondering, I didn't want you to gaslight yourself thinking these were impossible. Maybe keep in mind for your next project. At the end of the day, if it works it works.

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

      1. Oh I had NO IDEA about the NavMesh solve, that's really good to know!
      2. So I just went back and looked at the RaycastAll stuff and now my brain is broken haha. Like I could have SWORN the documentation said RaycastAll in 2D stops (it doesn't).I remember trying to do it as a single ray as I assume that's how it works, and then ran into the issue... but as you mentioned maybe that was actually an unrelated bug and I conflated the two?
      And yes this is all excellent learning for the next project, thanks! :)

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

      Ohhhh wait I think I remember now. Although the RaycastAll 2D does indeed continue on, I believe it wont return the SAME collider multiple times. It only returns an array of unique colliders, not every instance of it crossing any collider. So it will only return the first crossing, not the crossing out to the other side. So it doesn't exactly stop like I said in the video, but for the purposes of testing the same collider again, it does.

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

      ​@@lukemuscat Ah, wait, I think you're right -- it's not that RaycastAll will only return unique colliders, it's that it can only return hits where the side of the collider is facing opposite of the direction of the raycast. So think of "backface culling" in 3D graphics, it will register the raycast going INTO a collider, but OUT OF the collider on the other side -- if that makes sense. In that case, yeah, you'd have to run two RaycastAlls in opposing directions to get points away from and points towards the player, then append them to a combined list of Vectors and sort them by distance from the player.
      Sorry, I guess I'm invested because I had to do something similar in my project in 3D (RaycastAll, checking odds/evens, etc.) to solve a different problem, and now that you mentioned it, I remember running into what I described above.

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

    When I was working on my game earlier today, there was a glitch that caused the player to rocket through all 10 levels in less than a second. Instead of trying to find the cause of it, I just made it so that when you entered a new level, it waits one second before unlocking the door. It worked like a charm and I still have no idea why that happened.

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

    I read the title and thumbnail as "committing game dev war crimes"

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

      Me too. And I haven't realized it until I see your comment.

  • @swaan-dev
    @swaan-dev หลายเดือนก่อน

    "But it's not quite that easy is it"
    This line and the discussion of edge cases for raycasting gave me traumatic flashbacks to my uni Computational Geometry course

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

    3:47 PANNENKOEK REFERENCE!!! ur so real for this thank you mr Muscat

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

    In my game, I'm planning to have just a single dark tile that can only be placed out of bounds, and have it have a trigger, which teleports you straight to the backrooms as a little secret level lol

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

    Genius! Why have I never thought about adding an ascii house to my code?! I've been just looking at my ugly code like chump.

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

    Very clever “crimes”! I enjoyed this it makes me feel less bad about some of the hack things I do! Game looks awesome as well!

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

    Race conditional load/save system is horrifying, good work

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

    Hey Luke, i just wanted to say thank you. Of course for fruit ninja and so, but i want to say THANK YOU specifically for this video.
    Currently i too work on a solo project, (with no prior expierience, just from watching tutorials) which is way to ambitious for me. It already took me 1.5 years and i still need at least another year to finish it. And the last couple weeks i struggled with a lot of bugs, and i was really frustrated and down, thinking about quitting this project. Somehow, i was able to solve most of the problems. But my game feels like duck tape is holding everything together.
    And after you said that its normal in game development, that everything is a card house barely holding together, you really gave me some new energy.
    This video really brought me back on track. So from a random dude on the internet, to another random dude on the internet. Thank you from the bottom of my heart.❤

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

    3:39 That's fairly reasonable, sometimes I impulsively decide to program something formatted weirdly then have to constantly reformat all my data because of it, in this case you did that but without you being the one responsible for the strange formatting.

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

    this is so good man. the summoningsalt joke got me.

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

    Justice for Chevy

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

    15:05 That's true, I have strict rules I follow, but they're not the rules everyone else is following, and they don't have to be because I work alone.

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

    100% agree. I was having an issue with some particles firing up when a scene loaded, and couldn't figure out how to make them not do that. So instead, I added a transition and some animations at the start of the scene (also to make it more juicy) and while that runs, the particles are set to be completely transparent. So they still fire, but they can not be seen for 1 or 2 seconds while the scene "intro" is running. If it works, it works.

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

    "tentacle monster rat king" is a wonderful thing and would be amazing to find

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

    This is my favourite video of yours tbh. Gave me a good laugh

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

    luke, you games absolutely made my childhood! like i cant imagine it without thinking of me and my friends playing on school lunch breaks and bragging about records. thanks you man.
    - a happy gen z'r

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

    This is the most motivational game dev video ever! Thank you.

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

    I dont have the money, but I'm also making a game, and try to see every other game/gamedev with a sense of critique.
    Without seeing your page: This game has such a unique and creative gameplay, and also the graphics really complement it, I would say it's a hit :D
    After seeing the page:Maaan you nailed it :D I would've put the seconds video first tho, since people want to see just the game first, and If it's interesting to them, they will want to know more, and that's when I would've show the "introduction" video :)
    Keep in mind, I never delivered a game, and hope this changes with my current scope, and the help of my friends, and also money, so I'm saying all this from a developer background, and a lifelong gamer pov. Hope I can try out your game once, I bet it's DEEPLY engaging :D

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

    Thank you so much for this video, I wish there were more of this.

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

    "Except its not quite that easy" is literally all of my experience in coding summed up so succinctly... fun to know it'll be the same with games as anything else lol

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

    I love this videos showing what we do sometimes to fix the problems, great job!

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

    Damn, you did Szevvy dirty!

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

    Great video; I love seeing how others solve problems like this. Game dev is hard and we do the best we can with the tools and knowledge we have. Nothing is perfect, but that doesn't mean it doesn't work! Finishing and shipping is a huge mountain to climb, so I've got nothing but kudos for you!

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

    I love the speed run world records references, such a good channel

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

    as a software engineer and unity developer i find this video not only entertaining to watch, but also very funny and educational. true crimes is deep branching in your code and comparing with strings

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

    1:07 How have I gone my whole life not noticing! Great video.

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

    About the Navmesh thingy. The A* Projects Free Version is perfect for 2D Pathfinding on a few enemies, as the free version does not provide multi-threading, but the paid version does. It even supports local avoidance. I really use it everywhere.

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

    “1. Battle pass”
    *“NOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!”*

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

    For the chum, you could probably use collision masks. Just make it so nothing collides with the deep except chum or vice versa.
    Learning about collision masks was a total game-changer(pun intended) for me.

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

    "I guess theres like enough layers of duck tape on this boy to keep it solid" is an amazing quote

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

    As a programmer who also makes games, some of these are funky, but like, it's not thaaaat bad (gotta love that programming sorcery!)
    One of my favorite personal game dev crimes is when I was making a 2D platformer/metroidvania style game (still need to go back and finish it...) and I implemented variable jump height by just making the jump button reverse gravity for only the player. It's stupid, it's silly, but it works great and is somehow actually super customizable.

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

    Procrastinating is my biggest gamedev crime

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

    Wait, if you needed to give the enclosed caves a tiny hole for shadows to work, wouldn't that mean that you are never "inside" a shadow zone unless stuck in a wall? Why not just use the same check to deal with clipping into walls instead of a dozen raycasts?

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

      Really good point! I actually started doing it this way, but then realised that there are a few areas where there is level geometry that isn't part of the cave check system (think set pieces and level objects that are not cave walls). So I figured the ray might be a more thorough check!

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

    You've got me thinking. From the images for the hacked enemy movement it looks like a "perpendicular universe". Great hack btw!

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

    10:00 Ah, I've used this method before, for a filling algorithm! I just used a quad tree where each branch would check if it intersects a line of what you want to fill in, if it does then the branch is too big for the level of complexity so it will split, otherwise it will check if the center of the branch is contained in the shape using this method then fill in the whole branch if even one pixel is contained since assuming the branch doesn't intersect the lines then all pixels contained in it will be the same in terms of whether they're contained or not, and if the branch shrinks too much it will simply be rendered as an outline.

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

    Honestly using the same texture for multiple effects should be commended. Lowers file size (not by much but still) and if it's properly instanced it improves performance as well.

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

    Thank you for being a solo game dev on youtube who finished a game :)

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

    Well, to start, the silt texture/sprite/billboard whatever you want to call them these days, isn't cheating or breaking any rules. I mean rule #1 of game development is save space IE memory. lol
    Reusing the same textures over and over and just altering them isn't breaking a rule, it's just smart design.
    I know it's fun to say these are all hacks or crimes but to be fair, they're just good examples of great problem solving which is what game design, well designing anything, is all about. :) But that doesn't really get people to click the video. ;)
    Great job!

    • @unspeakableoaf
      @unspeakableoaf 25 วันที่ผ่านมา +1

      Halo 3 famously has a map where every rock is the same one at different rotations and scaling. Efficient!

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

    Thanks for sharing your game's bugs with speedrunners before it's even released

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

    "Just NEVER name anything chum" is so real

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

    Didn't expect Christian Bale to be teaching me game dev tips at 2 am but here we are. Love the content ^^

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

    _"Game development is all about figuring out ways to get things done without actually doing them."_
    - Chad Cuddigan (Delver dev)

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

    Theoretical fix to getting stuck in the walls you could detect if the background of the character is a solid wall or not and then teleport the player to the nearest playable space in using a circle around the player to find the nearest playable space

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

    the most common cause of me abandoning projects is the code not feeling airtight. I think that's too unrealistic, so thank you for sharing.

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

    these are not crimes. these are ingenious solutions 😻

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

    Oh my god that navmesh hack lmao, that's wild. I respect the hustle really

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

    12:28 I love the summoning salt haha
    also parallel universes

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

      Haha yeah, the @SummoningSalt and @GeoWizard soundtracks are just so iconic to me.

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

    Mumbo Jumbo: It's quite simple, really.
    Evil Mumbo Jumbo: Except it's not quite that easy, is it?

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

    i initially read the thumbnail as COMMITTING GAY CRIMES for some reason

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

    Really happy you finished it, can't wait to buy and try! 🎉🎉

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

    To determine if a point is inside or outside a collision shape, you can traverse the path from the perspective of a point (in this case the players position) and add up the amount of turning along the way. If it adds up to a full 360 rotation, it's inside. If it adds up to zero its outside.

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

    Ironically, I found this video on August 16th.

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

    perpendicular universe made me chuckle

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

    Looks like a cool game! Good job. Congrats on your release :)

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

    Can't wait till speedrunners find the wall clipping glitch

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

    "Hey, did you know I'm smarter than you?" 🤣 great video m8

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

    Since its procedural generation..
    My aproach for detecting open areas and how avalible/spawnable they are is generating circles when generating the map..
    Just an idea.. Dont know if it would work in practise..
    After generating the map make another iteration through the map in a tiled order and spawn a circle thats as big as the "spawnable area".
    If the circle collides with the map, destroy it and move to the next tile.
    If the circle fits, dont destroy it, and run a resize function on the circle before continuing tiled iteration of the map.
    resize function is just to make the circle fit better inside the map, it might scale until it hits a wall, when hitting a wall it takes the point it collided with, moves the circle in the oposite direction by like half or a third of a tile, then continues scaling, maybe it tries the reposition twice before rescaling incase it is inside a weird cave with multiple edges sticking out, and when the resize function fails due to collitions like 3 times, it stops, returns the function and the tiled map iteration continues, also circles detect collitions with themselves so not too many spawn, then just use these circles as a list of spawnable areas with the circles size being an indicator of what fits inside it, also while playing the game, you could have more circles spawn on map changing events around the area a change happens, by firs resizing circles in the area and then tiling through that area specifically, of major map changes occur, put the circles that should change in a list and iterate the list each frame with a set iteration speed.. ETC ETC...
    OMG i feel like i can go ON and ON about these kinds of "tricks and cheats", i love the video man, keep it up!
    Your video popping up on my feed is making me now move on and look for more videos like this because these things are such an integral part of game development its almost fundamental id say. again thanks for the vid!

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

      Also quick FYI, i wrote this in the span of 2 min and the idea came from the top of my head, reading it again i already see things that are problematic, but i can also list how to instantly fix them lmao, ask if you are curious, im aware that its doggo poopoo as it is lmao, if u wanna use it, flesh it out or be creative and take inspiration, imma go watch more content like this 🤤

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

    I'm not developer, but i programed some electronics. If it works, it works 😅 but this is viable for a lot of things. Broken mixer? You could go buy another one, or... use cordless drill that you have on hand instead. Windshield washer fluid empty? Dilute some washing liquid or liquid soap instead. Sometimes it isn't about good practices, but creative problem solving. While good practices are good, I think finding alternative paths to solve particular problems are much better skill to have than strictly follow the rules, especially if you can't force things to work in that ruleset.