Author |
Message |
[-RUS-]AlliGator
Joined: 15 Dec 2006
Posts: 226
|
Posted:
Mon Jan 09, 2017 22:51 |
|
И так
Сервер написан на perl (поддерживается версия 5.14+, возможно так же 5.10-5.12, надо прочекать). Для чата казаки используют IRC протокол, нужно так же установить любой IRC сервер, например ngircd. И создать там каналы #GSP!cossacks (основной чат) и #GSP!cossacks!A2V001 (чат по версии игры), иначе права опа получит первый вошедший.
Установка:
- Скачать 3 модуля исходников. https://github.com/rloger/GSC-Streamer (Модуль для работы с GSC протоколом), https://github.com/rloger/GSC-Server (Фреймворк сервера), https://github.com/rloger/SimpleCossacksServer (Сам сервер).
- Установить эти модули также, как и любой perl модуль. Проще всего это сделать с помощью cpanminus. Порядок установки важен
Code: |
sudo cpanm ./GSC-Streamer/ ./GSC-Server ./SimpleCossacksServer |
- Далее скопировать куда-нибудь конфиг из etc/simple-cossacks-server.conf и директорию с шаблонами share/, и отконфигурировать сервер
Пример конфига:
Code: |
host = 0.0.0.0 # Хост. Как обычно, 0.0.0.0 что бы слушать все доступные ip сервера
port = 34001 # Порт
templates = ./share # Путь к шаблонам
access_log = ./access_log # Путь к access лог
error_log = ./error_log # Путь к error логу
table_timeout = 5000 # Интервал в миллисекундах, как часто обновлять список игр у пользователей
gettbl_log_interval = 2 # Логировать только каждый 2'ой запрос списка игр (GETTBL). При частом обновлении они сильно захламляют лог
chat_server = osiris.2gw.net # Хост IRC сервера для юзеров
show_started_rooms = 1 # Показывать комнаты, в которых уже началась игра
show_started_room_info = 1 # Показывать расширенную информацию о комнатах, в которых уже началась игра
|
- Запуск
Code: |
simple-cossacks-server -c /etc/simple-cossacks-server.conf |
Для теста можно запускать сервер непосредственно из папки SimpleCossacksServer
Code: |
perl -mlib=lib script/simple-cossacks-server -c etc/simple-cossacks-server.conf |
Функции интеграции с LCN и WCL по умолчанию отключены, их можно раскомментировать в исходном коде, однако потребуется получить доступ к соответствующим API этих лиг. Пример файла с LCN топом http://cossacks-server.net/exemples/ranking.json.
В коде также есть шаблоны для "Завоеваний Америки", однако они очень давно не обновлялись и навряд ли заведутся без допилки.
PS. Первые строки писались 4 года назад, да и сервер этот изначально задумывался как прототип. Многие вещи я бы сейчас делал по другому) |
Last edited by [-RUS-]AlliGator on Tue Jan 10, 2017 14:22; edited 1 time in total |
|
|
|
|
[Kiev]^XAOC^
LCN: 7 medals
Joined: 05 May 2013
Posts: 273
Location: Питер))
|
Posted:
Tue Jan 10, 2017 10:03 |
|
прикольно, но для чего это нужно? |
|
|
|
|
|
[-RUS-]AlliGator
Joined: 15 Dec 2006
Posts: 226
|
Posted:
Tue Jan 10, 2017 14:25 |
|
[Kiev]^XAOC^, Ты же вроде начинающий программист) Сервер теперь опен сорс - можно запилить какую нибудь фитчу к серверу, или поднять свой сервер. |
|
|
|
|
|
[-NF-]Prototype
LCN: Top 50 player Restliga: 1 medal
Joined: 14 May 2010
Posts: 483
Location: Italy
|
Posted:
Tue Jan 10, 2017 17:52 |
|
воу) эх..покапался бы,если других дел небыло.. |
_________________ посмотри, он без армии в казах был в конце игры (c)^ARAGORN^
Вз-н |
|
|
|
|
[Kiev]^XAOC^
LCN: 7 medals
Joined: 05 May 2013
Posts: 273
Location: Питер))
|
Posted:
Tue Jan 10, 2017 19:10 |
|
сделай антигопника и что бы тупых ников не было. (не буду их цитировать)
з.ы что бы его открыть надо установить "5.14+, возможно так же 5.10-5.12, надо прочекать" ???? |
|
|
|
|
|
Эреб
Joined: 25 Feb 2016
Posts: 71
|
Posted:
Wed Jan 11, 2017 0:57 |
|
Спасибо! Теперь будет хоть полная картина происходящего) Кстати, вот чего-чего, а perl в качестве игрового сервера я увидеть не ожидал |
|
|
|
|
|
[Kiev]^XAOC^
LCN: 7 medals
Joined: 05 May 2013
Posts: 273
Location: Питер))
|
Posted:
Wed Jan 11, 2017 18:17 |
|
все, проблем нет, через VS Code многое открывается. смотрю там комментарии даже есть а где дизайн сервера? |
|
|
|
|
|
[EG]JoFiBaTaL
Королева флуда Рядовой Холмс LCN: 16 medals
Joined: 15 Apr 2010
Posts: 2789
Location: БОМЖ
|
Posted:
Wed Jan 11, 2017 18:36 |
|
тут можно звания забабахать?
Никто соурс казаков не хочет выложить?) |
|
|
|
|
|
[-RUS-]AlliGator
Joined: 15 Dec 2006
Posts: 226
|
Posted:
Wed Jan 11, 2017 20:40 |
|
[Kiev]^XAOC^ wrote: |
сделай антигопника и что бы тупых ников не было. (не буду их цитировать)
з.ы что бы его открыть надо установить "5.14+, возможно так же 5.10-5.12, надо прочекать" ???? |
[Kiev]^XAOC^ wrote: |
все, проблем нет, через VS Code многое открывается. смотрю там комментарии даже есть |
Что бы работал, да надо поставить Perl. А исходники, конечно, можно в любом редакторе смотреть))
[Kiev]^XAOC^ wrote: |
а где дизайн сервера? |
Шаблоны в share/cs/ (share/ac/ для ЗА). Через VS как формочки открыть не получится . Там у Казаков собственный язык разметки, CML (Очевидно по аналогии с HTML - Cossacks Markup Language ). По нему, и вообще по протоколу у меня есть недоделанная дока, скоро выложу.
Эреб wrote: |
Спасибо! Теперь будет хоть полная картина происходящего) Кстати, вот чего-чего, а perl в качестве игрового сервера я увидеть не ожидал |
Ну в mail.ru например и на порядки более высоконагруженные проекты на нем работают, и ничего А мне как перловику, разумется, было проще всего написать на нем. Хотя там как можно понять по исходному коду предусматривался и HTTP мост, для PHP, что бы можно было подключить больше народу. А оригинальный GSC сервер написан на C/C++, PHP (под Apache) в качестве бекенда, и MySQL.
[EG]JoFiBaTaL wrote: |
тут можно звания забабахать? |
Довольно много чего можно сделать - звания, кланы и любую свою логику, просмотр записей всех игр - было бы время и желание. Благо интерфейс там не захардкожен, а написан все том же CML. Можно даже залить с сервера на клиент собственную DLL'ку, и дергать ее функции из того же CML.
Однако есть момент, звания будут отображаться только в лобби, в комнате же, как и на GSC сервере, отображаться не будут. Можно поправить похоже только правкой самих Казаков.
[EG]JoFiBaTaL wrote: |
Никто соурс казаков не хочет выложить?) |
Уже) [Kiev]FSou1 выложил https://github.com/GSC-fake/Cossacks-back-to-war |
|
|
|
|
|
[EG]JoFiBaTaL
Королева флуда Рядовой Холмс LCN: 16 medals
Joined: 15 Apr 2010
Posts: 2789
Location: БОМЖ
|
Posted:
Thu Jan 12, 2017 23:12 |
|
господа го сделаем нормальную игру?) И побьем казаки 3? |
|
|
|
|
|
[-1Nt-]_VRV
LCN: 10 medals Empire: 8 medals
Joined: 12 Nov 2007
Posts: 2265
Location: Нижний Новгород
|
Posted:
Fri Jan 13, 2017 9:23 |
|
[EG]JoFiBaTaL
а че их побивать, они и так мертвые лежат.. |
_________________ Тестирую Казаки 1.42 |
|
|
|
|
[-NF-]Prototype
LCN: Top 50 player Restliga: 1 medal
Joined: 14 May 2010
Posts: 483
Location: Italy
|
Posted:
Tue Feb 14, 2017 14:02 |
|
выдает такую ошибку при установке
Code: |
Finding GSC::Server::CommandController on cpanmetadb failed. |
т.е это вручную нужно устаналивать как я понимаю?[/code] |
_________________ посмотри, он без армии в казах был в конце игры (c)^ARAGORN^
Вз-н |
|
|
|
|
[-RUS-]AlliGator
Joined: 15 Dec 2006
Posts: 226
|
Posted:
Thu Feb 16, 2017 21:51 |
|
Странно, он должен быть в GSC-Server репе. Да, его надо вручную ставить перед SimpleCossacksServer как и написано. А что за ОС, чем ставишь, cpanm? |
|
|
|
|
|
[-NF-]Prototype
LCN: Top 50 player Restliga: 1 medal
Joined: 14 May 2010
Posts: 483
Location: Italy
|
Posted:
Fri Feb 17, 2017 3:34 |
|
[-RUS-]AlliGator wrote: |
Странно, он должен быть в GSC-Server репе. Да, его надо вручную ставить перед SimpleCossacksServer как и написано. А что за ОС, чем ставишь, cpanm? |
ОС: windows 10
да, ставил с cpanm вот так
Code: |
cpanm ./GSC-Streamer/ ./GSC-Server ./SimpleCossacksServer |
во время установки заметил лишь одну ошибку, эту:
Code: |
Finding GSC::Server::CommandController on cpanmetadb failed.
|
ну а после пробы запустить сервер,вот так:
Code: |
perl -mlib=lib script/simple-cossacks-server -c etc/simple-cossacks-server.conf |
выдает длинную ошибку:
Code: |
Could not load class (GSC::Server::CommandController) because : Can't locate GSC/Server/CommandController.pm in @INC (you may need to install the GSC::Server::CommandController module) (@INC contains: lib C:/Strawberry/perl/site/lib/MSWin32-x64-multi-thread C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib .) at C:/Strawberry/perl/site/lib/Mouse/Util.pm line 286.
at C:/Strawberry/perl/site/lib/Mouse/Util.pm line 295.
Mouse::Util::load_class("GSC::Server::CommandController") called at C:/Strawberry/perl/site/lib/Mouse/Meta/Class.pm line 58
Mouse::Meta::Class::superclasses(Mouse::Meta::Class=HASH(0x2bc5e80), "GSC::Server::CommandController") called at C:/Strawberry/perl/site/lib/Mouse.pm line 35
Mouse::extends("GSC::Server::CommandController") called at lib/SimpleCossacksServer/CommandController.pm line 3
SimpleCossacksServer::CommandController::BEGIN() called at lib/SimpleCossacksServer/CommandController.pm line 3
eval {...} called at lib/SimpleCossacksServer/CommandController.pm line 3
require SimpleCossacksServer/CommandController.pm called at lib/SimpleCossacksServer.pm line 4
SimpleCossacksServer::BEGIN() called at lib/SimpleCossacksServer/CommandController.pm line 3
eval {...} called at lib/SimpleCossacksServer/CommandController.pm line 3
require SimpleCossacksServer.pm called at script/simple-cossacks-server line 26
BEGIN failed--compilation aborted at lib/SimpleCossacksServer/CommandController.pm line 3.
Compilation failed in require at lib/SimpleCossacksServer.pm line 4.
BEGIN failed--compilation aborted at lib/SimpleCossacksServer.pm line 4.
Compilation failed in require at script/simple-cossacks-server line 26. |
запускаю эту комманду из папки SimpleCossacksServer..
как я понимаю ссылается на отсутствие модуля.. |
_________________ посмотри, он без армии в казах был в конце игры (c)^ARAGORN^
Вз-н |
|
|
|
|
Эреб
Joined: 25 Feb 2016
Posts: 71
|
Posted:
Thu May 11, 2017 20:07 |
|
[-RUS-]AlliGator wrote: |
И так |
И так
Выложил исходники на Гитхаб, они должны без проблем собираться под Visual Studio 2015.
Собрал под версией 1.42 и залил на мегу и на рутор (там ещё с модерацией не ясно).
[-1Nt-]_VRV любезно залил архив и на Яндекс.Диск
Аллигатор, твой черёд =)
Ну же, пожалуйста, допили сервер под udp hole punching, чтобы люди могли из-за NAT'a играть. Я бы с радостью сам pull request сделал, но в перле не силён :/
Если что, спецификация протокола тут.
Ветка обработки переменных, полученных от сервера здесь.
Прятного кодинга! |
|
|
|
|
|
|
|
View next topic
View previous topic
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB
© 2001, 2002 phpBB Group :: FI Theme ::
All times are GMT
|