In the public part of the game class, there are a few main methods used to manage the whole game. There's one method for the game's main loop -> int MainLoop(), but there's another used to update the game, i.e. to refresh data on players, missiles... this method is -> void update(). You can also find a function -> void sendMoveToServer(), used to adjust the player's behavior and position according to his own actions (moving, dying...).
About variables, you will find varibles used to manage the game like -> sf::Vector2u _screenSize, sf::RenderWindow _window, long _lastTime, float _resMult, unsigned int _roomId, unsigned int _playerId, bool _gameOver, unsigned int _startTimeLeft, unsigned char _started, int eventMemory.
In this class, you will also find some instance of other classes like Loader _manager, ECS::Registry ecs, Factory _factory, Network _net. These classes are used for differents things. For example, Loader is used to load texture of entities, ECS::Registry is used to call update of components like ECS::systems::PositionSystem().update(this->ecs). You will also use ECS::Registry to call function to kill an entity -> this->ecs.kill_entity(entityID).
Finally, there are many functions that are part of game management :
Theses functions are used to update the game by part and manage all the entities.
Some additions function are there like void refreshScreenSize() to refresh the resolution of the screen where the program's displayed, or void initButtons() && void initMenus() to manage the menu displayed on the screen.
Moreover, there is also the method void sendChat(const std::string &msg) to manage the chat that you will see during the matchmaking.
Finally, you will see int searchRoomId(int roomId) to get the current room accessible.