forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   IRC Network (http://forum.boolean.name/showthread.php?t=8414)

Damp 06.01.2010 18:58

Ответ: IRC Network
 
Вложений: 1
Чтобы не разводить лишних топов напишу тут.
Пример танчиков, которые будут работать при 3-х секундном интервале отправки.
К irc не привязано, там только двиг, без сети, точнее под любую сеть. Главное понять основную мысль, что как бы единый мир не всегда нужен, что можно 4-мя байтами 1 раз в 3 секунды уже получить кое что )).
Конечно асинхрон виден не вооружнным глазом, но лагов нет, игрок не будет тыкать пальцем и возмущаться, визуально все гладко, а что асинхрон допускается, то для фугаса не суть стоит ли танк на пол корпуса впреди ли сзади )

Damp 07.01.2010 11:59

Ответ: IRC Network
 
Вложений: 1
И как логическое завершение - эти же такнчики с сетью, на базе irc, возвращаясь к теме топа )
Всего лишь 5 строк кода для инициализации, столько же для приема сообщений и танчики готовы.
Можно тестить на одном компе в 2-а окна.
Ну, вроде больше добавить нечего, что имел по теме выложил, если кто решит делать что-то в таком духе, чем смогу помогу при желании ;)

firstvirus 20.01.2010 13:12

Ответ: IRC Network
 
В ирц-сетях бродит интересная игра Арена. Как то делал 3Д клиент для нее. Получилось не плохо и стало интереснее играть народу. Но тогда пришлось писать библиотеку самому и только под себя :)
Игр в Ирц-сетях довольно много. Ко многим из них подойдет красивый 3Д клиент.

Damp 21.01.2010 09:31

Ответ: IRC Network
 
Ага, играл практически во все в рамках обычных клиентов.
В осовном это текстовые игры, хотя есть с примитивной графикой, шашки например.
Бывают и рпг ) чисто текстовые. В мафию играют.
Самая популярная пожалуй викторина, в больших сетях постоянно хоть человек 10 да сидит.

radiantstudio 03.02.2010 03:09

Re: IRC Network
 
Спасибо за танчики Damp! Натолкнул на некоторые мысли.

Damp 27.08.2010 09:31

Ответ: IRC Network
 
Продолжая тему.

Ветка конечно не по проектам, но тут будет уместнее рассказать как дополнив пример из поста 17 получился ремейк батл сити.


Тестить можно в 2 окна, если ни кого не будет.

Управление:
Движение танка - стрелки или кнопки 8,4,5,6 в цифровой части.
Поворот башни - скроллер, или удержание кнопки под ним (мышь3) + движение мыши, или кнопки 7,9 в цифровой части клавы.
Огонь - мышь1 или правый контрол (нажать и удерживать).
Посмотреть кто есть кто - левый контрол.
Выход - F12.

Чтобы стартовать всем желающим в чате нужно набрать /+
Остановить может любой из игроков набрав /-
Вновь зашедшие могут только наблюдать, пока игроки не остановят игру и не начнут набор команды заново. Всего могут 8 человек играть.

http://damp.ucoz.ru/BattleCity3DNet.rar - 900Кб

---
Написал еще одну либу по irc, но для себя, слишком не читабельная. Может будет время перепишу нормально. Либа практически копирует потоковые функции блица.
Т.е. используя irc можно отсылать любые данные: byte, short, int, float, string, записывая и читая их как обычный поток, типа

;отправка
IRCWriteFloat(EntityX(Tank))
IRCWriteFloat(EntityY(Tank))
IRCWriteFloat(EntityZ(Tank))
SendIRCMsg()

;прием
RecvIRCMsg()
If IRCReadAvail()
X#=IRCReadFloat()
Y#=IRCReadFloat()
Z#=IRCReadFloat()
PositionEntity Tank,X,Y,Z
EndIf

Damp 30.08.2010 21:31

Ответ: IRC Network
 
Вложений: 1
Итак еще один вариант. Либа - IRC4Games.
Более удобный в плане отправки координат и вообще ближе к игровым нуждам.

Некоторые функции:
IRCOpenStream(сервер, порт, свой ник) ;открыть поток
IRCJoinGame(имя игры, пароль[=""]) ;зайти в игру (оно же создать игру)
IRCRecvMsg() ;принять сообщение (вызывается каждый цикл)
IRCSendMsg() ;отправить

IRCReadAvail%() ;сколько байт еще не прочитано
IRCEof%() ;True если прочитано все сообщение
IRCMsgFrom$() ;возвращает ник отправителя сообщения

;чтение
IRCReadByte(byte%)
IRCReadShort(short%)
IRCReadInt(Int%)
IRCReadFloat(Float#)
IRCReadString(String$)

;запись
IRCWriteByte%(byte%)
IRCWriteShort%(short%)
IRCWriteInt%(Int%)
IRCWriteFloat#(Float#)
IRCWriteString$(String$)

Функции практически копируют родные блицевские для работы с потоком, больше похоже на UDP.
За 1 раз можно отправить примерно 30-40 float. Правда лучше не чаще 1 раз за 2 сек.

Кстати следщее, что может попробую это UDP сеть по типу хамачи. IRC использовать как TCP связку, в такой сети без TCP для старта не обойтись. Должно будет работать независимо от того за nat или нет пользователи. Точнее уже пробовали, работает.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot