The best way to get good service is to tip beforehand that's especially true on cruise ships, where you're guaranteed to interact closely with the same staff members. So tip $20 to your cabin steward upon boarding it's awkward but it works. You'll still probably have to pay a service charge at the end of the cruise; as with all fees, ask about it in advance.