Структура проекта myteeworlds:
-
client
- main.py
-
server
-
main.py - для запуска проекта
- создает переменную сервер
- запускает сервер
-
server.py - контроллер для server_model.py
- класс Server с методами:
- init инициализация модели сервера в server_model
- main_loop основная петля, ядро сервера
- выделение 2 потоков для чтения данных (команды для сервера и действия игрока)
- чтение данных с клиентов
- выделение потока для отправки данных клиенту (реакция сервера)
- отправка данных клиенту (реакция сервера)
- класс Server с методами:
-
server_model.py - хранит всю бизнес-логику сервера
- класс Server_model с методами:
- выделение id для игрока
- отключение игрока от сервера
- подключение игрока к серверу
- выкинуть игрока в игру
- отправка клиенту его id на сервере - точнее это перекинется в server(контроллер)
- обновить время игрока на сервере - тоже должен делать контроллер
- удалить тех, кто неактивен больше n=15 сек
- превратить лист таплов в байт строку для отправки клиенту
- обработка событий от клиента (перемещение) - кто этим должен заниматься ?
- класс Server_model с методами:
-
player.py - совокупность всех игроков и методы, которые реализуют их действия(перемещения, смерть, СОН, ну может еще СОН) контроллер для player_model
- класс Player с методами:
- init инициализация player_model для каждого из игроков, которые появляются
- перемещения
- контакт с объектами - думаю это обязаность model
- класс Player с методами:
-
player_model.py - в идее это основные характеристики игрока, тип его координаты, скин возможно, имеющиеся у него пушки, базуки...
- класс Player_model с методами: *
-
game_world.py - в моей идее(ну тип мой же проект, я так мыслю)
-
В методе main.py создаем экземпляр класса Server из файла server.py И запускаем метод main_loop это основное ядро сервера.
Основной процесс сервера идет в методе main_loop, который находится в файле main.py. Для начала вы все меня заебали