Программа должна быть написана с использованием сокетов и библиотеки Swing/JavaFX. Использовать библиотеки и фреймворки, которые полностью решают какую-то задачу логики нельзя, но можно использовать компоненты для интерфейса или библиотеку для разбора данных.
Многопоточность для сетевого взаимодействия не обязательна. Но желательна для разграничения работы интерфейса и сети: чтобы интерфейс не “подвисал” на время приёма или отправки сообщений и, наоборот, сетевое взаимодействие работало при работе с интерфейсом. Важно понимать, как используются потоки и есть ли многопоточность в используемых библиотеках.
Необходима определённая архитектура сетевого взаимодействия. Она подразумевает взаимодействие 2 и более людей. Для работающих в паре - это взаимодействие client-server-client.
В интерфейсе необходимо использовать рисование (класс Graphics и т.д.). Это может быть 1 элемент, но логически вписанный в бизнес-логику. Например, нарисованный анимированный компас, чья стрелка плавно двигается с поворотом персонажа. Некоторый набор готовых компонент тоже должен быть использован.
В игре должен использоваться свой протокол передачи данных через сокеты, содержащий МИНИМУМ 4 типа сообщений.
Нельзя создавать такие игры как морской бой, игра в слова, крестики-нолики, точки, стандартные шашки и шахматы.
Разбалловка
Семестровая работа оценивается в 10 баллов.
Работа с GUI (события, компоненты) - 2
Интерфейс (визуальная составляющая, рисование и/или оформление, адаптивность под экран) - 3
Работа с сетью - 2
Протокол (неизбыточность, набор возможностей) - 3
Есть пример работы с сокетами (с пары), здесь нельзя прикрепить ссылку на github