какими средствами пишутся серверы для он-лайн игр ?
с написанием клиента проблем нет , а вот сервер ???
Есть место - аренда сервера в одном из московских провайдеров с неограниченым трафиком .
игра логическая и много трафика не требует.
реально ли написать сервер на делфи 7
может у кого ест сылка на материал..?
поделитесь пожалуйста ..
Буду благодарен за любую инфу ...
Заранее огромное спасибо ..:))
Perl + MySql бы занимался генерацией статики, C по возможности без MySql работал бы с динамикой.
В качестве веб сервера использовал бы nginx.
Но все это при условии что придется обслуживать более 500 обращений в секунду.
В противном случае можно ковыряться и в Delphi с виндовсом.
Нет можно было бы конечно исспользовать какой то прикладной сетевой протокол (тоесть не создавать сокет явно вручную), но это изврат.
Нет можно было бы конечно исспользовать какой то прикладной сетевой протокол (тоесть не создавать сокет явно вручную), но это изврат.
Я имел ввиду,что без всяких надстроек над ними и т.п.
Нужно предусмотреть сразу 3 режима
0. супер - экономичный. Обмен идет только по UDP
1. экономичный - на игровом сервере слушается 443 порт и обмен идет по TCP без использования HTTP.
2. совместимости - на игровом сервере слушается 80 порт и используется HTTP.
0. Могут быть проблемы с собместимостью для пользователей, сидящих за всякими межсетевыми экранами и NAT-ами.
1. Выбор 443 порта обусловлен тем, чтобы можно было играть через прокси, поддерживающего метод CONNECT на 443 порт.
2. Режим совместимости нужен тогда, когда кроме HTTP (не важно, GET или POST), например через HTTP-PROXY, у игрока нет другого доступа в интернет. Естественно, трафика жраться больше будет и скорострельность будет меньшая. К тому же для пересылки новой порции данных от клиента нужно заново коннектиться.
Клиентское ПО должно само (либо с помощью игрока) выбирать оптимальный режим.
Любой протокол(HTTP,FTP,SMTP,POP...)-есть надстройка над TCP/IP
А если считаешь, что это я сам придумал, посмотри например используемые термины здесь:
http://www.iworld.ru/magazine/index.phtml?do=show_article&p=99781565
Любой протокол, использующий в качестве основы другой, является надстройкой. TCP/IP также является протоколом, между прочим.
1. Том, на чём умеют
2. Том, что совместимо с платформой.
Логично?
1. Том, на чём умеют
2. Том, что совместимо с платформой.
Логично?
Логично в целом. Но когда умеют на нескольких языках одинаково, и подходит несколько платформ, тогда начинаются муки:)
Тогда исходят от задачи, и всего-то мук. Или делают, как проще.
ИМХО, трудно дать совет, если нет никакой информации о том, какая платформа, какой язык знаешь и какие требования к приложениям. Например, мне только что пришла очень тупая идея в качастве сервера использовать Апач, а данные обрабатывать РНР-скриптами. ИМХО, иногда возможно и такое.
и клиентами в виде SQL - запросов-ответов ???
т.е. сервер представляет собой БД с таблицами состояний игроков , их действиями и т.д.
..... ??????
Любой протокол, использующий в качестве основы другой, является надстройкой.
Здесь не основа, а инкапсуляция
TCP/IP также является протоколом, между прочим.
TCP/IP - не является протоколом. Это название для стека протоколов в котором этих протоколов еще куча.
Вот TCP и IP - это да 2 протокола, в честь которых и произошло название.
Вобщем хватит не по теме спорить - надо матчасть учить.
По поводу реализации, собственно согласен с Sanila_san, о чем впринципе выше и писал. Надо выбирать исходя из ограничений задачи, а потом из простоты/цены разработки/поддержки и т.п.
По поводу обмена через SQL - помоему это как то странно. А как же команды не относящиеся к БД слать? Логичней общаться с сервером по своему удобному протоколу, а уж сервер - пусть общается с БД. Так собственно и надежней и безопасней для базы будет.
и клиентами в виде SQL - запросов-ответов ???
Реально. Только лучше зделать интерфейс в виде набора хранимых процедур. Ну и само собой ограничить доступ клиенту ко всему, кроме этих хранимых процедур. Правда на медленных каналах будет очень плохое быстродействие. Лучше уж вэб - сервис тогда (как прослойку между базой и клиентом).
Это же подарок для читеров )