Пятница, 10 Мая 2024, 17:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Общие обсуждения программистов » Оценка ресурсоемкости поставленной задачи (И выбор средства разработки под нее)
Оценка ресурсоемкости поставленной задачи
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
Сейчас нет на сайте
Блин думал школьник тему создал. happy
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)
---------------------------------------------
Сам кстати не пробовал, но на хабре отзывы положительные.


всё о разработке и продаже игр.
Форум игроделов » Программирование » Общие обсуждения программистов » Оценка ресурсоемкости поставленной задачи (И выбор средства разработки под нее)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг