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 31.05.2009 16:22

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

Пишите интересные игры, онлайн и не онлайн тоже ;)

Tadeus 01.06.2009 17:03

Ответ: IRC Network
 
А не найдется ли у кого-нибудь ICQ-библиотеки для блица? Мне самому так влом делать по сухой документации AOL'a :(

Damp 02.06.2009 09:26

Ответ: IRC Network
 
Да уж, протокол аськи это что-то :) Тоже не осилил.
Хотя так подумать теоретически на блице можно написать.

Tadeus 03.06.2009 14:36

Ответ: IRC Network
 
Цитата:

Сообщение от Damp (Сообщение 106504)
Да уж, протокол аськи это что-то :) Тоже не осилил.
Хотя так подумать теоретически на блице можно написать.

Да можно, но блин, они так специально написали чтобы меньше было сторонних клиентов. Можно даже практически, проблема в том, что протокол этот надо самостоятельно разбирать.

Кому интересно, вот: http://dev.aol.com/aim/oscar

Есть кстати библиотеки на ПХП, можно в них покопаться.

Damp 03.06.2009 17:12

Ответ: IRC Network
 
На делфи есть пример, правда уже не работающий в связи со сменой протокола.
А что хочешь делать из icq :) ?
Для игр просто плохо подходит, хотя шашки делались.
Соединение только 1х1 к сожалению, групп нет, + жесткие ограничения по частоте отправки.

Tadeus 03.06.2009 18:25

Ответ: IRC Network
 
Ну, нашел я ПХП скрипт, только там черт ногу сломит, пытаюсь всё же как-то да переделать под блиц :)
Через бота можно игру сделать...

Abiron 02.07.2009 21:15

Ответ: IRC Network
 
Для игр irc лучше аськи. Но там примерно 300байт в секунду придел сообщений(в среднем по сервам). Кстати где то тут видел исходник мморпг на irc. ПХП класы не юзай, имхо, они старые, еще до смены и сырые.

Damp 02.01.2010 15:29

Ответ: 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.
К сожалению проект заброшен, нет моделеров.

Есть идея сделать боулинг, игру похожую на баскетбол, можно еще городки. Т.е. такое, что не потребует моделеров и мало кем делалось (боулинга по сети вообще не нашел).

Tadeus 02.01.2010 16:54

Ответ: IRC Network
 
Ну, ирк - это мазохизм всё-таки :) Но забавно

Damp 02.01.2010 17:31

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

Tadeus 02.01.2010 17:36

Ответ: IRC Network
 
Ну, придется переделывать кучу всего. Ведь ирк-сервак лишь рассылает данные, но никак не контролирует игру :)

Damp 02.01.2010 17:53

Ответ: IRC Network
 
)) а что нужно контролировать?
Физика в игре реализуется, хранение персональных данных тоже.
Если есть необходимость, особый контроль может осуществлять допустим бот или живой админ, которых можно запустить с любого клиента. В последствии алгоритм бота просто переложить на свой самописный сервер, если игра захватит массы )
Допустим такая игра как танчики может быть полностью реализована, с прокачкой, сбором предметов, бонусов и т.п. Причем это будет децентрализовано, сдох один сервер, игроки вбили другой и игра продолжается.

moka 02.01.2010 22:31

Ответ: IRC Network
 
То есть хранение всей инфы - локально.
Получается я смогу легко всё хакнуть, и быть богом.
Во вторых, насчёт физики, а как ты синхронизируешь физику в больших уровнях? Что каждый, клиент будет считать всю физику, и посылать кучу инфы другим.
Короче говоря, без сервера, который тоже "думает", слишком большие ограничения и нагрузка на клиенты.

Ещё наводка: а что если юзать PHP запросы, и майскюл сервак? :)
Прикольный тоже изврат получиться!

Tadeus 02.01.2010 22:35

Ответ: IRC Network
 
Цитата:

Сообщение от MoKa (Сообщение 132023)
Ещё наводка: а что если юзать PHP запросы, и майскюл сервак? :)
Прикольный тоже изврат получиться!

Дак можно, только походу даже тормозней будет - так данных посылается и принимается больше. С другой стороны, будет контроль. Вот только скорость непропорционально упадёт. Так что всё-таки лучше не полениться и написать свой сервер, тем более для динамичной игры. Другое дело, что комп нужен будет ) Собсно акцент и преимущество ирка в бесплатности и доступности сервера.

Damp 03.01.2010 12:10

Ответ: IRC Network
 
MoKa, не все так просто ) Опасность вскрытия локальной инфы примерно такая же как и с сервера. Ведь так подумать... все, даже самые серьезные продукты хранят лицензию локально, таких чтобы шли на сервер перед каджым стартом практически нет.
Физику имел ввиду коллизии, игроки не будут ходить сквозь стены, без всяких лишних затрат независимо от числа. Недавно в мморпг "Аллоды" играл, и так прикинул... можно сделать подобное и без игрового сервера, а физики как таковой там итак нет ) нет даже коллизий между игроками (хотя это во многих ммо принято).
Так-то, да, если не пошаговая и основана именно на физике, например гонки или там... футбол, то нужен единый мир, иначе просто никак.


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

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