DirectPlay vs. WinSock

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

DirectPlay vs. WinSock

Сообщение nekeda » 07.01.2006 (Сб) 22:49

что предпочесть для написания сетевой игры? что надёжднее? что быстрее? что будет проще реализовать?

Заранее, спасибо.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.01.2006 (Вс) 1:15

directPlay, ибо он для этого и создан
ХЎ

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 08.01.2006 (Вс) 10:29

ok, ещё вопрос: в одном приложении можно совмещать разные версии ДХ? т.е. графика у меня основана на ДХ9.. я могу писать мультиплеер на восьмом?

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 08.01.2006 (Вс) 10:43

Я пробовал совмещать графику от 8-го, а звук от 7-го ничего не получилось. Vb ругался на повторное объявление типов.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 08.01.2006 (Вс) 16:21

плохо дело. :?

и то что графика с помощью движка ничего не меняет?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.01.2006 (Вс) 16:29

тут дело немного иное. DX8 - vb6, dx9 - vb.net, то есть в этом плане совместное использование в принципе невозможно.
ХЎ

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 08.01.2006 (Вс) 19:02

а у меня работает вроде..

ДХ 9 использует двиг на котором я пишу)

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 08.01.2006 (Вс) 19:10

Если скомпилить двиг в библиотеку - конфликта имен не будет.

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 08.01.2006 (Вс) 20:42

А помоему в DX9 итак используется DirectPlay 8.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 08.01.2006 (Вс) 20:59

такая проблема, не с моей программой:

захожу в dxdiag на вкладку Network, вроде всё ок.. нажимаю тест - всё ок, но тест при завершении виснет. И так же виснет любое ДиректПлэй приложение при завершении! Все примеры из SDK, VBchat с этого сайта... ну и у меня тож всё виснет. ДиректИкс 9.0с...переустонавливал, не помагло... есть идеи?

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 09.01.2006 (Пн) 9:02

а кто-нибудь сдесь с DPlay вообще работал?

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 09.01.2006 (Пн) 9:14

Я, например.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 09.01.2006 (Пн) 11:17

mdx
можно парочку вопросов?)

у тебя ася есть?

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 10.01.2006 (Вт) 5:49

Ситуация такая. Хост перестаёт посылать сообщения (или клиенты их принимать) после запуска самой игры. При это клиенты продолжают посылать хосту сообщения нормально. Т.е. я взял пример из СДК с простым чатом.. всё работает. пускаю саму игру, форму с чатом не выгружаю - и всё, труба. Похоже на несовместимость? А может дело в том, что тестирую на одном компе?

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 10.01.2006 (Вт) 8:30

nekeda писал(а):можно парочку вопросов?


Можно :lol:

nekeda писал(а):у тебя ася есть?


Нет

2. Может, ты один и тот же порт используешь и чатом, и игрой?

3. А с зависанием ты разобрался?

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 10.01.2006 (Вт) 9:04

mdx

Порт сетевой? Да, один. Каждое сообщение начинается с идентификатора, для чата оно, или игровое (если да - то какое)

Приложение одно и для хоста и для клиента. Одни и те же универсальные процедуры.
Я запускаю 2 или 3 приложения, конекчусь, всё нормально, работает чат.

Запускаю саму игру. Та копия что хост - перестают посылать сообщения, и в чате и в игре. А все клиенты посылают нормально и чатовские сообщения, и объект в игре двигается. Причём до хоста всё нормально доходит. А от него - нет =\ Получается что одна и та же процедура в хосте с запуском игры перестаёт работать, и та же процедура работает нормально если это клиент.

А с зависанием..сейчас виснет где-то через раз... да и хрен бы с ним:) Конечно, отладка превращется в ад, но мне главное чтоб работало правильно (на других компах не виснет же) Но с этим - проблеммы... очень не хочется юзать WinSock.. там гораздо сложнее организовать процесс для 3ёх и более игроков.

Такие дела.. есть идеи? Если нужно, покажу кусочки кода, ты скажи какие..

leaveIIIusion
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 30.12.2005 (Пт) 19:01
Откуда: Днепропетровск

Сообщение leaveIIIusion » 12.01.2006 (Чт) 20:08

nekeda писал(а):ok, ещё вопрос: в одном приложении можно совмещать разные версии ДХ? т.е. графика у меня основана на ДХ9.. я могу писать мультиплеер на восьмом?

Вот вырезка из книги на 9-м директе на С++. Возможно и на Басике .НЕТе можно так сделать не пробовал из-за ненадобности.
У вас нет доступа для просмотра вложений в этом сообщении.
Basic .NET ruless world!

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 13.01.2006 (Пт) 6:07

Да, долго я на форуме не был...

2 nekeda
А для чата и игры процедуры разные? (Ничего не понимаю :shock: )

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 13.01.2006 (Пт) 7:10

leaveIIIusion
спасибо, ща глянем..)

mdx
нет, зачем?:)
Процедура отправки сообщения:

Public Sub SendText(sMessage As String, TypeMsg As Long)
Dim lMsg As Long, lOffset As Long
Dim oBuf() As Byte

lMsg = TypeMsg
lOffset = NewBuffer(oBuf)

AddDataToBuffer oBuf, lMsg, LenB(lMsg), lOffset
AddStringToBuffer oBuf, sMessage, lOffset

dpp.SendTo DPNID_ALL_PLAYERS_GROUP, oBuf, 0, DPNSEND_NOLOOPBACK
End Sub


Т.е. отправка текста для чата выглядит так:
SendText Text2.Text, MSGChat

Ну и когда принимаем сообщ. смотрим, что за тип, и действуем в соответствии с этим.. например если MSGChat - добавляем в поля чата то что пришло.

А вообще я уже успел организовать нормальный мультиплеер для любого кол-ва игроков, через WinSock.. вроде даже работает :)

Хотя и с ДПлеем всё таки хотелось бы подружиться..

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 18.01.2006 (Ср) 12:53

Посмотри сайт http://www.thezbuffer.com/, там ну очень много ссылок на туториалы и примеры по Managed DX. И про DPlay там что-то было.
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 19.01.2006 (Чт) 0:30

mdx
оки, пасиб


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList