Здравствуйте, гость ( Вход | Регистрация )

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Компиляция или не надо, Надо ли компилить ядро каждый раз как сделал изменения в Script
Aimed
сообщение 2.2.2018, 13:35
Сообщение #21


*********

Grandmaster
Сообщений: 1.917
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 9006
Пользователь №: 15.607



Надо будет ещё попробовать там msbuild/xbuild (if Unix) и скармливать csproj файл в отдельный процесс, вместо массива со всеми .cs файлами.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
volkinson
сообщение 27.3.2019, 13:00
Сообщение #22


****

Apprentice
Сообщений: 115
Регистрация: 27.5.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.856
Возраст: 28



Ребята, а как сделать так, чтобы скрипты подгружались на лету без перезагрузки сервера? Я видел у одного спеца ItWouldBeWise, он в своих видео уроках делает все без перегазруки. Он сказал, что написал какой-то фреймворк Uber Script и серверу не нужна перезагрузка. Буду очень благодарен за совет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 27.3.2019, 18:38
Сообщение #23


**********

Модератор RunUO
Сообщений: 3.237
Регистрация: 1.11.2008
Группа: Старшие модераторы
Наличность: 18028
Из: Северная Корея
Пользователь №: 11.273
Возраст: 9



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

Так что для самых простых операций со значениями, к примеру вывести рейты на дроп артефактов с босса - просто выводишь в файл параметры со значениями и парсишь их.
Для более сложных - изучай методы рефлексии (System.Reflection).

Полностью сделать сервер без перезагрузки - это опять же в сторону рефлексии, но скорее всего нереально, топорно, долго, больно и т.д.

Можно еще динамически подгружать модули, наклепав заранее dll-ки нужные, но это будет из той же серии рефлексии, что в конечном итоге тоже ни к чему хорошему не приведёт.

Иных ходов не знаю, но мб есть какие-то фрейм ворки, опять же завязанные на рефлексии, которые упрощают жизнь данной идеи.



--------------------
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 28.3.2019, 12:38
Сообщение #24


*********

Grandmaster
Сообщений: 1.917
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 9006
Пользователь №: 15.607



С рефлексией большой гемор будет. Куча подводных камней и очень сложно. Тут надо делать как у Сферы. Закрывать ядро полностью и предоставлять скриптовое АПИ которое будет подстраиваться под определенный набор типов данных из ядра. Никаких наследований от мобайла и так далее. Как и в Сфере через темплейты работать ( тайпдефы ), которые тебе мобайла со всеми нужными параметрами будут создавать. Таким образом никаких проблем с памятью при перезагрузке не будет.

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


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Juzzver
сообщение 28.3.2019, 19:33
Сообщение #25


**********

Модератор RunUO
Сообщений: 3.237
Регистрация: 1.11.2008
Группа: Старшие модераторы
Наличность: 18028
Из: Северная Корея
Пользователь №: 11.273
Возраст: 9



Еще как вариант, можно взять тот же форк UOForever, под который и были написаны эти убер скрипты, и попытаться их перетянуть на свой шард. Но как уже было сказано выше - это не покрывает все возможности, а только лишь предопределенные.


--------------------
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Wap
сообщение 29.3.2019, 1:45
Сообщение #26


**********

Администратор Форума
Сообщений: 2.834
Регистрация: 22.12.2006
Группа: Администраторы
Наличность: 26363
Пользователь №: 9.227



Цитата(Aimed @ 28.3.2019, 11:38) *

С рефлексией большой гемор будет. Куча подводных камней и очень сложно. Тут надо делать как у Сферы. Закрывать ядро полностью и предоставлять скриптовое АПИ которое будет подстраиваться под определенный набор типов данных из ядра. Никаких наследований от мобайла и так далее. Как и в Сфере через темплейты работать ( тайпдефы ), которые тебе мобайла со всеми нужными параметрами будут создавать. Таким образом никаких проблем с памятью при перезагрузке не будет.

Второй шаг - писать парсер всех скриптов что б их в новый формат, под скриптовое АПИ конвертировать. В принципе это реально сделать, но проект колоссальный. Думаю что пару месяцев - пол года, в свободное от работы время и там уже что-то точно будет работать.
В одно рыло в свободное от работы время - это года три делать. (IMG:style_emoticons/default/smile.gif) Это если активно работать и человек шарящий. Это ж надо весь хай-левел код переписать, тонны контента, если мы говорим о сервере типа стандартной современной Ранки.

А вообще, по сути это типа как переписать эмулятор Сфера на C#. (IMG:style_emoticons/default/biggrin.gif)


--------------------
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alastar
сообщение 29.3.2019, 9:57
Сообщение #27


**

Neophyte
Сообщений: 22
Регистрация: 4.10.2012
Группа: Пользователи
Наличность: 269
Пользователь №: 15.351
Возраст: 20



Как вариант впилить javascript библиотеку в ядро и писать все на жс. Будет то же самое, что писали выше, только все уже сделали за вас.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ozzy Osbourne
сообщение 29.3.2019, 11:06
Сообщение #28


*********

Grandmaster
Сообщений: 2.011
Регистрация: 5.8.2003
Группа: Пользователи
Наличность: 823
Пользователь №: 810



Цитата(Alastar @ 29.3.2019, 8:57) *
Как вариант впилить javascript библиотеку в ядро и писать все на жс. Будет то же самое, что писали выше, только все уже сделали за вас.

(IMG:style_emoticons/default/laugh.gif) (IMG:style_emoticons/default/laugh.gif) (IMG:style_emoticons/default/laugh.gif)


--------------------
Forest Wars
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 29.3.2019, 14:04
Сообщение #29


*********

Grandmaster
Сообщений: 1.917
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 9006
Пользователь №: 15.607



Цитата(Wap @ 28.3.2019, 23:45) *

В одно рыло в свободное от работы время - это года три делать. (IMG:style_emoticons/default/smile.gif) Это если активно работать и человек шарящий. Это ж надо весь хай-левел код переписать, тонны контента, если мы говорим о сервере типа стандартной современной Ранки.

А вообще, по сути это типа как переписать эмулятор Сфера на C#. (IMG:style_emoticons/default/biggrin.gif)


Зачем там хай-левел код переписывать? Именно переписывать там нужно очень мало кода.
1) Нужно написать обертку, которая будет скриптовым АПИ, как у Сферы.
2) В этой обертке сделать маппинг с вызовами серверного ядра. Много там не нужно, опять смотрим на Сферу.
3) Перенести некоторые классы, такие как Player, BaseCreatue и им подобные в ядро. Чем больше таких классов будет в ядре, тем меньше скриптов прийдется загружать == профит при старте сервера. По сути драг&дропом позаниматься 1 вечер в солюшене студии.
4) Самое сложное это написать парсер и конвертер текущих РанУО скриптов под новое АПИ. Ну а дальше конвертер сконвертирует все что останется в Scriptsс в новый формат.
5) Переписать нужно только компиляцию скриптов, что б она работала под новое скриптовое АПИ.

Вполне себе проект на несколько месяцев - пол года программисту уровня мидла и выше. Самое интересное то что быстродействие не должно пострадать, в теории. А вот почему у Сферы тогда с этим проблемы...не понятно

Цитата(Alastar @ 29.3.2019, 7:57) *

Как вариант впилить javascript библиотеку в ядро и писать все на жс. Будет то же самое, что писали выше, только все уже сделали за вас.


Если только она магическая ))

П.С. На самом деле оч крутой проект. Будь я в другой ситуации, наверное, занялся бы таким. Если грамотно сделать скриптовое АПИ, то Сферу вобще полностью можно будет хоронить. Вытащить ещё нужные механики из ядра Сферы и все, Cфера станет полностью obsolete.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
RL_ka
сообщение 29.3.2019, 14:21
Сообщение #30


*****

Разработчик Injection
Сообщений: 440
Регистрация: 13.7.2013
Группа: Модераторы
Наличность: 8686
Из: Екатеринбург
Пользователь №: 16.211



Зачем изобретать велосипеды, если для этих целей уже есть ПОЛ? (IMG:style_emoticons/default/smile.gif)
каждый из эмулей занял свою нишу, и тем они и прекрасны, по-моему
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Aimed
сообщение 29.3.2019, 14:32
Сообщение #31


*********

Grandmaster
Сообщений: 1.917
Регистрация: 29.12.2012
Группа: Пользователи
Наличность: 9006
Пользователь №: 15.607



Цитата(RL_ka @ 29.3.2019, 12:21) *

Зачем изобретать велосипеды, если для этих целей уже есть ПОЛ? (IMG:style_emoticons/default/smile.gif)
каждый из эмулей занял свою нишу, и тем они и прекрасны, по-моему


Нууу.. это ошибка в архитектуре сервера. Кто ж так делает, что б ядро сервера падало от ошибок в скриптах. А подавляющее большинство, включая самых активных разрабов РанУО/СервУО вобще компиляцию скриптов выпиливают и все одним проектом держат. Тоесть скрипты просто папочка в программе сервера. Это плохая архитектура несущая плохую эффективность разработки. Каждый раз весь сервак компилировать что бы глянуть как 1 изменившийся скрипт работает... это ж позор )


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alastar
сообщение 30.3.2019, 13:44
Сообщение #32


**

Neophyte
Сообщений: 22
Регистрация: 4.10.2012
Группа: Пользователи
Наличность: 269
Пользователь №: 15.351
Возраст: 20



Цитата(Aimed @ 29.3.2019, 14:04) *

Если только она магическая ))

Ultima Offline Experiment гугли, там скрипты на жс, ядро компилируется
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ozzy Osbourne
сообщение 30.3.2019, 17:56
Сообщение #33


*********

Grandmaster
Сообщений: 2.011
Регистрация: 5.8.2003
Группа: Пользователи
Наличность: 823
Пользователь №: 810



Ты действительно не понимаешь чем UOX3 отличается от "впилить жс библиотеку в ядро ранки что бы писать на жс" ? ))


--------------------
Forest Wars
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V < 1 2
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 17.9.2019, 13:52
Designed by Nickostyle