AAcademyCloud
Курси/Середній → Senior

Сервер MMORPG на Java

Як влаштований сервер багатокористувацької гри зсередини: мережевий шар на Netty, тік світу, видимість, бій, персистентність і навантаження.

📚 10 модулів📝 10 уроків10 модулів

Програма курсу

Модуль 1. Архітектура ігрового сервера1 ур.
  • Архітектура ігрового сервера: з чого складається світБезкоштовно
Модуль 2. Мережевий шар на Netty1 ур.
  • 🔒Мережевий шар на Netty: свій бінарний протокол
Модуль 3. Login-сервер і автентифікація1 ур.
  • 🔒Login-сервер, автентифікація і сесії
Модуль 4. Ігровий цикл і тік світу1 ур.
  • 🔒Ігровий цикл: тік світу й планувальник
Модуль 5. Модель світу: персонажі, предмети, інвентар1 ур.
  • 🔒Модель світу: персонажі, предмети, інвентар
Модуль 6. Персистентність: MySQL і батчинг1 ур.
  • 🔒Персистентність: MySQL, пул з'єднань, батчинг
Модуль 7. Простір і видимість: регіони, broadcast1 ур.
  • 🔒Простір і видимість: регіони, knownlist, broadcast
Модуль 8. Бій, навички, стани1 ур.
  • 🔒Бій, навички, стани й захист від читерства
Модуль 9. NPC, спавн і AI1 ур.
  • 🔒NPC, спавн і AI
Модуль 10. Навантаження, профілювання, capstone1 ур.
  • 🔒Навантаження, профілювання, capstone

Про курс

Про курс

Це курс на нашому власному матеріалі. Ми тримаємо живий світ Ейрін і тут розбираємо рівно ті системи, які в ньому працюють: чому ігровий цикл не можна писати як звичайний веб-запит, як сервер вирішує, кому надсилати пакет про твій крок, і що ламається першим, коли на сервер заходить тисяча гравців.

Чого ви навчитеся

  • Архітектура ігрового сервера: login, game, база, їх межі
  • Мережевий шар на Netty: свій бінарний протокол, кодеки, backpressure
  • Ігровий цикл: тік, планувальник, чому нема місця блокуючим викликам
  • Просторова видимість: регіони, knownlist, широкомовлення
  • Бій: формули, кулдауни, стани, стійкість до читерства
  • Персистентність: батчинг у MySQL замість запису на кожен рух
  • Профілювання під навантаженням і полювання на GC-паузи

Для кого

Для тих, хто вже пише на Java і хоче зрозуміти системи реального часу. Це не курс для першого знайомства з мовою.

Вимоги

Впевнена Java, розуміння колекцій і потоків. Курс Java Pro — хороша підготовка.