![]() |
IRC Network
Либа для работы с IRC. В либе имеется чат, простой, но все необходимое есть.
Почему именно IRC: Потомучто это надежно (технологии около 20 лет), просто и функционально. Не нужно писать сервер самому, не нужно его запускать, содержать, платить за размещение. А если и есть необходимость держать у себя, запускается элементарно. Что можно передавать по IRC: Передаются строки, но строку можно интерпретировать как массив байтов, а из байтов составляется любой тип данных. В либе есть функция IrcSendGameMsg с помощью которой можно посылать любые строки с символами chr(0..255), обычным способом нельзя передавать символы chr(10), chr(13) и на некоторых серверах chr(0). Публичные серверы ограничивают сообщение примерно на 200...250 байтах (список ограничений присылается при коннекте). Интервал между сообщениями обычно не контролируется, но лучше не слать больше 1-2 сообщений в секунду. Если держать сервер у себя, то конечно можно снять любые ограничения. Конечно на базе IRC контры не сделаешь. Но для пошаговых, для игр на кликах мыши, логических и могих других вполне подходит. Примеры того, что делалось: шашки http://blitz.pp.ru/forum/showthread....&threadid=3780 арена http://blitz.pp.ru/forum/showthread....&threadid=3621 карты http://irgpro.narod.ru/0.html +см. тему "Подарю основу для создания ммо" Также в архиве с либой примеры: Мультиплеер с управлением стрелками, как в классических танчиках. И пример ICQ+IRC бота (семпл по работе с ICQ гейтом). http://irgpro.narod.ru/IRC_Network/IRC_Network.rar - либа и примеры 50Kb Тестировать игры можно без интернета. Для этого нужно скачать какой-либо IRC сервер, например bircd. Запустить и коннектиться на "127.0.0.1". http://irgpro.narod.ru/IRC_Network/bircd_irc_server.rar - если нужен сервер 150Kb И еще немного теории, примерная схема создания мультиплеера на "пересылающем сервере", т.е. на сервере не моделирующем игровой мир - http://irgpro.narod.ru/IRC_Network/shem.gif Пишите интересные игры, онлайн и не онлайн тоже ;) |
Ответ: IRC Network
|
Ответ: IRC Network
Да уж, протокол аськи это что-то :) Тоже не осилил.
Хотя так подумать теоретически на блице можно написать. |
Ответ: IRC Network
Цитата:
Кому интересно, вот: http://dev.aol.com/aim/oscar Есть кстати библиотеки на ПХП, можно в них покопаться. |
Ответ: IRC Network
На делфи есть пример, правда уже не работающий в связи со сменой протокола.
А что хочешь делать из icq :) ? Для игр просто плохо подходит, хотя шашки делались. Соединение только 1х1 к сожалению, групп нет, + жесткие ограничения по частоте отправки. |
Ответ: IRC Network
Ну, нашел я ПХП скрипт, только там черт ногу сломит, пытаюсь всё же как-то да переделать под блиц :)
Через бота можно игру сделать... |
Ответ: IRC Network
Для игр irc лучше аськи. Но там примерно 300байт в секунду придел сообщений(в среднем по сервам). Кстати где то тут видел исходник мморпг на irc. ПХП класы не юзай, имхо, они старые, еще до смены и сырые.
|
Ответ: IRC Network
Уже чего только не протаскивалось через irc, и с управлением на кликах и на кнопках, и с мышью.
В тестах выясяется, что во всех открытых сетях, если слишком часто слать, сервер начинает накапливать сообщения и выдавать их пачками, получается что пинг дойти до нескольких секунд даже при хорошем соединении. Поэтому лучше не слать больше 1 сообщения в секунду на бесплатный сервер, или поднимать свой (что тестировалось и доказало полную работоспособность) Это конечно маловато, но например танчики с управлением на кнопках можно сделать при условии, что хотябы 1 сообщение в 3 секунды допустимо. Если кому-то интересно могу поделиться, или может соберусь написать небольшой рассказик. Последнее что делалось - шутер: http://irgpro.narod.ru/MW/MWS1.jpg - скрин http://irgpro.narod.ru/MW/MW.rar - 1.6 метра (если набрать в начале в чате /go будет тест самого себя) Управление wasd, мышь2, мышь1. К сожалению проект заброшен, нет моделеров. Есть идея сделать боулинг, игру похожую на баскетбол, можно еще городки. Т.е. такое, что не потребует моделеров и мало кем делалось (боулинга по сети вообще не нашел). |
Ответ: IRC Network
Ну, ирк - это мазохизм всё-таки :) Но забавно
|
Ответ: IRC Network
С другой стороны это один из немногих бесплатных вариантов. Даже так подумать... можно сказать единственный )
Написать свой специальный, игровой сервер конечно лучший вариант, правда сложно обеспечить его длительное существование, как практика показывает. Вариант с хостящими игроками тоже не всем подойдет. Плюс если сделал двиг работающий по irc, перевести на что-то свое будет очень просто, а до этого уже будет что показать, затестить, проверить играбельность и т.д. |
Ответ: IRC Network
Ну, придется переделывать кучу всего. Ведь ирк-сервак лишь рассылает данные, но никак не контролирует игру :)
|
Ответ: IRC Network
)) а что нужно контролировать?
Физика в игре реализуется, хранение персональных данных тоже. Если есть необходимость, особый контроль может осуществлять допустим бот или живой админ, которых можно запустить с любого клиента. В последствии алгоритм бота просто переложить на свой самописный сервер, если игра захватит массы ) Допустим такая игра как танчики может быть полностью реализована, с прокачкой, сбором предметов, бонусов и т.п. Причем это будет децентрализовано, сдох один сервер, игроки вбили другой и игра продолжается. |
Ответ: IRC Network
То есть хранение всей инфы - локально.
Получается я смогу легко всё хакнуть, и быть богом. Во вторых, насчёт физики, а как ты синхронизируешь физику в больших уровнях? Что каждый, клиент будет считать всю физику, и посылать кучу инфы другим. Короче говоря, без сервера, который тоже "думает", слишком большие ограничения и нагрузка на клиенты. Ещё наводка: а что если юзать PHP запросы, и майскюл сервак? :) Прикольный тоже изврат получиться! |
Ответ: IRC Network
Цитата:
|
Ответ: IRC Network
MoKa, не все так просто ) Опасность вскрытия локальной инфы примерно такая же как и с сервера. Ведь так подумать... все, даже самые серьезные продукты хранят лицензию локально, таких чтобы шли на сервер перед каджым стартом практически нет.
Физику имел ввиду коллизии, игроки не будут ходить сквозь стены, без всяких лишних затрат независимо от числа. Недавно в мморпг "Аллоды" играл, и так прикинул... можно сделать подобное и без игрового сервера, а физики как таковой там итак нет ) нет даже коллизий между игроками (хотя это во многих ммо принято). Так-то, да, если не пошаговая и основана именно на физике, например гонки или там... футбол, то нужен единый мир, иначе просто никак. |
Ответ: IRC Network
Вложений: 1
Чтобы не разводить лишних топов напишу тут.
Пример танчиков, которые будут работать при 3-х секундном интервале отправки. К irc не привязано, там только двиг, без сети, точнее под любую сеть. Главное понять основную мысль, что как бы единый мир не всегда нужен, что можно 4-мя байтами 1 раз в 3 секунды уже получить кое что )). Конечно асинхрон виден не вооружнным глазом, но лагов нет, игрок не будет тыкать пальцем и возмущаться, визуально все гладко, а что асинхрон допускается, то для фугаса не суть стоит ли танк на пол корпуса впреди ли сзади ) |
Ответ: IRC Network
Вложений: 1
И как логическое завершение - эти же такнчики с сетью, на базе irc, возвращаясь к теме топа )
Всего лишь 5 строк кода для инициализации, столько же для приема сообщений и танчики готовы. Можно тестить на одном компе в 2-а окна. Ну, вроде больше добавить нечего, что имел по теме выложил, если кто решит делать что-то в таком духе, чем смогу помогу при желании ;) |
Ответ: IRC Network
В ирц-сетях бродит интересная игра Арена. Как то делал 3Д клиент для нее. Получилось не плохо и стало интереснее играть народу. Но тогда пришлось писать библиотеку самому и только под себя :)
Игр в Ирц-сетях довольно много. Ко многим из них подойдет красивый 3Д клиент. |
Ответ: IRC Network
Ага, играл практически во все в рамках обычных клиентов.
В осовном это текстовые игры, хотя есть с примитивной графикой, шашки например. Бывают и рпг ) чисто текстовые. В мафию играют. Самая популярная пожалуй викторина, в больших сетях постоянно хоть человек 10 да сидит. |
Re: IRC Network
Спасибо за танчики Damp! Натолкнул на некоторые мысли.
|
Ответ: 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 |
Ответ: 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, время: 19:54. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot