Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2011, 14:52   #1
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию Создание сетевой игры.

Добрый день. Моя тема названием похожа на "Сетевая игра", но вопрос стоит другой. Я изучал WinSock (освещение и всякое такое), поэтому затянул со своей игрушкой(обещал вскоре показать ее обновление). Вот собрался делать сетевой движок. И вот в чем проблема. Лучше всего, думаю я, это UDP в WinSock. Хотелось бы узнать ваше мнение на этот счет. Как мне это организовать? Сделать сервер у каждого клиента, или просто отвечать ему с одного сервера? Ну в общем выложите свое мнение, полученное на своем же опыте или знаниях.
Хотелось бы задать еще один вопрос чтобы не плодить много тем. Каким образов в играх типа CS или Unreal Tournament проводится опрос серверов? Как узнают их ip? Может, регистрируются на каком-то сервере с выделенным ip?
Заранее благодарю.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 18.11.2011, 15:36   #2
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
просто отвечать ему с одного сервера?
Я бы так сделал

Цитата:
Может, регистрируются на каком-то сервере с выделенным ip?
Именно, сервера (CS) регистрируются на определенном сервере.
Ну а вы (как геймер), получаете инфу о серверах с этого сервера.
zotox вне форума Ответить с цитированием
Старый 18.11.2011, 18:26   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Именно, сервера (CS) регистрируются на определенном сервере.
Ну а вы (как геймер), получаете инфу о серверах с этого сервера.
Ладно. А как работает вкладка LAN в css? Она ведь как-то и без подключения к интернету работает(а в Stronhold он, без выделенного сервера еще и в интернете так ловит). Какого-то отдельного сервера у них нет там нет.
Цитата:
Я бы так сделал
По технологии UDP?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 19.11.2011, 11:34   #4
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

основная проблема это NAT, именно из-за этого к клиенту невозможно присоединиться напрямую. в случае если сам клиент подключается, то тот кто принимает соединение узнает его порт (он как правило случайный, но всё зависит от самого сервера NAT), и уже после этого к клиенту можно подключиться, так как NAT-сервер "создал канал" к клиентскому компьютеру.

отсюда вывод выделять порты на NAT-сервере с помощью технологий UPnP или NAT-PMP, как это делают торрент-клиенты
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 22.11.2011, 20:40   #5
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Спасибо. Начну изучать сетевые технологии

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 22.11.2011, 20:51   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну..Я вот сеть в своей игре делаю через обычные TServerSocket и TClientSocket. Хватает.
_-Re@l-_ вне форума Ответить с цитированием
Старый 29.11.2011, 07:46   #7
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Ну..Я вот сеть в своей игре делаю через обычные TServerSocket и TClientSocket. Хватает.
Я тоже хотел, но потом взял WinSock, ибо проще и асинхронный режим есть. Я как понимаю TServerSocket и TClientSocket У вас для шашек? А у меня игра требует постоянного соединения и обработки строк.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.11.2011, 11:47   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
А у меня игра требует постоянного соединения и обработки строк.
Хех, а чем для этого ServerSocket и ClientSocket плохи?Соединение постоянное, и легко работать со строками(там есть даже спецфункция - sendText(s : string) и ReceiveText : string).
_-Re@l-_ вне форума Ответить с цитированием
Старый 29.11.2011, 13:43   #9
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Хех, а чем для этого ServerSocket и ClientSocket плохи?Соединение постоянное, и легко работать со строками(там есть даже спецфункция - sendText(s : string) и ReceiveText : string).
В WinSock ты контролируешь все действия. Для меня чем ниже уровень тем лучше.
Цитата:
(там есть даже спецфункция - sendText(s : string) и ReceiveText : string).
Знаю. Я их вдоль, поперек и от угла наискосок разобрал, но захотел использовать WinSock. Поверьте. Если придется изучать, Вы поймете.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 29.11.2011, 19:29   #10
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
а чем для этого ServerSocket и ClientSocket плохи
а тем что они работают по TCP, к примеру если программист делает игру типа CS (где отправка пакетов происходит очень часто) то будет правильно сделать игру на UDP протоколе. (т.к. он быстрее). Ну а если игру типа шашек (где отправка пакетов производится не так часто), то лучше будет TCP. (так как TCP гарантирует отправку "полного" пакета)
zotox вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание игры FilteR Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 12.12.2010 19:08
проблемы сетевой игры sashonk Gamedev - cоздание игр: Unity, OpenGL, DirectX 13 31.08.2010 14:42
Создание сетевой игры с помощью ТClienSocket, TServerSocket Vitamine Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 23.02.2010 18:18
создание сетевой БД Prowler БД в Delphi 2 09.01.2007 14:23