www.mudconnector.su

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

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Отделено от Nereal
СообщениеДобавлено: Пн окт 20, 2014 11:07 am 
Не в сети
Site Admin

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

Не зависит от исполнения. Зависит от того насколько хорошо вы разработаете семантику самого скриптового языка.

ArtistSpb писал(а):
2. Необходима реальная многопоточность, так как иначе ошибки и баги в скриптах будут влиять на весь сервер - тормозить будет у всех.

А как иначе-то :) ?
В любых других вариантах боюсь будут такие "несвязухи" на стыках "зон", что мало не покажется.

ArtistSpb писал(а):
3. Нужен профайлер для скриптов, чтобы находить самые тормозные из них и исправить.

Если по принципу "всего времени на исполнение", то тут проблем тоже нету, на логах сделать можно.
В целом, при правильном подходе можно этого не делать.
Один "трек" может сожрать в 100 раз больше ресурсов.

ArtistSpb писал(а):
4. Желательно чтобы все это взлетело не только на Windows, но и на Linux/FreeBSD, так как однозначно, что под хостинг игрового сервера
придется либо ставить свой комп дома, что не есть гуд, либо пользоваться VDS, а там по умолчанию всегда Линух, а винда стоит значительно дороже.

Живой проект может быть только под linux

ArtistSpb писал(а):
5. Хотелось бы наличие горячей перезагрузки (без отключения игроков).

Сделать можно, но не вижу большого смысла.
Если у вас "дейли релизы", то один даунтайм в день - это не катастрофа.
Если вы каждые 5 минут что-то ломаете, то может лучше тестить локально :) ?
Сделать можно на любом языке...

ArtistSpb писал(а):
Учитывая требования, возможные варианты:
1. Чистый C++ - долго делать, что делать со скриптами ?
2. Чистый C#- сделать можно быстрее, но что на счет Линухов? Есть конечно mono, но это значит что надо сразу на нем писать. Опять, что делать со скриптами ?

Непонятно в чём разница "в разрезе скриптов". Скрипт-язык всё равно делать самому.

ArtistSpb писал(а):
Из всего этого, у меня пока только такие варианты вырисовываются :
- Lua как основной язык разработки + модули на C++.

Строго наоборот :).
Луа - это интерпретатор... какой из него "основной язык"...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Nereal
СообщениеДобавлено: Пн окт 20, 2014 11:09 am 
Не в сети
Site Admin

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

Проблема в том, что функционала в скриптах может быть в РАЗЫ больше, чем в самом "движке",
если, конечно, проект... мм... хороший :).
Т.е. надо заранее по-хорошему иметь инструментарий. Хорошо продуманный.
Иначе со временем всё это превращается в кошмар.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Nereal
СообщениеДобавлено: Пн окт 20, 2014 11:13 am 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Тхэнн Эраннор писал(а):
Можете тогда из своего опыта привести пример, для чего точно-точно нужны скрипты? И никак иначе?


Чтобы поддержка всего этого безобразия не превратилась в ночные кошмары.
Вот смотрите, я имею около 3мб кода "движка". И почти 2мб кода "скриптов".
При этом плотность действий из скриптов и их запутанность в разы больше.

В целом, скрипты это некий язык высокого уровня, для довольно простых
взаимодействий. Такой, чтобы неподготовленный человек БЕЗ технического
образования мог ими воспользоваться. Это должно быть в идеале...

Основная цель для которой используют скрипты сейчас - асинхронность.
Эта-же "цель" к слову, приводит к странным и нелогичным последствиям.
Как это всё распутать понятно не очень.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Nereal
СообщениеДобавлено: Пн окт 20, 2014 12:29 pm 
Не в сети

Зарегистрирован: Пт сен 04, 2009 10:17 pm
Сообщений: 214
KadVar писал(а):
В целом, скрипты это некий язык высокого уровня, для довольно простых
взаимодействий. Такой, чтобы неподготовленный человек БЕЗ технического
образования мог ими воспользоваться. Это должно быть в идеале...


Я не думаю, что вопрос стоит таким образом, что нужен какой-то простой язык для программирования, которым сможет пользоваться любой обыватель. Это задача, я думаю, не решаема. Если только написать интерпретатор русского языка в машинный код. :) На деле обычно все намного проще, из зоны в зону повторяется примерно одно и тоже, с незначительными отличиями. Билдерам достаточно дать лишь пару дюжин шаблонов, в которых нужно лишь менять входные условия и конечный результат, и они уже практически не ограничены в своем творчестве.

Я сужу по своему опыту, как я начинал делать зоны для мада. Я не изучал dg_script, я брал готовые примеры работающих триггеров и пытался их переделать под свои потербности и реалии. Конечно, потом переделав дюжину чужих триггеров, начинаешь разбираться кое-как во всем этом, и начинаешь писать что-то свое. Не думаю, что я чем-то отличаюсь от остальных, скорее всего все учатся делать триггеры примерно также.

Однако вроде бы обсуждение вышло за пределы темы топика, не лучше ли его перенести в другую тему? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Nereal
СообщениеДобавлено: Пн окт 20, 2014 12:39 pm 
Не в сети
Site Admin

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

Именно так он и стоит. Поверьте мне.
Если, конечно, вы "целитесь" в качество, а не в количество.
Хорошие билдеры - это в первую очередь гуманитарии, а не техники.
Это "писатели". И все эти "триггеры" тянут их ко дну.

Pacifist писал(а):
Если только написать интерпретатор русского языка в машинный код. :) На деле обычно все намного проще, из зоны в зону повторяется примерно одно и тоже, с незначительными отличиями. Билдерам достаточно дать лишь пару дюжин шаблонов, в которых нужно лишь менять входные условия и конечный результат, и они уже практически не ограничены в своем творчестве.

Если вам надо много одинакового... гна... то да, тут вы правы.
В остальном-же... как правило каждую интересную зону увы приходится доделывать самому.
Просто потому, что нет заранее в популярных скрипт-языках кучи нужного.
Я вам скажу, как человек сотни, или даже тысячи часов потративший на доводку зон.
Билдеры нужны не для того, для чего вы думаете :), они в текущих реалиях нужны
только для интересных и РАЗНЫХ идей. Сделать зону самому с начала до конца в разы
проще, чем довести до готовности то, что они билдят. Но получается не так интересно.


Pacifist писал(а):
Я сужу по своему опыту, как я начинал делать зоны для мада. Я не изучал dg_script, я брал готовые примеры работающих триггеров и пытался их переделать под свои потербности и реалии. Конечно, потом переделав дюжину чужих триггеров, начинаешь разбираться кое-как во всем этом, и начинаешь писать что-то свое. Не думаю, что я чем-то отличаюсь от остальных, скорее всего все учатся делать триггеры примерно также.

И это само по себе фатально неверно.
Вы подгоняете идею под возможности, а не реализуете её.
И если возможностей нету, то у вас хорошая идея получается "кастрированной".
Живой пример ? Пожалуйста.
Некий билдер задумал некую зону, в ней до какого-то момента некое место населено "призраками",
а после этого момента они "оживают". Повсеместно. Интересная идея. Но требует как-то удалять кучу
мобов-призраков и загружать новых. Вроде всё просто, однако функции для удаления мобов в скрипт-языке
отсутствовали, точнее их можно было пуржить, но только в одном месте. А они ходят :).
Специально под него была доделана функция удаляющая всех мобов по внуму.
По-хорошему, так надо было другую функцию: она должна была МЕНЯТЬ одного моба на другого с сохранением
его "памяти" и прочего. Но не догадался вовремя.
Это показатель слабости языка. В нём мало функций.
Но до этого момента лет 5 такие идеи в голову людям не приходили...
По-хорошему в языке должны быть все подобные возможности.

Pacifist писал(а):
Однако вроде бы обсуждение вышло за пределы темы топика, не лучше ли его перенести в другую тему? :)

Можно и отдельно, можно и неотдельно.
Непонятно как разделить...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Nereal
СообщениеДобавлено: Пн окт 20, 2014 1:42 pm 
Не в сети

Зарегистрирован: Пт сен 04, 2009 10:17 pm
Сообщений: 214
KadVar писал(а):
Если вам надо много одинакового... гна... то да, тут вы правы.
В остальном-же... как правило каждую интересную зону увы приходится доделывать самому.
Просто потому, что нет заранее в популярных скрипт-языках кучи нужного.
Я вам скажу, как человек сотни, или даже тысячи часов потративший на доводку зон.
Билдеры нужны не для того, для чего вы думаете :), они в текущих реалиях нужны
только для интересных и РАЗНЫХ идей. Сделать зону самому с начала до конца в разы
проще, чем довести до готовности то, что они билдят. Но получается не так интересно.


Нельзя грести всех под одну гребенку, точно также как есть плохие программисты, есть обычные, хорошие и отличные, так и билдеров можно поделить по этому же принципу. Причем нельзя сказать, что обычные программисты менее востребованы, чем отличные. Иногда для работы целесообразнее взять пять обычных программистов, чем одного отличного.

Гнаться за чем то новым практически всегда бессмысленно, потому что все можно было придумать оно уже почти наверняка придумано. Меняются лишь названия, да текст, выдававаемый в качестве конечного результата, но скрипты устроены всегда примерно одинаково. В этом их можно сравнить с человеком, люди они тоже все разные, вроде бы, а внутри у всех одно и тоже: сердце, легкие, мозг и мозжечок. :)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Nereal
СообщениеДобавлено: Пн окт 20, 2014 1:51 pm 
Не в сети
Site Admin

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

Первый раз об этом слышу.
Никогда не взял бы 5 обычных вместо одного отличного.
Это путь к гарантированным проблемам. Именно с программистами.

С билдерами ситуация похожа.
Или у тебя есть КЛЁВАЯ идея, или нет. Это всё отличие билдераА от билдераБ.
Если нету, то зачем тратить время-то ?
Стандарты клевости усугубляются со временем - это да.

Pacifist писал(а):
Гнаться за чем то новым практически всегда бессмысленно, потому что все можно было придумать оно уже почти наверняка придумано. Меняются лишь названия, да текст, выдававаемый в качестве конечного результата, но скрипты устроены всегда примерно одинаково. В этом их можно сравнить с человеком, люди они тоже все разные, вроде бы, а внутри у всех одно и тоже: сердце, легкие, мозг и мозжечок. :)

Кому как... в этом раскладе скрипт-язык вообще не нужен.
И билдеры тоже.
Всё можно генерить... как в диабло.

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


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

А "набить 100 описаний" "расставить 10 мобов" "раздать им ништяков" мне не интересно.
Ерунда это какая-то... т.е. так делали, поначалу, но исключительно от собственного скудоумия
и необходимости в быстром расширении мира. На сегодня мой взгляд на билдинг очень сильно изменился.

ЗЫ. За фишками геймплея в скриптах можете посетить WOW, там они очень хорошо показали, что такое
энкаунтеры с заскриптованными боссами, и как клёво это может выглядеть. И как сильно влияет на геймплей.
На мой взгляд грешно делать хуже... если начинать делать сегодня.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отделено от Nereal
СообщениеДобавлено: Пн окт 20, 2014 2:34 pm 
Не в сети

Зарегистрирован: Пт сен 04, 2009 10:17 pm
Сообщений: 214
Как писал Слав http://mudhistory.hut.ru/zones/notes/slav.html, билдерство это не только творчество, но и очень много черновой работы: дороги, которые никто не любит делать, описания вилок, ложек и тому подобная нудятина. То, что само по себе мало кому нужно, без чего легко можно обойтись, что не требует особых знаний скриптов, требует кучу времени, но без чего никогда не получится хорошего мада.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отделено от Nereal
СообщениеДобавлено: Пн окт 20, 2014 3:02 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Я не очень понимаю зачем загружать билдеров работой на эти 80-90%, нагенерить не проще будет ?
Будет меньше ошибок, лучше качество итп...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отделено от Nereal
СообщениеДобавлено: Пн окт 20, 2014 7:47 pm 
Не в сети

Зарегистрирован: Пн май 27, 2013 4:34 pm
Сообщений: 105
KadVar писал(а):
ArtistSpb писал(а):
1. Необходимость встроенного скриптового движка, причем с изоляцией от основного кода, дабы скрипты не порушили сервер.
Скриптовый движок должен быть очень простой, чтобы его могли изучить все желающие, даже не программисты.

Не зависит от исполнения. Зависит от того насколько хорошо вы разработаете семантику самого скриптового языка.

Семантика важна, но и исполнение тоже важно - как это скрипты будут работать в ядре. Зависит от языка на котором реализуется.
Как пример. Сейчас же скрипты Dgscripts в мадах могут же порушить сервак - да могут.

KadVar писал(а):
В любых других вариантах боюсь будут такие "несвязухи" на стыках "зон", что мало не покажется.

Такие проблемы давно решаются с помощью баз данных, например.

KadVar писал(а):
ArtistSpb писал(а):
Из всего этого, у меня пока только такие варианты вырисовываются :
- Lua как основной язык разработки + модули на C++.

Строго наоборот :).
Луа - это интерпретатор... какой из него "основной язык"...


Вот тут вы ошибаетесь. Lua - транслируется в байт код. И выполняется на виртуальной машине.
С таким же успехом можно Java или C# назвать неосновным языком. Еще у Lua есть сторонний
JIT компилятор, его скорость работы сравнима с кодом на С.

Lua вполне может выступать как основной язык разработки, только к ней эту кучу функционала
надо прицепить.


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

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


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


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

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