Star Citizen: Bugsmashers! – Caterpillar Doors

Star Citizen: Bugsmashers! – Caterpillar Doors


Closed Captioning provided by Relay.sc Mark Abent (MA): Hey everyone, welcome to
Bugsmashers. I’m your host Mark Abent, I’m a Gameplay
Programmer at CIG Los Angeles and I’m here to show you behind the scenes of bugs and
how I smash them. Let’s take a look. Hey everyone. We’re here inside of the Caterpillar and
we have a bug where these fun cargo doors sometimes don’t open or they open incorrectly,
and these doors are a little special because there’s an interior and exterior part. So you can think of the interior here and
the exterior here, and when you open it, they’re supposed to be coincide. When you close it, they’re supposed to go
to together, however when you look away from the door the exterior opens, but the interior
remains where it was until you look at it and then it may start animating or just get
stuck. So if we open it up, we can see it, everything
looks fun. If I close it and look away, it’ll take
a bit… BAM! Oh we can see the exterior door close, but
the interior which it should show this metal stuff with Drake on it and all that panels
is not closed. So the interior, we can actually fly out. The exterior closed, the interior has not. So if I run over here and hit close, you can
see it snapped to the close position and now it works correctly. So what’s going on? Well there’s a bit of code that says, “Hey
if this thing is visible, we can fire off on the animations”. The idea is it’s some kind of optimisation
so if there’s a ship wayyy out there, I don’t have to animate it because why take
up all those CPU cycles, but unfortunately when we’re inside the ship, the exterior
knows that we’re potentially visible so it animates, but the interior when we switch
this way, that CGA in the back is not owned by any entity it’s just there, and because
of that it doesn’t animate correctly. Even though it’s attached to the animation
of the ship, it’s just called out because it’s like, “well it’s not visible so
I shouldn’t have to worry about it”. So I have this bit of code in Manikin, if
I enable it, what this will do is it checks to see if this entity has a parent which is
going to be the ship and if this door, the interior is enslaved to the exterior and the
exterior is visible, then we allow it to animate even though you can’t see it. The idea is if you can see the exterior, then
you should potentially see the interior when the door opens and closes. So what we do is if the owner entity which
is going to be the vehicle which is going to be the exterior door is active, but the
interior door is not, we’re going to force it to be active. Same thing down here, so we’re forcing the
entity active and we’re forcing the skeleton to be active. What that will do is this will allow the entity
to do an update call to tell the animation system, “Hey I’m active, so go process
my animations”, and this will allow the skeleton to actually function. So two updates we have to do. Entity system wanted to say, “hey, animation,
I’m ready”, and the animation system will go, “yup, I’m ready too”. So in theory this should allow if the outer
door is ready, the inner door will be forced to be ready so they can open and close together. So let’s hit the recode button and take a
look at what happens. Okay recode is done, let’s start back up
the game, alright! So we’re back in the level and let’s close
the door. Magic door close. We won’t look at it. Wham! It’s closed as you would expect. Alright let’s open it again. Let’s not look at it, not look at it, and
it’s open! So now we’re getting the interior update
when the exterior is updating. So if I close this, going into another room,
open that door, go to the other room it’s closed correctly and this room should be open
correctly. So if the interior is not updating, but the
exterior is, we say, “Hey you should be because we’re updating both” and then
they both play the animation, everything works well and you could open and close your doors
just by not looking at it. Well hope you guys enjoyed, till next time! So as you guys saw we had the Caterpillar
and its just a gigantic long ship and it has all these bay doors in it and you’re supposed
to be able to hit one or open one up and brings down the bay door and it’s a little bit of
complicated geometry in this setup because we have an exterior mesh for the door and
an interior mesh. So there’s two doors that open and close
and what was happening is when you’re looking at one of the doors it opened correctly, however
if you looked that way when the doors open, one of the doors would open, but the other
would stay intact and it would usually be the exterior door that opened and the interior
door when you’re inside wouldn’t open until you looked at it and then it would start
animating, but by then it would be too late, it would be stuck open or stuck closed. You could go around and hitting all the buttons
and it wouldn’t move until you looked at it. It was a simple fix, we just made sure that
if the exterior animates, then we force the interior to animate at the same time. So the doors would open close even if you
looked the opposite way. Hope you guys enjoyed, until next time.

Comments

  1. Post
    Author
  2. Post
    Author
  3. Post
    Author
  4. Post
    Author
    ๖ۣۜ Lt.Gen.Falcon༻

    First 😉

    Always nice to look at your work, but i realy don't understand what you're talking about if i see the codes lmao 😉

  5. Post
    Author
  6. Post
    Author
  7. Post
    Author
  8. Post
    Author
  9. Post
    Author
  10. Post
    Author
  11. Post
    Author
    * Elfwyn *

    Great insight into the complexity of animation occlusion. It helps me to understand the difficulties and time involved in programming such an advanced game. Keep up the good work!

  12. Post
    Author
  13. Post
    Author
    RedJackOfClubs

    What purpose is there to have two separate doors if they are just going to be slaved to each other? Are they modules or something?

  14. Post
    Author
  15. Post
    Author
    Medusa Zenovka

    Yeah, such bugs are quite easy to fix if you know where they are. 80% of the development time you spend searching and fixing bugs like these, at least it feels like it.

  16. Post
    Author
  17. Post
    Author
    The Great Sauron

    At the end of the video, the code is still commented out. Does that mean Mark records the beginning and end of the video before he fixes the bug?

  18. Post
    Author
  19. Post
    Author
    Mei

    Good old Mark. I like his debugging series. He's great at explaining, making code logic easy to understand. Good thing this series is being continued and remain unchanged.

  20. Post
    Author
  21. Post
    Author
  22. Post
    Author
  23. Post
    Author
    Marcelo Antunes

    I dont see progress i just see promises do something that isnt scripted some real gameplay . Why you dont show some of SQ42? You said it is almost done so show us something ! ffs

  24. Post
    Author
  25. Post
    Author
  26. Post
    Author
    darkquail2003

    Interior crocodile alligator. I drive a Chevrolet movie theater.

    Interior caterpillar elevator. I open doors and look at them later.

  27. Post
    Author
    Kissamies

    Currently most interesting content on this channel. I hope to see the pitch&yaw axis/view axis conflict resolved here some day. That would really make my day.

  28. Post
    Author
    Hadley S.

    I'm so mad I didn't buy a Caterpillar pirate skinned version when it was available!😟 it turned out so much better looking in game than I thought.

  29. Post
    Author
  30. Post
    Author
    tehFozzeY

    Please ignore the huge tire fire behind me and watch carefully while I extinguish this very small, carefully selected candle. LOOK! PROGRESS!

  31. Post
    Author
  32. Post
    Author
  33. Post
    Author
  34. Post
    Author
  35. Post
    Author
  36. Post
    Author
  37. Post
    Author
  38. Post
    Author
  39. Post
    Author
  40. Post
    Author
  41. Post
    Author
    sequorroxx

    What if its just an interior door? Wouldn't the same bug arise and not be fixed due to the fact its free from an exterior? Seems like this solution is overly specific and not addressing the real problem. I only make games as a hobby but it seems like the real problem is animation state is not set at all when culled so when it finally needs to be shown, the game doesn't know to show it.

    Wouldn't a more general solution be to signal when the animation started(and what animation so it knows its timing info) and then if/when it is no longer culled, it can be rendered in whatever state its at currently based on the time delta?

  42. Post
    Author
  43. Post
    Author
  44. Post
    Author
  45. Post
    Author
    Trent Runner

    I wouldn't mind playing Star Citizen that looked like this or have the option to use this as a theme or mod. I know it's developer mode but it looks nice.

  46. Post
    Author
  47. Post
    Author
  48. Post
    Author
  49. Post
    Author
  50. Post
    Author
    Chrisis

    Someone should tell him that he is looking at the wrong part, the door button isnt the white box, but the yellow and black box next to it.

  51. Post
    Author
    Janos Aldroun

    Nice debugging job. It did seem quite ironic that while you were smashing that bug, the "Use" interface bug kept popping up for you. I really hope that gets squashed soon, the current iteration is way too finicky and unreliable.

  52. Post
    Author
  53. Post
    Author
  54. Post
    Author
    Dowlphwin

    1) The summary (i.e. repetition at the end is pointless)
    2) Would love to know whether the fix what code specifically tied to that ship or whether it's something more general that now applies to all kinds of animation.
    3) You were aware of this issue even before handing the ship to the Evocati, right? Internal testing surely noticed it right-away and you just didn't have time to fix it yet.

  55. Post
    Author
    Deltarious

    This was amazing for me to watch because in my issue council contribution on this I specified the details Mark discusses in this issue (interior and exterior separation) .The ability to see in depth what was going on behind the scenes to make this happen is wonderful.

  56. Post
    Author
    Sparky

    Why not base it off if you're inside the entity(ship) to animate? Now you have the extra animation playing for those who are outside EVA'ing who don't need to see it because they're not on the inside. Hmm?

  57. Post
    Author
  58. Post
    Author
  59. Post
    Author
  60. Post
    Author
  61. Post
    Author
  62. Post
    Author
    Malkadorra

    Иногда мне кажется, что только этот человек там реально работает )

  63. Post
    Author
  64. Post
    Author
    dkhawk12

    they should really fix the aurora when you get in and try to drive/open the door and you can't distinguish between the two as it said that you are exiting the ship when really are entering the pilot seat. this is a basic starter ship and can give new players a bad first impression. also the hornets turrets are completely bugged and start a huge amount of problems when trying to use

  65. Post
    Author
  66. Post
    Author
    Mitch Toß

    So, if I understand correctly, this will fix it because there is someone near the ship (in this case: inside) activating the outer door animation. Will it break if you'd allow remote operation of the door from far away?

  67. Post
    Author
  68. Post
    Author
  69. Post
    Author
  70. Post
    Author
  71. Post
    Author
  72. Post
    Author
  73. Post
    Author
  74. Post
    Author
    MrMrhull

    Become a Star Citizen @RobertsSpaceInd and get 5,000 free Credits https://robertsspaceindustries.com/enlist?referral=STAR-4S3D-WRQQ

  75. Post
    Author
  76. Post
    Author
    Mark Richey

    Is it not simpler to say the player is IN the vehicle so animate all actions for the vehicle (for that players client)? Then rely on the normal "can you see it" model for everything else?

  77. Post
    Author
  78. Post
    Author
  79. Post
    Author
  80. Post
    Author
    Daniel Strain

    Can someone explain the logic of those new "open", "use" etc popup graphics? Before, it looked like something I could imagine was on my HUD. But those goofy stretchy floaty letters don't seem to correspond to anything in real life I can suspend disbelief about. I hope they go with something a little better looking.

  81. Post
    Author
    Ashmodai

    Leitkultur ist das was eine bestimmte Gruppe alter Herren gerne hätte…
    Der angestrebten Leitkultur folgen aber bei weitem nicht mal alle Deutschen, also ist es Schwachsinn das ganze für andere festzulegen…

  82. Post
    Author
  83. Post
    Author
  84. Post
    Author
  85. Post
    Author
  86. Post
    Author
  87. Post
    Author
    Digital Nomad

    What confuses me is that on all other cargo doors on all other ships open diagonally downward in a position which forms a ramp when the vessel is landed on the level. I have never seen these doors on the Cat cargo modules do that . What
    really confuses me is that these doors open horizontal in all the You Tube vids, and NOBODY in the voice track ever says anything about it! It sort of makes me feel like the experimental subject in one of those psychology experiments where the teacher and all the students insist that a crooked line on the blackboard is straight. This is recognized as a thing right? How is one supposed to load or unload vehicles or manually unload cargo with a cargo mover into these modules if there is no ramp? Is there a thread on this in a forum, or am I missing something else?

  88. Post
    Author
    Joel Ellis

    looks like an old rendering. Seems like there is a similar bug with the Drake Cutlass interior door where the door will appear shut but the button will show "close interior door". You have to cycle through to get through.

  89. Post
    Author

Leave a Reply

Your email address will not be published. Required fields are marked *