Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Реализация многопользовательской онлайн-игры


Автор: Qu1nt 29.12.2008, 20:01
Доброго времени суток!
Все-таки решился(?) познакомиться с Java поближе. Для этого поставил цель - реализовать MMOG (многопользовательская онлайн-игра). Нет, убийцу WoW я писать не собираюсь, преследую иные цели:
 - создание пользовательского интерфейса (swing)
 - графика (canvas)
 - работа с БД (mysql)
 - сеть (sockets)
В принципе, по отдельности с этими компонентами я работать умею. Но как грамотно собрать это в клиент-сервер приложение не знаю. Интересны любые советы, спасибо!

Автор: Platon 29.12.2008, 20:19
Если с ООП всё в порядке, то могу посоветовать только движок для многопоточной работы IM сервера - http://mina.apache.org/, даже в отзывах где-то видел, что команда геймдевов хвалила этот проект.

Автор: Qu1nt 29.12.2008, 20:56
Вашу статью прочитал. Хотелось бы обойтись без использования сторонних компонентов и попытаться реализовать все на довольно низком уровне. Целью является даже не завершение проекта, а опыт решения подзадач и обход подводных камней в процессе разработки.
Например, сейчас стал вопрос как наиболее гибко организовать передачу пакетов между клиентом и сервером.

Автор: ecologist 30.12.2008, 10:32
Ну если без всяких посторонних, то получаем:
- клиентская часть, писана на Swing. Информация по Swing более подробно ищется и спрашивается на форуме.
- серверная часть. которая принимает запросы от клиентов, как-то это обрабатывает и отдает обратно что-то
- протокол обмена по TCP/IP 
- или вместо TCP/IP надо подумать об RMI, потому как это будет проще и правильнее.

Вообщем-то все - дпльше уже надо разработать саму игру.

Автор: Platon 30.12.2008, 11:42
Цитата(ecologist @  30.12.2008,  11:32 Найти цитируемый пост)
потому как это будет проще и правильнее.

ужели? RMI в корпоратиф, юзерам чистый, экономный траф!

Автор: SoulKeeper 30.12.2008, 14:28
Чистый экономный траф это хорошо, но не средствами мины. Достаточно печальный опыт общения с ней у меня.

Да и своя библиотека конкретно под свои задачи будет удобнее.

Автор: Platon 30.12.2008, 14:33
Оо, а можно поподробней, что печального случилось? Я использую ее (не в производственных масштабах), и нареканий пока не было.

Автор: SoulKeeper 30.12.2008, 15:43
Да пробовал заменить на Мину стороннюю либу, т.к. были проблемы с лицензией (GPL не катит под коммерческий продукт :(), а свое писать было лень.

Данные к Мине приходили нормальные, отсылались, но не принимались вообще. Такое чуство будто клиент молчит. Дебажить внутренности мины было лень, поэтому таки написал свою либу. Все заработало.

Автор: powerOn 30.12.2008, 16:42
Модератор: Тема была разделена. Продолжение тут: http://forum.vingrad.ru/index.php?show_type=forum&showtopic=242264

Автор: Qu1nt 30.12.2008, 20:05
Вот набросал:
http://img233.imageshack.us/my.php?image=systemez7.jpg
Наверное, начну потихонечку писать код, т.к. вопросов становится все больше smile 

Автор: AntonSaburov 31.12.2008, 12:30
Цитата(Qu1nt @  30.12.2008,  20:05 Найти цитируемый пост)
Наверное, начну потихонечку писать код

Если честно, то схема слабо напоминает понятную архитектуру. Конечно у тебя есть свои резоны и мысли, правда мы о них не знаем. Но если что надо конкретное - спрашивай.

Автор: Qu1nt 5.1.2009, 02:42
AntonSaburov, безусловно. Никак не могу с UML подружиться smile
Сейчас встал вопрос - что использовать для разработки сервера: IO или NIO? 

Автор: v2v 5.1.2009, 13:12
Есть такой проект, называется DarkStar, вот посмотрите в его сторону , как минимум  удасться  постороить более правильную архитектуру.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)