Город Мастеров
IPB

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

> Разработка шарда
virusman
сообщение Dec 15 2009, 18:11
Сообщение #1


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Давно хотел написать об инструментах, которые мы используем в разработке Axistown 2. В некоторой степени это промежуточный итог того, чем я занимался в NWN последние несколько лет.

1. NWNX2
Штука, бесценная для любого шарда. С помощью NWNX можно сделать практически всё. Вот список основных плагинов:
  • NWNX ODBC - соединение с базой данных MySQL/SQLite. Позволяет сохранять и забирать данные любых типов, включая объекты целиком.
  • NWNX Events - добавляет новые события для обработки скриптами.
  • NWNX Chat - обработка чата. Аналогично нему сделали событие OnPlayerChat в 1.69. Но этот плагин всё равно мощнее, чем встроенное событие.
  • NWNX Fixes - некоторые твики (например, для сохранения переменных при продаже предмета или для возможности инициации диалога в режиме скрытности)
  • NWNX Functions / NWNX Funcs - два плагина со схожим функционалом. Добавляют множество новых функций
  • NWNX ResMan - позволяет добавить/заменить любой ресурс (например, поправить скрипт) прямо на лету, без перезагрузки модуля.
  • NWNX Profiler - засекает время выполнения скриптов. Помогает, когда нужно оптимизировать скрипты и уменьшить лаги сервера.
  • NWNX Reset - рестарт по запросу из скрипта.
  • NWNX Areas - инстансинг локаций: позволяет создать копию любой локации.

Пожалуй, самый главный из них - ODBC, потому что без внешней базы данных невозможно было бы сделать половины вкусностей, о которых я расскажу позже.
Кроме перечисленных, мы используем и специфичные:
  • NWNX Ruby - возможность исполнять скрипты на языке Ruby с доступом ко всем функциям NWScript
  • Dynamic Names - сокрытие реальных имён персонажей игроков. Каждый игрок задаёт то имя, под которым он будет видеть персонажа другого игрока. До этого он для него "незнакомец". Пара скриншотов:
    http://data.virusman.ru/nwn/names_party.jpg
    http://data.virusman.ru/nwn/nwnx_names1.jpg


2. Сборщик хакпака
Когда количество единичных хакпаков, из которых собирается общий шардовый хакпак, достигло сотни - возникла необходимость автоматизировать сборку и сделать её более гибкой, чтобы было удобнее изменять содержимое.
Информация о каждом хаке занесена в базу:
Прикрепленный файл  hak_manager.png ( 29.67 килобайт ) Кол-во скачиваний: 65

А все файлы, соответственно, распределены по папкам:
Прикрепленный файл  haks_structure.png ( 80.34 килобайт ) Кол-во скачиваний: 47

Внутри файлы тоже разложены по категориям для удобства:
Прикрепленный файл  haks_structure2.png ( 37.7 килобайт ) Кол-во скачиваний: 46

Папка 501_master содержит 2da, itp и set файлы, общие для всех.

Перед сборкой запускается проверка всех ресурсов на повторения и на превышение ресурсов в файлах (лимит по ресурсам на каждый .hak-файл - 16384).
Наконец, все эти файлы из папок компилируются в набор .hak-файлов: один с шаблонами для палитры, остальные - в соответствии с тем, как всё распределено в БД.
(IMG:http://img682.imageshack.us/img682/1516/hakcompiler.th.jpg)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


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

 



Текстовая версия Сейчас: 19th April 2024 - 23:38