Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Закрытая тема
 
Опции темы
Старый 09.06.2007, 00:56   #1
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Печаль Multiplayer....

Блин! Как же не хотел создавать тему! Но вынужден...

В общем дело обстоит так... Делаю я маленькую игрушку. Рабочее название Fights Of Dragons (если что - в аттаче пару скринов). Как понятно из названия - это бои драконов. Игра по локальной сети и интернету. Сделал загрузку уровня (уровень пока взят из семплов), управление, кое-какую модель дракона (не доделанную, без текстур и анимации), сделал стрельбу файерболами, дыхание огнём, ускорение с моушн блуром, прикол аля хвост за самолётом (просто так... в финальной версии планировалось убрать), конфиг, в котором можно произвести некоторые настройки и другое... После этого занятся мультиплеером. Сделал по схеме коротая в аттаче. Реализовал список серверов. Делал через DirectPlay. Тестировал с айпи 127.0.0.1 - всё отлично. Дал людям потестировать - сказали что игра пошла - 2 человека играли вместе по нету (как оказалось пожже у них присутствовала локальная сеть ) Потом тестировал сам. Тестировал в клубе. По локальной сети всё отлично работает. Никаких глюков. Но по интернету игра вообще не идёт Просто не конектится. Что бы не было разговоров о правильности/не правильности кода, вот написал мелкий пример - по такому принцыпу делал в игре (а какой там может быть другой принцып - в DirectPlay )

Для сервера:
GameName$ = Input$("Имя сервера: ")

Type PlayerType
Field Name$, ID
End Type 

HostNetGame(GameName$)
CreatePlayer()

Print "Сервер запущен"
While Not KeyDown(1)
While RecvNetMsg()
MsgType = NetMsgType()
If MsgType = 100 Then
CreateEnemy()
End If
Wend 
Wend 

Function CreateEnemy.PlayerType()

Player.PlayerType = New PlayerType
Player\ID = NetMsgFrom()
Player\Name = NetPlayerName(Player\ID)

End Function

Function CreatePlayer.PlayerType()

Player.PlayerType = New PlayerType
Player\Name = GameName$ + " сервак"
Player\ID = CreateNetPlayer(Name$)

End Function
Для клиента:

GameName$ = Trim(Input$("Название игры: "))
ServerIP$ = Trim(Input$("IP адрес сервера: "))

Type PlayerType
Field Name$, ID
End Type 

Global MyID, MyName$
Global Player.PlayerType

jng=JoinNetGame(GameName$,ServerIP$)
If jng= False Then RuntimeError "Connecting Failed"

Name$ = Input$("Ваше имя: ")

CreatePlayer()
MyID = Player\ID
MyName = Name$

Print "Подключение к серверу прошло успешно"
While Not KeyDown(1)
While RecvNetMsg()
MsgType = NetMsgType()
If MsgType = 100 Then
Createenemy()
End If 
Wend
Wend 

Function CreatePlayer.PlayerType()

Player.PlayerType = New PlayerType
Player\Name = Name$
Player\ID = CreateNetPlayer(Name$)

End Function

Function CreateEnemy.PlayerType()

Player.PlayerType = New PlayerType
Player\ID = NetMsgFrom()
Player\Name = NetPlayerName(Player\ID)

End Function
После нескольких дней извините *ботни с DirectPlay, по совету Tormoz' а, который сказал
директплэй ф топку
попытался заюзать K-NetLib... Результата никакого... Опять по*бался с либой и попробовал по совету Моки (MoKa) TCPStream... Разобрался вродь в нём. Попробовал сделать соединение - опять никакого результата.. При 127.0.0.1 - конектитсо, а если пытаюсь с кем-то по интернету - никак

Короче уже неделю парюсь с этой проблемой

Мне не нужно ничего, кроме того что бы хоть как-то установить соединение между двумя разными компами по интернету. Дальше я уже сам... Конечно очень стыдно об этом просить и на форуме я хотел о своем проекте рассказать только после "выхода" хоть какой-то работоспособной демо-версии ''(( ... Но люди добрые помогите мне несчастному! Пытался даже забить на проект, что бы не просить сдесь помощи, но не могу! Я очень-очень-очень хочу довести его до конца! Даже не знаю почему, но это так...
(Offline)
 
Старый 09.06.2007, 01:40   #2
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Multiplayer....

Через ТСП делал так:

MyMachine$ = Trim(Input$("Сервер/клиент 0/1 "))

If MyMachine = 0 Then 

Game = CreateTCPServer(8080)
If Game <> 0 Then 
Print "Сервер запущен"
Else 
Print "Не удалось запустить сервер"
End If 

ElseIf MyMachine$ = 1 

IP$ = Trim(Input$("IP сервера: "))

Game = OpenTCPStream(IP$,8080)

If Game <> 0 Then 
Print "Подключение прошло успешно"
Else
Print "Не удалось подключится к серверу"
End If

End If

WiteKey
(Offline)
 
Старый 09.06.2007, 12:38   #3
Progger_Leo
Разработчик
 
Регистрация: 09.01.2007
Сообщений: 217
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Multiplayer....

Raiter єто великое ужасное ПРОКСИ! Сам незнаю что сделать с єтой проблемой. Много людей не могут подключатся к моей гаме. НО! Вроде бы, если СЕРВЕР не использует прокси, тогда КЛИЕНТ должен спокойно подключатся...Если я не ошибаюсь

ЛИБО

Фигня со списком серверов. А ты в клубе в Интернет выходил? Именно не по локалке, а вообще? И с кем-то, кто находился НЕ в клубе? Если, нет, то это однозначно прокси.
(Offline)
 
Старый 09.06.2007, 13:57   #4
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Multiplayer....

Со списком серверов однозначно всё впорядке. Ибо в клубе играли. НО только по лан. Да и правильность работы списка я неоднократно проверял...
(Offline)
 
Старый 09.06.2007, 14:07   #5
Progger_Leo
Разработчик
 
Регистрация: 09.01.2007
Сообщений: 217
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Multiplayer....

ПРОКСИ!
По ЛАНу не важно, но в Сети...
(Offline)
 
Старый 09.06.2007, 15:28   #6
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Multiplayer....

хехе... ну вот... получилось. с использованием K-NetLib

я сколько искал проблему... знаете де она была???

KNL_Connect(MyName$,"",ServerIP$,1001,1) - тут, но не поверите в чем! в MyName$! когда я чисто ради эксперимента написал KNL_Connect("Client","",ServerIP$,1001,1) всё пошло...

ппц просто... почему-то имя не считывалось и постоянно было ""

теперь всё нормально....
(Offline)
 
Старый 09.06.2007, 16:06   #7
Progger_Leo
Разработчик
 
Регистрация: 09.01.2007
Сообщений: 217
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Multiplayer....

Меня терзают смутные сомненья...

Лан, допустим ДиректПлэй не пахал. Но ТСР...Не верю!
(Offline)
 
Старый 09.06.2007, 16:11   #8
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Multiplayer....

ДП... не допустим, а точно. HolyDel ошибок не нашёл.. мы с ним пробовали создать соединение... ничего не вышло...
(Offline)
 
Старый 09.06.2007, 17:01   #9
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Multiplayer....

все... траблу решил! всем спасибо за помощь и её отстутствие!
тему закрываю!
(Offline)
 
Закрытая тема


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
oblivion multiplayer kailzloi Проекты C++ 0 02.03.2009 22:42


Часовой пояс GMT +4, время: 17:45.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com