Оценка ресурсоемкости поставленной задачи
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 17:02 | Сообщение # 1 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Добрый вечер. При выборе средства разработки остановился на распутье, что же взять:
Есть определенная задача. В двух словах:
Онлайн игрушка с пошаговым геймплеем, где игрок управляет игровым процессом, выбирая мышкой соответствующие button-ы и щелкая по ним.
Можно сказать, что это некоторый аналог браузерной игры, но для анимации и другой работы с графикой и звуками используется клиентская технология.
Что касается геймлпея, то он достаточно разнообразный планируется(можно даже сказать, нагруженный), но он весь сводится к щелканью по баттанам.
Выбор стоит между двух технологий для написания сервера:
1. php. Соответственно, post-запросы с клиента к определенным скриптам. Для того, чтобы информация в клиенте была актуальной, придется время от времени(например, раз в секунду) повторять запрос. Отсюда лавинообразная нагрузка на сервер. 2. Сокетный сервер на ЯП высокого уровня(С++ или дельфи, к примеру). Тут все понятно, клиент и сервер соединены через сокет.
В общем, есть ли методики, чтобы по запланированным возможностям понять, подойдет ли та или иная технология для реализации? Понятно, что сокет-сервер тут как нельзя кстати. Интересует вопрос, соответсвенно, с пыхом.
Вопрос можно переформулировать так: хватит ли мощности PHP на стандартной машине со стандартным интернет-каналом(подразумевается, что машина не древняя, канал рассчитан на нужную нагрузку), чтобы таким образом организовать сервер, или же при наличии определенного числа игроков(ниже нужного порога) вся эта конструкция просто превратится в DOS-атаку.
Сам больше склоняюсь к сокет-серверу, чтобы не было таких сложных зависимостей, но даже не знаю, тут есть свои приколы.
Жду ваших комментариев и мнений.
|
|
| |
Alex_Roth | Дата: Понедельник, 02 Января 2012, 17:06 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Исключительно не аргументированное мнение: Пиши на ++ (или Дельфи). Оно как то надежней.
С уважением, Alex G. Roth.
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 17:14 | Сообщение # 3 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Неаргументированного мнения и у меня полно.
С плюсами или дельфи вылазят другие проблемы типа работы с БД, оптимизации сети и т.д.
Можно, конечно, использовать готовые решения, но как-то не привык. А самому делать- достаточно долго.
|
|
| |
BADCOIQ | Дата: Понедельник, 02 Января 2012, 17:14 | Сообщение # 4 |
Отец-основатель BADCOIQ Corporation © 2010
Сейчас нет на сайте
| Блин думал школьник тему создал. Quote Оценка ресурсоемкости поставленной задаи
"Do you think we can fly? Well, I do."
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 17:19 | Сообщение # 5 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (BADCOIQ) Блин думал школьник тему создал. Промазал немного, поправил)
Могу добавить, что тестовый путь проб и ошибок лучше не предлагать. Ибо это вообще капец полный=)
|
|
| |
lvovand | Дата: Понедельник, 02 Января 2012, 17:28 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| а клиент на чем? если flash, то можно не просто post-запросы слать, а через amfphp попробовать работать, побыстрее должно быть
Разработка и продвижение сайтов. Дизайн
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 17:40 | Сообщение # 7 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (lvovand) если flash, то можно не просто post-запросы слать, а через amfphp попробовать работать, побыстрее должно быть Не флеш. Веб-версии не будет. Пост запроса в движке нет, так что его реализацию придется делать руками в виде dll.
|
|
| |
noTformaT | Дата: Понедельник, 02 Января 2012, 18:12 | Сообщение # 8 |
Ukrainian independent game developer
Сейчас нет на сайте
| ммм, ну что тут сказать... сейчас работаю над проектом, который по началу был построен на сокет сервере... Сокет сервер не свой, покупной, smartfox server 2x... Написан на джаве + аренда сервера на линуксе для работы самого сокет сервера... Короче серверная часть стоит не мало...
У нас соц флеш игра.. сначала была полностью с сокет сервером... как только флешка запускалась, она сразу же подключалась к серверу, и постоянно держала соединение.. Но, так как у нас соц игра, то там есть понятия "ограничение игровой сессии"... В нескольких словах - можно поиграть несколько раз, а потом ждем некоторое время что-бы поиграть.. Такое есть везде, во всех соц играх....
И вот так у нас получилась ситуация, когда игрок проиграл все свои сесии, он просто сидел в меню, и флешка хоть и не сильно жрала трафик, но держала соединение... Как видно все не торт.. и руководство пришло к мнению, что надо все переписать. Игра у нас реалтаймовая, тоесть два игрока всегда пересылают друг другу разные данные... а все что вне игрового процесса - магазин, новости, и т.д. - все событийное. Поэтому пришлось переписать это.. Мы потратили время, но добились неплохого результата... ПХП сервер это не дорогое удовольствие, и с помощью него мы разгрузили сокетсервер, теперь к сокет серверу подключены только игроки которые играют, а не которые страдают фигней....
Если бы не реалтаймовость игрового процесса, то мы бы вообще выкинули сокетсервер.. это очень дорогое удовольствие.. Писать свой с нуля - это бред, поэтому оптимальным решением будет покупка сокет-сервера.. стоит они довольно прилично... Для его запуска нужен технический сервер, в нашем случае с джавой, и отличной пропускной способностью. Не все могут себе такой позволить...
@noTformaT
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 18:42 | Сообщение # 9 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (noTformaT) У нас соц флеш игра.. сначала была полностью с сокет сервером... как только флешка запускалась, она сразу же подключалась к серверу, и постоянно держала соединение.. Но, так как у нас соц игра, то там есть понятия "ограничение игровой сессии"... В нескольких словах - можно поиграть несколько раз, а потом ждем некоторое время что-бы поиграть.. Такое есть везде, во всех соц играх.... Вот у меня что-то вроде социалки по геймплею. Только шире возможности + в клиенте. Можно сказать, что объединены несколько социалок=) Quote (noTformaT) И вот так у нас получилась ситуация, когда игрок проиграл все свои сесии, он просто сидел в меню, и флешка хоть и не сильно жрала трафик, но держала соединение... Как видно все не торт.. и руководство пришло к мнению, что надо все переписать. Игра у нас реалтаймовая, тоесть два игрока всегда пересылают друг другу разные данные... а все что вне игрового процесса - магазин, новости, и т.д. - все событийное. Поэтому пришлось переписать это.. Мы потратили время, но добились неплохого результата... ПХП сервер это не дорогое удовольствие, и с помощью него мы разгрузили сокетсервер, теперь к сокет серверу подключены только игроки которые играют, а не которые страдают фигней.... Проблема в том, что, несмотря на событийность игры, в ней все-таки идет достаточно активное участие игрока. Соответственно, запросов будет немало. И хотело бы как-то оценить, хватит ли такого предела при организации ПХП сервера и какова вероятность, что мы его убьем сами, нагрузкой от мира игрового? В принципе, некоторые вещи не беда ограничить геймплейно. Пример я приводил как-то. Например, изначально планировалось, что игрок будет заниматься шахту не по определенной очереди, а по принципу "кто первый успел". В итоге все желающие перед освобождением шахты тыкали на нее и ждали, пока она освободится. В итоге нагрузка шла нерационально. Я просто ввел в игре очередь, чтобы смысла сидеть и тыкать по шахте не было.
Также можно сделать программную оценку, как часто игрок шлет запросы, в случае, если он сидит и от нефиг делать тыкает по кнопкам- дать предупреждение или кикнуть. Quote (noTformaT) Если бы не реалтаймовость игрового процесса, то мы бы вообще выкинули сокетсервер.. это очень дорогое удовольствие.. Писать свой с нуля - это бред, поэтому оптимальным решением будет покупка сокет-сервера.. стоит они довольно прилично... Для его запуска нужен технический сервер, в нашем случае с джавой, и отличной пропускной способностью. Не все могут себе такой позволить... Точно не я. О том и речь, что содержание дорогое. А почему написать с нуля- бред?)
|
|
| |
noTformaT | Дата: Понедельник, 02 Января 2012, 19:28 | Сообщение # 10 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (Vinchensoo) А почему написать с нуля- бред?) Писать сокет-сервер с нуля это действительно много работы....
Обычный сокет сервер содержит в себе несколько элементов: Комната, Зона, Игрок, Администратор/модератор комнаты или зоны, протокол обмены сервера и клиента, модуль работы с бд и т.д. Там куча всякой фигни...
Во всякому случае, если писать свой сокет-сервер, то надо писать такой продукт, который можно было-бы расширять. А писать подобный софт действительно не очень хорошая затея...
Я знаю студии которые написали свои собственные сокет-серверы, но блин, качество таких серверов не очень.. Они написаны исключительно под определенную игру и механику... и использовать их в другой игре уже не получится...
Ресурсоемкость написания подобного продукта действительно большая, вот поэтому уже готовые решения стоят достаточно много... Есть конечно бесплатные, но я знаю только один...
@noTformaT
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 19:39 | Сообщение # 11 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| noTformaT, ну это понятно, что если делать все кошерно, чтобы это было расширяемо, то это работы более, чем дофига. Мне такой расширяемости, в принципе, не нужно, но работы все равно много.
ну а что насчет оценки возможностей пхп для такой задачи?
Только опытным путем?
|
|
| |
Rorschach | Дата: Понедельник, 02 Января 2012, 20:00 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Оценить ресурсоемкость задачи ты вряд ли сможешь. А написать тонны кода и заметить, что серв не выдерживает нагрузок будет обидно... Сейчас работаю над очень похожим проектом, остановил свой выбор на RakNet&C++&MySQL, доволен как слон. Никаких сверхъестественных сложностей работа с сокет-сервером не несет.
Never compromise. Not even in the face of Armageddon.
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 20:03 | Сообщение # 13 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Rorschach, сложностей реализации под конкретную задачу нет.
Для пых сервера: реализация пост запроса Для сокет: реализация сокетов под линь, под вин, запиливание работы с БД, протокола передачи данных.
Вроде бы все. Не особо сложнее.
А вот выкупить машину под свой сокет-сервер: уже не такая тривиальная задача. А делать для того, чтобы потом сесть и смотреть на исходники, т.к. нет средств на запуск-не годно.
|
|
| |
Rorschach | Дата: Понедельник, 02 Января 2012, 20:11 | Сообщение # 14 |
участник
Сейчас нет на сайте
| Quote (Vinchensoo) запиливание работы с БД Все остальное из того пункта убирай. Quote (Vinchensoo) А вот выкупить машину под свой сокет-сервер: уже не такая тривиальная задача. А для серва на php машина не нужна? Или речь о трафике?
Never compromise. Not even in the face of Armageddon.
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 20:13 | Сообщение # 15 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Rorschach) А для серва на php машина не нужна? Или речь о трафике? Веб- хостинги стоят намного дешевле, чем дедики.
Quote (Rorschach) Все остальное из того пункта убирай. Ну, обвязку таки надо написать на СокетАПИ.
|
|
| |
Rorschach | Дата: Понедельник, 02 Января 2012, 20:18 | Сообщение # 16 |
участник
Сейчас нет на сайте
| Quote (Vinchensoo) Ну, обвязку таки надо написать на СокетАПИ. Бери качественное готовое, RakNet || SmartFox. Последнее стоит денег.
Never compromise. Not even in the face of Armageddon.
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 20:23 | Сообщение # 17 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Rorschach) Бери качественное готовое, RakNet || SmartFox. Последнее стоит денег. Снова деньги, еще на этапе выбора ПО, уже плохо. О чем и писал нот.
Raknet- а вы точно внимательно читали офф. сайт?
Он бесплатный только для некоммерции, а дальше- пляски с лицензиями.
|
|
| |
Rorschach | Дата: Понедельник, 02 Января 2012, 20:32 | Сообщение # 18 |
участник
Сейчас нет на сайте
| Quote (Vinchensoo) а дальше- пляски с лицензиями. Да, если вы заработаете на своем детище больше 100000$
Never compromise. Not even in the face of Armageddon.
|
|
| |
Vinchensoo | Дата: Понедельник, 02 Января 2012, 20:47 | Сообщение # 19 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Quote (Rorschach) Да, если вы заработаете на своем детище больше 100000$ Вряд ли, но мне не нравится потенциальный интерес к моему продукту с их стороны.
А писать свой- долго и не выгодно.
|
|
| |
RomanPavlovich | Дата: Понедельник, 02 Января 2012, 21:45 | Сообщение # 20 |
Почетный гость
Сейчас нет на сайте
| А на счет хостинга, вот решение от гугла: Читать
Я так понимаю, у тебя будет не большое количество игроков? тогда там можно работать бесплатно. Серверную часть можешь писать на Java, Python.Добавлено (02.01.2012, 21:45) --------------------------------------------- Сам кстати не пробовал, но на хабре отзывы положительные.
всё о разработке и продаже игр.
|
|
| |
|