www.mudconnector.su

Национальный мадконнектор.
Текущее время: Чт мар 28, 2024 5:45 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 71 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
 Заголовок сообщения: MUD на VPS
СообщениеДобавлено: Чт апр 22, 2010 6:21 pm 
Не в сети

Зарегистрирован: Ср авг 13, 2008 3:03 pm
Сообщений: 559
Откуда: Kharkiv
Как вы знаете, я увлекаюсь играми класса мад (MUD - multiusers dungeon), причем не столько как игрок, а как разработчик. С сентября 2007 года я делаю свой Virtustan MUD (prool.kharkov.org:8888) на основе кодовой базы мада "Былины" (CircleMUD). Тяжелость этой кодовой базы меня давно раздражает и возникла идея сделать свой легкий engine, причем доступный не по классическому для мадов протоколу telnet, а по более безопасному протоколу ssh. Мне видится это примерно так (почти как TNSDrive BBS):

есть VPS сервер, на нем заведен юзер mud, доступный по ssh, у юзера mud в качестве командного интерпретатора указан мад-клиент mudc. Глобально будет запущен процесс-сервер mudd. Как сделать коммуникацию между клиентами и сервером: вначале я думал использовать каналы popen, но потом решил сделать проще, использовать файлы-семафоры. Клиенты выкладывают в каталоге семафоров файлы с уникальными именами и своими запросами, а сервер в игровом цикле обрабатывает эти запросы и удаляет семафоры. Мир тоже решил сделать тупо и просто: в виде отдельного каталога, в котором будут лежать файлы с описанием комнат (или для каждый комнаты отдельный подкаталог, это надо продумать). Мир будет доступен серверу на запись, а клиентам только на считывание. Примерно так

Использование готового VPS сервера и протокола ssh сразу снимает вопросы написания коммуникационного модуля (он уже есть), модуля сжатия, работы с кодировками, главное выставить нужную локаль. Использование для коммуникации между процессами файлов-семафоров, мне кажется, запрограммировать будет проще всего. Да, это очень неэффективно в смысле скорости, но при современных процессорах, и учитывая, что тысячи игроков в мою игру вряд ли будут играть, это будет работать. Тем более, что файлы-семафоры для систем типа UNIX это стандартное средство синхронизации и вряд ли это будет так уж неэффективно

Мне нужны советы от опытных товарищей, не делаю ли я стратегическую ошибку, выбирая такую архитектуру игры. (Проект этот планируется как хоббический, чтобы тыкать клавиши вечерами и я могу бросить его через пол часа, а могу через пару лет, например, над проектом Virtustan MUD я уже третий год неторопливо работаю, но я надеюсь, что моя новая онлайновая игра затмит Варкрафт и Линейку и Близзард заплачет и зарыдает, а NCsoft сделает себе харакири)

_________________
Пруль, кодер и билдер VMUD
http://mud.kharkov.org
http://virtustan.net
telnet 195.123.245.173 3000


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пт апр 23, 2010 10:48 am 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Это довольно интересная идея.
Но мне кажется, что будут большие проблемы с правами и безопасностью.

Для всех игроков будет один пользователь ?
Тогда они смогут "писать в чужие файлы".
Да и вообще, как вы попытки записать "неправильный семафор ручками"
будете обрубать ?


В преимуществах что ?
По мне, так надо найти или доделать библиотеку для работы с ssh и поднимать
своего демона.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пт апр 23, 2010 11:18 am 
Не в сети

Зарегистрирован: Ср авг 13, 2008 3:03 pm
Сообщений: 559
Откуда: Kharkiv
KadVar писал(а):
Это довольно интересная идея.
Но мне кажется, что будут большие проблемы с правами и безопасностью.

Для всех игроков будет один пользователь ?
Тогда они смогут "писать в чужие файлы".
Да и вообще, как вы попытки записать "неправильный семафор ручками"
будете обрубать ?


Да, опасность есть, но игроки будут иметь только доступ к командам клиента mudc, то есть штатной возможности писать в чужие файлы или создавать вредоносные семафоры у них не будет. Конечно, остается потенциальная опасность всяких уязвимостей типа переполнения строки.

А что касается преимуществ, идею этого мада я придумал давно, примерно с такими целями

- хочется написать свой мад методом наименьшей затраты усилий, то есть не возиться с коммуникационной и сервисной частью, кодировками, особенностями протокола telnet и т.п.

- хочется защищенности через ssh. Просто так, шоб было, мне кажется, это будет полезным

И всё

_________________
Пруль, кодер и билдер VMUD
http://mud.kharkov.org
http://virtustan.net
telnet 195.123.245.173 3000


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пт апр 23, 2010 4:49 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Мне не нравится, что они будут на боевой сервер логиниться хоть как-то...
Просто паранойа.

А протоколы... найдите готовую реализацию, 100% уверен что они есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пт май 14, 2010 10:51 am 
Не в сети

Зарегистрирован: Вт мар 24, 2009 6:20 pm
Сообщений: 216
Насчет безопасности, не такая уж и паранойя
Прежде всего, если игровой мир будет всем доступен на чтение, то кто угодно сможет его утянуть. Это не всегда желательно...

Что касается файлов-семафоров, честно не вижу больших отличий от tcp-соединений, кроме некоторой воздушности и потенциальных проблем с производительностью и всякими блокировками. Уж тогда наверное проще БД использовать?... Ее можно даже на соседний сервер поставить, решение гораздо более гибкое...

Библиотеку для работы по tcp, если что, тоже можно использовать уже готовую, просто во времена создания цирклов таких библиотек, я думаю, просто не было :) Шифрование такие библиотеки тоже как правило поддерживают без проблем. Как минимум на шарпе под .Net я это всё делал, и реализация заняла ооочень мало строк кода.

Вообще, если писать мад с нуля, можно написать очень грамотно и не так уж и долго, нормальной командой можно за полгода код написать. Мир создавать дольше, но при наличии хороших редакторов и использовании более универсального подхода, достаточно большой мир можно создать тоже примерно за полгода.

С учетом еще создания редакторов, всяких документирований и прочая; а также с учетом параллельных работ и постоянного тестирования - ну всего я бы заложил 1.5 года для грамотной команды в 4-6 человек. И результатом будет очень хороший мад.

Тот факт, что мад написать не так уж и сложно, доказал и показал в свое время Легвил, написавший движок для сферы миров. Я объясняю это тем, что подходы 80х годов к программированию игр гораздо менее эффективны, чем сегодняшние. В то время не было достаточных наработок в виде проверенных и отлаженных библиотек, ну что уж говорить, циркл написан на pure C и без использования библиотек, что конечно же очень трудоемко и совсем не эффективно.

Банальные примеры уже наработанных решений, которые писать не придется в случае создания нового мада:
1. Библиотеки для сколь угодно сложных tcp/ip соединений
2. Сериализация объектов, хранение объектов в БД или на диске в конфигурационных файлах
3. Скриптовые движки для триггеров
4. Полное логирование ситуации в маде в базу данных

Т.е. все трудоемкие вещи уже существуют в виде библиотек.
Программирование логики игры это бесспорно, нетривиальная задача, но хорошая команда вполне справится с ней, поскольку мад отлично разбивается на модули, каждый из которых пишет 1 член команды, в итоге получается быстро и эффективно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пт май 14, 2010 11:45 am 
Не в сети

Зарегистрирован: Ср авг 13, 2008 3:03 pm
Сообщений: 559
Откуда: Kharkiv
omlin писал(а):
Насчет безопасности, не такая уж и паранойя
Прежде всего, если игровой мир будет всем доступен на чтение, то кто угодно сможет его утянуть. Это не всегда желательно...


Я нифига не понял :) Как кто угодно сможет утянуть мир, если среди доступных команд команды УТЯНУТЬМИР не будет? :)

Я наверное недостаточно подробно изложил свою идею.

1. Сервер на UNIX. Вход по протоколу ssh, логин mud, пароль mud. У пользователя mud в качестве шелла указан мад-клиент - программа mudc. У клиента будет набор мадовских команд (см, север, убить, экип и т.п.). Возможности попасть в штатный шелл sh не будет!

Цитата:

Библиотеку для работы по tcp, если что, тоже можно использовать уже готовую, просто во времена создания цирклов таких библиотек, я думаю, просто не было :) Шифрование такие библиотеки тоже как правило поддерживают без проблем. Как минимум на шарпе под .Net я это всё делал, и реализация заняла ооочень мало строк кода.



Библиотека для tcp просто не нужна. Изящность моей идеи в том, что я по максимуму использую штатные средства UNIX, например ssh, то есть автоматически отпадает необходимость программировать работу с tcp, с кодировками, со сжатием, реализацию многозадачности.

Цитата:
Банальные примеры уже наработанных решений, которые писать не придется в случае создания нового мада:
1. Библиотеки для сколь угодно сложных tcp/ip соединений

Как я написал выше, это не надо, это уже умеет Уникс
Цитата:
2. Сериализация объектов, хранение объектов в БД или на диске в конфигурационных файлах

А вот это придется писать, да. Или искать библиотеку. Например, всё реализовать в стандарте XML (Трініті блює)
Цитата:
3. Скриптовые движки для триггеров

Моя очередная идея: триггерный язык не нужен. Этот язык вообще нужен для билдеров, если есть готовая кодовая база и команда билдеров, которые делают зоны и немного умеют программировать скрипты. А вообще всё, что надо, можно реализовать на уровне кода.
Цитата:
4. Полное логирование ситуации в маде в базу данных

Тут лично я не вижу ничего сложного. Текстовые логи a-la UNIX рулят, писать в них просто, а для анализа можно использовать grep+awk

_________________
Пруль, кодер и билдер VMUD
http://mud.kharkov.org
http://virtustan.net
telnet 195.123.245.173 3000


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Вс май 16, 2010 2:39 pm 
Не в сети

Зарегистрирован: Пн июн 22, 2009 4:08 pm
Сообщений: 311
1.У тебя не будет своего клиента, а так как обычные telnet-клиенты не смогут поддерживать твой мад, то
придеться пользываться клиентом типа Putty, что многим игрокам не понравиться
2.У таких клиентов типа Putty нету тригов, алиасов и т.п., то это значит что вообще не будут играть в этот мад.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пн май 17, 2010 1:22 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
prool писал(а):
Моя очередная идея: триггерный язык не нужен. Этот язык вообще нужен для билдеров, если есть готовая кодовая база и команда билдеров, которые делают зоны и немного умеют программировать скрипты. А вообще всё, что надо, можно реализовать на уровне кода.

Путь к epic fail

Идея о том, что где-то есть какие-то команды высоквалифицированных специалистов, которые будут работать бесплатно весьма утопичны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пн май 17, 2010 1:23 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
omlin писал(а):
Т.е. все трудоемкие вещи уже существуют в виде библиотек.
Программирование логики игры это бесспорно, нетривиальная задача, но хорошая команда вполне справится с ней, поскольку мад отлично разбивается на модули, каждый из которых пишет 1 член команды, в итоге получается быстро и эффективно.

Горе ситуации вовсе не в написании кода. Хотя заметьте, у вас вышло порядка 10 человеколет, что весьма немало.
Вот кто всё это поддерживать потом будет :) ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MUD на VPS
СообщениеДобавлено: Пн май 17, 2010 1:32 pm 
Не в сети

Зарегистрирован: Ср авг 13, 2008 3:03 pm
Сообщений: 559
Откуда: Kharkiv
KadVar писал(а):
prool писал(а):
Моя очередная идея: триггерный язык не нужен. Этот язык вообще нужен для билдеров, если есть готовая кодовая база и команда билдеров, которые делают зоны и немного умеют программировать скрипты. А вообще всё, что надо, можно реализовать на уровне кода.


Путь к epic fail

Идея о том, что где-то есть какие-то команды высоквалифицированных специалистов, которые будут работать бесплатно весьма утопичны.


Не спорю, но у меня к моим проектам отношение крайне несерьезное. Моя метафора "могу бросить через пол часа, а могу через пару лет". Правда, если в мою команду, состоящую из одного меня, войдут на каких-то условиях еще какие-то люди, то я буду связан с ними неким соглашением и буду по мере сил его выполнять. Пока, слава богу, никто не идет, даже игроки, а то работать придется. (Сейчас я не про будущий VPS MUD, а про текущий мой Virtustan MUD).

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

Правильные игровые проекты делаются так: инвестор, начальник-сволочь с кнутом и тысяча китайцев, трудолюбиво пишущих код и квесты за еду. Примеры - Линейка, WoW и все остальные проекты, на которые многие из нас, инди-разработчиков, с ненавистью молятся

_________________
Пруль, кодер и билдер VMUD
http://mud.kharkov.org
http://virtustan.net
telnet 195.123.245.173 3000


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 71 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron