![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| 53x7u5 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 26.5.2010 Репутация: нет Всего: нет |
Всем привет!
Судя по некоторым темам тут уже попривыкли что многих "начинающих разбираться" новичков в Java приводит желание сделать свою онлайн-игру с киберпокером и лучницами. Этот топик - не исключение (: Пару слов о новичке: Я шарю в AS2/AS3, немного разбираюсь в разработке под Android. В данный момент все свободное время посвящаю изучению Java SE6 по справочнику Г.Шилдта. Пока что осилил только вводную часть книги посвященную обзору основных возможностей среды и работе с данными. Сейчас более подробно остановился на рассмотрении библиотек Java (в данный момент lang). Понятное дело это нифига по сути, но больше чем ничего. К тому же все выглядит очень похожим на AS3 поэтому особых сложностей я думаю не предвидится. В Java меня привело желание разобраться с разработкой приложений под Android. И тут же всплыли старые неудовлетворенные желания доставшиеся от бурной онлайновой-молодости Я хочу поднять небольшую онлайн игру и поэтому прошу наставить меня на путь истинный. Мне доводилось ковыряться в PHP-коде (в основном либо косметическая правка шаблонов для сайтов, либо элементарные обращения к СУБД через flash), но разработка целого сервера - это для меня темный лес. Пожалуйста, подскажите с чем мне необходимо разобраться для того чтобы сделать хотя бы что-то мало-мальское для собственных задач. В конечном счете я хотел бы прийти к следующей системе:
Самый простые примеры похожих игр - OGame или Травиан, Икариам. Игровая логика предполагается аналогичной. Но это уже не суть важно для прототипа, насколько я понимаю. Я не гонюсь ни за какой прибылью, у меня не горят планы и нет армии геймеров с которых нужно срочно натрясти бабла. Я сам себе заказчик и исполнитель и я хочу: 1. Разобраться с серверной частью "от и до" подняв проект у себя на локалке с Денвером; 2. Создать прототип сервера, который потянул бы тестовую нагрузку из 20-50 сферических в вакууме пользователей; (на тот случай если проект станет интересен инвесторам и потребуется продемонстрировать альфу) 3. ..А далее, если будет вне зависимости от интереса инвесторов - своими силами допиливать игру напильником, увеличивать отказоустойчивость, переносить альфу на реальный сервер, ну и как дальше попрет.. В общем, ребят, планы как всегда наполеоновские. Подскажите хотя бы по азам - с чем еще предстоит разобраться чтобы получить свой первый многопоточный сервер на локалке имеющий "зачатки" игровой логики и выполняющий элементарные операции с СУБД (MySQL к примеру). Я тут немного читал что-то про Tomcat, но так и не понял для себя нужен ли он мне вообще. Быть может для моих задач проще использовать какое-то "коробочное" решение а-ля SmartFoxServer (который к тому же бесплатный для очень маленьких проектов)? Гугление дало только исходники монструозного L2Jserver который одними своими размерами вызвал у новичка холодный пот. Совершенно не понятно как с этой махиной работать. Очень бы хотелось примеров игровых серверов на Java попроще. Надеюсь на вашу помощь и понимание (: |
|||
|
||||
| yeputons |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 1.4.2009 Где: Санкт-Петербург Репутация: 1 Всего: 5 |
|
|||
|
||||
| 53x7u5 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 26.5.2010 Репутация: нет Всего: нет |
yeputons, за ответ спасибо, но вопрос больше относился немного к другому.
Попробую пояснить - я в процессе изучения языка делал несколько тривиальных программулек, компилил их, запускал как в самом Eclipse так и непосредственно через командную строку под Win. С этим проблем не возникло. На локалке это запускается, выполняет свою часть работы и благополучно завершается. А как будет "выглядеть" этот "игровой сервер" будучи залитым к хостеру на сервер? Как его в данном случае запускать, как сделать так чтобы он работал постоянно обрабатывая множественные сессии игроков? Для меня это сейчас выглядит как "сделай то-незнаю-что". Весь мой прежний опыт по работе с хостингом заключался только в том чтобы создать новую MySQL, залить в public_html папку с вордпрессом, выставить права на какие-то файлы и папки, подправить htaccess. Больше ничего делать не приходилось. У меня никогда не возникало нужды разбираться в механике работы сайта на том или ином движке (вроде того же WP). В моем "юзерском" понимании после обращения к сайту запрос передавался на управляющие скрипты php которые в свою очередь уже дергали БД и что-то возвращали мне обратно. А как работает сервер на java? Более того - по хорошему счету должен быть какой-то процесс, который будет собирать все запросы в стек, чтобы их последовательно обрабатывать. Наверняка отдельный процесс для обработки логики и еще какой-нибудь неведомой фигни. А это (предполагаю) равнозначно нескольким самостоятельным приложениям которые как-то общаются только между собой. На данном этапе все это - вопросы без ответов над наивностью которых я позднее скорее всего посмеюсь, а пока это только вызывает ступор. Посему буду благодарен если кто посоветует книгу посвященную разработке серверной части на java и практике ее настройки и эксплуатации в реальных веб-службах. Отдельная часть моего вопроса посвящена дополнительному софту что-ли. Понятно что мне понадобится разобраться с самой Java. Понадобится научиться работать с СУБД через Java. Я сегодня читал на хабре небольшое ревью по архитектуре социальной сети Campus.ru. Половины честно не понял) Nginx, Tomcat, отдельные "балансировщики нагрузок" для СУБД, JMS-сервер, календарный сервер, система фай мой мозг "мониторинга системы". Пачка отвисла уже на "балансировщике нагрузок". Вот это вот все неизвестное и непонятное тоже требуется для любого в-перспективе-сильно-нагруженного-проекта? Я не боюсь со всем этим разбираться, мне только понять нужно ли все это для моих задач или ради 20-50 тестовых игроков мне все это не потребуется. Уфф.. Я не умею предельно лаконично выражать свои мысли, уж простите, но я надеюсь что у кого-нибудь да и хватит терпения дочитать всё до конца и дать развернутый ответ. Если я где-то фигню ляпнул - говорите пожалуйста. Я чисто по незнанию) |
|||
|
||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
53x7u5,
Вопрос первый: Игра будет реал-тайм или пошаговая? От ответа на этот вопрос зависит то направление в котором вам придется двигаться в процессе изучения. В случае пошаговой игры можно использовать web-сервер сделав общение клиента и сервера через xml поверх http. Сервер вашей игры будет представлять собой web-сервис. В данном случае нужно смотреть в сторну: Java EE: -Servlets -Web-сервисы -XML Это, конечно, не единственный вариант - но ИМХО, наиболее простой. В случае реал-тайм игры Вам придется писать свой собственный сервер. Смотреть надо в сторону Java SE: - socket-ы - многопоточность -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| 53x7u5 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 26.5.2010 Репутация: нет Всего: нет |
Vasay, игра в реальном времени. Игра по сути больше похожа на экономический симулятор. Никаких боёв с крутыми анимациями. Игровой интерфейс - таблицы с какими-то текущими данными, такими как "время до атаки", "кол-во ресурсов которые генерируют шахты", "время перемещения юнита" ну и т.д. По сути это будет просто большое количество "игровых процессов" завязанных на таймеры. Но если вдаваться в подробности то "таймер" будет просто обновлять данные по каждому игровому пораметру вычисляя время с момента предыдущего обновления и умножая его на какой-то коэффициент. То есть, например, если шахта производит 10 угля в час, то если с момента последнего обновления "экрана" прошло полчаса мы делаем +5 к кол-ву ресурсов. По тому же принципу будут производится и все остальные действия. Просто математика.
<оффтоп>Я плохо понимаю чем обусловлен выбор между EE и SE, если честно. В моем понимании EE предлагает "из коробки" больше возможностей, но требует бОльших ресурсов. Я взялся за SE потому что J2EE не подходит для разработки под Android. На форумах обычно встречаю объяснение а-ля "EE предназначен для корпоративных решений для веб-серверов". Вроде что всякими дополнительными вещами EE нагружен под завязку, а в каких конкретных случаях нужен EE, а в каких достаточно SE - мне как новичку не ясно. Частично что-то пытался почерпнуть отсюда</оффтоп> |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |