I think Both TCP and UDP should be implemented in the game, UDP should be mostly used in the main game and TCP for basic things.
For Example, suppose you have a login system, so its better to implement login system over TCP using HTTP
and on the other hand if you have some tasks such as updating the location of the player in a multiplayer game you should make use of UDP rather then TCP.
In login system if login fails, (Running on HTTP) or in a chat system message something goes wrong (Running on Web Socket or HTTP) you should inform the userplayer about it, on the other hand if due to some reasons the position of the player doesn't get updated at all or it gets updated multiple times, You don't have to worry about it here, just resume from wherever the user is.
So a mix-up of both TCP and UDP is better, when it comes to a multiplayer game, so in short you can say the main part of game is implemented on UDP most of the time, Its also possible to implement all the stuff in just UDP.
So its totally a design decision which defers from game to game