Tutorialization: Telling the player what to do. Putting in cutscenes to show the player where things are. Putting signs on everything. Making dialog options. making things as clear as possible knowing that it won't make a fucking difference.
Making AI agents work: Handling multiple edge cases. Having fallback behavior fail. AI don't behave and do dumb things, pathing where they should not go. Makes the entire game look bad when they behave unnaturally.
Making UI: Having it create UI dynamically, making it work with a controller. UI polish making text and graphics for UI. Having it break over and over again.
Implementing Dialog Having multiple states for being able to talk to NPCs, tracking what dialog they've loaded. Loading dialog without crashing the game. a UI that the controller can use. Creating UI so the player knows which character they are about to talk to, which one they are talking to currently, etc etc.