Тема: Сервер для онлайн гри, загальні питання
Доброго дня, шановні реплейсяни. Зовсім недавно я взяв життєвий квест - написати покрокову стратегію (чи тактичну гру) в котру люди зможуть грати онлаєн.
У кожного гравця буде свій власний кабінет в онлайн грі, де він зможе купувати/модернізувати своїх бійців за ігрову валюту, а потім випробовувати то все на полі бою. Зараз я на самому початку.
Для написання серверу обрав бібліотеку Netty, тому що вже користувався нею, та й взагалі, люди добре відгуються про неї. А от в якості бази даних обрав postgresql. Раніше я використовував лишень MySql, не скажу, що я так круто розібрався з нею, що помітив якісь проблеми в роботі, і проаналізувавши декілька баз даних обрав postgres. То я просто читав, що розробники деякої онлайн гри то все зробили, і postgresql їм підійшла.
Так от. Питання.
Як взагалі "краще" організувати роботу серверу? Я десь чув про якісь сервіси, типу - сервер складається з якихось сервісів, котрі спілкуються піж собою, але я от не зовсім, точніше, зовсі не розумію, що то за сервіси, які переваги між сервісами і не сервісами, і т.д.
Наразі сервер уявляється мені однією прогою, котра приймає в себе дані і щось з ними робить. Для роботи з базою даних напишу окремий клас, котрий буде працювати в іншому потоці, аби не тормозити прийняття й обробку нових повідомлень.
До речі, інформація про ходи гравців не буде проходити через сервер, для цього я буду використовувати один сервіс. Тобто мій сервер повинен займатись реєстрацією, логіном, збереженням та поверненням даних, і ще він повинен буде реалізовувати поведінку ботів, якщо гравець захоче пограти проти комп'ютера.
Ой, щось я наговорив тут багато всього, а конкретних питань так і не написав.
1. Що таке ті "сервіси", і як працює сервер, що побудований "сервісами"?
2. Які загальні поради можете дати при написанні подібного серверу?