My wife and I cruised out of Miami for a 6 night cruise, stopping in Key West, Grand Cayman and Jamaica. We took our two oldest children (9 and 7). We booked the cruise through priceline.com.
Prior to leaving, Carnival sent several emails noting we were required to pay all gratuities prior to sailing. It seems that the gratuities were extremely high, especially considering we had all 4 of us in a single room, but to not even have an option to tip on the boat was frustrating.
Our cruise last year with Royal Caribbean gave us the option to tip at the end, and, as I expected, service in general was much better on RC. All cruise employees seemed to understand that they were truly working for the tips they received, as opposed to this cruise, where they had essentially already been paid and service was not nearly as good. The honest truth is that it probably costs the employees $ to require gratuities up front. We tipped much more than the recommended amount to our dining room staff on RC.